-
Notifications
You must be signed in to change notification settings - Fork 62
Background: Re-architect IPFS & libp2p Documentation #58
Comments
Reading through Rob's comprehensive research on the current docs situation and the roadmap to address, there's a lot to tackle. In the prioritization of it, if we were to group doc consumers by their goals, what would that look like? Still being new to IPFS myself but having been reading through the posts on discuss.ipfs.io to tag them, here's a strawman to start a conversation:
From an IPFS project perspective, which group / goals are the most important to address first? |
Oh, thanks for also classifying these in an expertise/familiarity dimension! (As opposed to the two angles on use cases here)
I hadn’t really thought to classify this way mainly because the feedback I’ve gotten is that they are all similarly important (maaaaaaaybe your “developer” category a little less, because they have figured out a system for digging through source code and issues that sorta-kinda-at-least-a-little works well for them). A few things I think are particularly relevant to this categorization:
|
Couldn't agree more. Everyone that tinkers with the IPFS code starts by being a hacker and then gets to the developer group after a while, but I think their priorities are very much the same. |
Note: Many (hopefully most) of the important insights surfaced in this issue are being addressed in a variety of different venues/issues as part of our overall Q3 2019 docs effort, as well as work that follows up from that beyond Q3 '19. Leaving this issue open, but primarily as context and background as we continue to execute upon these key findings. 😄 |
The core concepts in this issue have been incorporated into a number of Q3 and Q4 '19 issues/epics, so closing this one. |
Let’s develop a roadmap towards a new, improved docs site in this repo. Here’s my take to get us started:
Overall, I think there are a few major problems users and contributors are running into that the new docs need to solve. First here’s a breakdown of the typical introductor experience:
ipfs/interface-ipfs-core
are dramatically better than the Rest API Docs, for example. One person said knowing those were there would have made things way easier, but they’d never seen them because they are only well linked fromjs-ipfs
and this person wasn’t writing JavaScript (or Go).go-ipfs
)See lots more of this stuff over at #52 or https://gateway.ipfs.io/ipns/ipfs-docs-research.robbrackett.com/html/General-Notes.html .
What are the big learning/documentation problems here?
What do we need to do?
High priority:
Write a new introductory guide that focuses on what IPFS is doing conceptually, explaining how addresses and lookups and the DAG work. It should use the CLI as an concrete example of these things rather than the other way around, as the current getting started guide does. (Write new “Introduction to IPFS” guide #60)
Build a concepts dictionary that provides a brief and clear overview of major concepts in IPFS. ([NEW CONTENT] [BOUNTY] Glossary #56)
Link to (not necessarily embed) our best existing reference docs and major repos (Gather & organize links to existing docs and examples #59)
link to (not necessarily embed) our best existing example projects (e.g. https://github.com/ipfs/js-ipfs/tree/master/examples) (Gather & organize links to existing docs and examples #59)
Clean up the problems in GitHub organization that make things hard to find: GitHub Hygiene: Develop a standard way to indicate a repo/project is deprecated #54, GitHub Hygiene: Make sure every repo has a description and readme #55, GitHub Hygiene: Develop a standard way to indicate non-code repos #57, and some parts of Provide clear, reliable, up-to-date roadmaps and information about statuses of features #53)
Design a site layout that can accommodate the above and launch it :) (Refactor/expand docs on ipfs.io #36?)
Note that 3 & 4 are about linking and not about embedding docs. I think we should focus on getting links to what we’ve already got (we have a lot of stuff) first. Simply having the docs site serve as an index to all the things that would be useful but people aren’t finding is incredibly helpful and relatively quick to do.
This is way more minimal than the expansive set of content currently described in #36, but that was half a year ago, so I it might make sense to focus on something smaller for now.
Later:
(To be clear, I think things below like improving existing API docs is much less important than #53 — giving people a clear picture of the status and direction of various APIs and concepts. Developers are getting by, though with plenty of trouble, with what they’ve got. But nothing solves the “where is this going and how should I think about using/not using it?” question for them. Addressing that in some form is critical.)
Not necessarily in any order:
Add some brief narrative/introductory guides on using
go-ipfs
,js-ipfs
,*-ipfs-api
as libraries.Document how all the various sub-libraries relate to each other and to the top-level libraries (i.e.
go-ipfs
andjs-ipfs
). (Covering these relationships is one of the major missing pieces in a lot of the READMEs.)Improve the REST API docs with more detailed information about arguments (many are missing) and example input/output. More than one person was blown away by how useful the docs in
interface-ipfs-core
were compared to the REST API or Commands docs, which they had been depending on.Start to generate/embed API docs from all the code projects.
Create guides/tutorials for common use cases
The text was updated successfully, but these errors were encountered: