* Update docs/sdk/clients.md * organize ADR directory like tendermint * docs: move spec-proposals into spec/ * remove lotion, moved to website repo * move getting-started to cosmos-hub, and voyager to website * docs: move lite/ into clients/lite/ * move introduction/ content to website repo * move resources/ content to website repo * mv sdk/clients.md to clients/clients.md * mv validators to cosmos-hub/validators * move deprecated sdk/ content to _attic * sdk/modules.md is duplicate with modules/README.md * consolidate remianing sdk/ files into a single sdk.md * move examples/ to docs/examples/ * mv docs/cosmos-hub to docs/gaia * Add keys/accounts section to localnet docs
3.8 KiB
3.8 KiB
ADR 002: SDK Documentation Structure
Context
There is a need for a scalable structure of the SDK documentation. Current documentation includes a lot of non-related SDK material, is difficult to maintain and hard to follow as a user.
Ideally, we would have:
- All docs related to dev frameworks or tools live in their respective github repos (sdk repo would contain sdk docs, hub repo would contain hub docs, lotion repo would contain lotion docs, etc.)
- All other docs (faqs, whitepaper, high-level material about Cosmos) would live on the website.
Decision
Re-structure the /docs folder of the SDK github repo as follows:
docs/
├── README
├── intro/
├── gaia/
│ ├── overview.md
│ ├── install.md
│ ├── join-testnet.md
│ ├── validator-node.md
│ ├── validator-faq.md
│ └── delegator-faq.md
├── reference/
│ ├── baseapp
│ ├── types
│ ├── store
│ ├── server
│ ├── modules/
│ │ ├── keeper
│ │ ├── handler
│ │ ├── cli
│ ├── gas
│ └── commands
├── examples/
│ ├── basecoin/
│ └── democoin/
├── clients/
│ ├── lite/
│ ├── service-providers
├── spec/
└── architecture/
The files in each sub-folders do not matter and will likely change. What matters is the sectioning:
README: Landing page of the docs.into: Introductory material. Goal is to have a short explainer of the SDK and then channel people to the resource they need. The sdk-tutorial will be highlighted, as well as thegodocs.gaia: Contains all docs related to thegaiaapplication. Will later be renamed tocosmos-huborchuband probably moved to its own repository.reference: Contains high-level explanations of the abstractions of the SDK. It does not contain specific code implementation and does not need to be updated often. It is not an API specification of the interfaces. API spec is thegodoc.examples: Contain a couple examples of sdk application likebasecoinanddemocoin. Developers need to maintain them up-to-date and make sure they compile as the SDK gets upgraded.clients: Contains specs and info about the various SDK clients.spec: Contains specs of modules, and others.architecture: Contains architecture-related docs like the present one.
Website docs sidebar will only include the following sections:
READMEintrogaiareferenceclients
architecture and examples need not be displayed on the website. As for modules, we might need to think about creating a modules manager, but this is out of scope for this document.
Status
Proposed
Consequences
Positive
- Much clearer organisation of the SDK docs.
- The
/docsfolder now only contains SDK and gaia related material. Later, it will only contain SDK related material. - Developers only have to update
/docsfolder when they open a PR (and not/examplesfor example). - Easier for developers to find what they need to update in the docs thanks to reworked architecture.
- Cleaner vuepress build for website docs.
- Will help build an executable doc (cf https://github.com/cosmos/cosmos-sdk/issues/2611)
Neutral
- We need to move a bunch of deprecated stuff to
/_atticfolder. - We need to integrate content in
docs/sdk/docs/coreinreference. - We need to move all the content that currently lives in
docsand does not fit in new structure (likelotion, intro material, whitepaper) to the website repository. - Update
DOCS_README.md