Skip to content

Commit

Permalink
Update Version Documentation Proposal
Browse files Browse the repository at this point in the history
Updates the proposal as per discussion on slack.

Signed-off-by: Jay Batra <jaybatra73@gmail.com>
  • Loading branch information
jaybatra26 committed Apr 23, 2020
1 parent b7cc6d5 commit 218bc2a
Showing 1 changed file with 29 additions and 16 deletions.
45 changes: 29 additions & 16 deletions docs/proposals/version-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,35 @@ slug: documentation-versioning
In Cortex, currently, we are missing versioning of documentation. The idea is to have version documentation just like Prometheus.[`Prometheus`](https://prometheus.io/docs/introduction/overview/). Documentation is the main source of information for current contributors and first-timers. A properly versioned documentation will help everyone to have a proper place to look for answers before flagging it in the community.

In this proposal, we want to solve this. In particular, we want to:
1. Version Documentation.
2. Add or remove necessary and unnecessary data from it.
3. Organize the documentation according to the latest and stable developments.
1. Version specific pages of the documentation
2. Include links to change version (the version must be in the URL)
3. Include the master version and last 3 minor releases. Documentation defaults to the last minor release.


## Proposed solution
Currently, the documentation is residing under the docs/ folder of cortexproject/cortex. It is built by Hugo using the theme [`docsy`](https://www.docsy.dev). It will have a proper [`drop-down menu`](https://www.docsy.dev/docs/adding-content/versioning/#adding-a-version-drop-down-menu) which will enable proper versioning. It has a section [`params.version`](https://www.docsy.dev/docs/adding-content/versioning/#adding-a-version-drop-down-menu) in config.toml which will allow us to map URLs with proper versions. We will have to change all the occurrences of older doc links with new links. The major versions would contain the releases, all other work should be a part of minor versions. The major version here referred is 1.0.0 and minor versions should be like 1.x

From the current doc,
1. The chunk storage part(including getting started, architecture, and production implementation) should be a major release.
2. All other experimental storage should be a part of the minor release(Block and Gossip Ring)
3. Cortex API- part of the minor version as they are WIP.
4. Guides- major version
5. Operations- Block storage should be a part of the minor version. Query Auditor and Query Tee should be a part of the major version.
6. Contributing should be a part of the major version.
7. Governance, Changelog, Proposals, and Code of Conduct should be a part of the major version.

### Debatable Topics:
1. The above might need deduplication of information as the theme follows a folder structure. Everything under mysite.com/0.7/get_started is a copy of mysite.com/0.6/get_started.
Currently, the documentation is residing under the docs/ folder of cortexproject/cortex. It is built by Hugo using the theme [`docsy`](https://www.docsy.dev). It will have a proper [`drop-down menu`](https://www.docsy.dev/docs/adding-content/versioning/#adding-a-version-drop-down-menu) which will enable proper versioning. It has a section [`params.version`](https://www.docsy.dev/docs/adding-content/versioning/#adding-a-version-drop-down-menu) in config.toml which will allow us to map URLs with proper versions. We will have to change all the occurrences of older doc links with new links. We will keep `master` version with 3 latest `release` versions. Each release is a minor version expressed as `1.x`. The document would default to latest minor version.

From the current doc, the following paths (and all their subpages) should be versioned for now:
1. https://cortexmetrics.io/docs/apis/
2. https://cortexmetrics.io/docs/configuration/ (moving v1.x Guarantees outside of the tree, because these shouldn't be versioned)

The above should be versioned under a single URL path.

### Example:

For `master` version we would be able to use the above links via the following path

```
/docs/running-cortex/master/configuration/
/docs/running-cortex/master/api/
```

And for a minor version like `1.x`:

```
/docs/running-cortex/1.0/configuration/
/docs/running-cortex/1.0/apis/
```

we'll have versioned documentation only under the /docs/running-cortex/ prefix and, as a starting point, all versioned pages should go there.

0 comments on commit 218bc2a

Please sign in to comment.