|
| 1 | +# Seqera documentation |
| 2 | + |
| 3 | +This repository contains the documentation published to [docs.seqera.io](https://docs.seqera.io). We're using [Docusaurus v3](https://docusaurus.io/docs/docs-introduction), along with whichever [Remark plugins](https://docusaurus.io/docs/markdown-features/plugins) are required for our purposes. |
| 4 | + |
| 5 | +Changes merged to [master](https://github.com/seqeralabs/docs) are deployed to production automatically via Netlify. Pull requests have their own deployment preview. |
| 6 | + |
| 7 | +The source of truth for all products' documentation lives in their respective product repositories, such as [nf-tower-cloud](https://github.com/seqeralabs/nf-tower-cloud). These repositories contain a `docs` folder which house the _latest_ version of that product's documentation. |
| 8 | + |
| 9 | +Generally speaking, changes to the docs should first be made in the product repository, and then imported into this one. Exceptions may include manual fixes to earlier versions of documentation, or when updates are made to Docusaurus itself. |
| 10 | + |
| 11 | +For more information, see: |
| 12 | + |
| 13 | +- [Writing new content](#writing-new-content) |
| 14 | +- [Fixing legacy version content](#fixing-legacy-content) |
| 15 | + |
| 16 | +## Architecture |
| 17 | + |
| 18 | +Contentful/relevant files include: |
| 19 | + |
| 20 | +``` |
| 21 | +├── README.md |
| 22 | +├── docusaurus.config.js // website config |
| 23 | +├── platform_versioned_docs // versioned Platform docs |
| 24 | +│ ├── version-22.4.0 |
| 25 | +│ ├── version-23.1.0 |
| 26 | +│ ├── version-23.2.0 |
| 27 | +│ └── version-23.3.0 |
| 28 | +├── platform_versioned_sidebars // versioned Platform sidebars |
| 29 | +│ ├── version-22.4.0-sidebars.json |
| 30 | +│ ├── version-23.1.0-sidebars.json |
| 31 | +│ ├── version-23.2.0-sidebars.json |
| 32 | +│ └── version-23.3.0-sidebars.json |
| 33 | +├── platform_versions.json |
| 34 | +└── wave_docs // unversioned Wave docs |
| 35 | + ├── api.md |
| 36 | + ├── cli |
| 37 | + ├── faq.md |
| 38 | + ├── guide.md |
| 39 | + └── index.md |
| 40 | +``` |
| 41 | + |
| 42 | +#### Seqera Platform |
| 43 | + |
| 44 | +- Content is copied to this repo from [nf-tower-cloud](https://github.com/seqeralabs/nf-tower-cloud/tree/master/docs). New contributions to Platform documentation must be made there first. |
| 45 | + |
| 46 | +- The Platform documentation is versioned and lives in the `platform_versioned_docs` directory. Each version in this directory also requires a sidebar config, which lives in the `platform_versioned_sidebars` directory. Versions also need to be specified in `platform_versions.json`. When adding a new latest version, the `docusaurus.config.js` needs to be updated as well. |
| 47 | + |
| 48 | +- We have a script which can select a commit (or ideally release tag) to be used for publishing a new version on the docs website. |
| 49 | + |
| 50 | +#### Wave |
| 51 | + |
| 52 | +- Wave documentation content is copied to this repo from [wave](https://github.com/seqeralabs/wave/tree/master/docs). New contributions to Wave documentation must be made from feature branches in `wave/docs`. |
| 53 | + |
| 54 | +- Wave documentation is unversioned, and lives in the `wave_docs` directory. |
| 55 | + |
| 56 | +## Writing new content |
| 57 | + |
| 58 | +All new content originates in the related development repository. This is the source of truth. For example, Seqera Platform documentation for new features are created in the `nf-tower-cloud` repository in the `docs` directory. A `sidebar.json` is also expected. |
| 59 | + |
| 60 | +To publish new content: |
| 61 | + |
| 62 | +1. Create a new branch in the product repo, such as `gh-issue-number`, or use an existing developer-provided work branch that includes documentation updates. |
| 63 | +2. Complete the necessary work. |
| 64 | +3. Raise a PR to merge your updates to master, requesting 2 reviews: |
| 65 | + - Language review from a docs-codeowners member |
| 66 | + - Technical review from the backend engineer or other SME closest to the feature |
| 67 | +4. Merge the PR once approved, if you created a new branch in the first step. |
| 68 | + |
| 69 | +Once merged to the master branch of the product repo, the docs content can then be copied to this repository. This can be done using the [fetch script](https://github.com/seqeralabs/docs/blob/master/internal/fetch-docs.mjs), which allows you to selected commit ID or release tag, which will be used to create a new version number on the website. |
| 70 | + |
| 71 | +## Fixing legacy content |
| 72 | + |
| 73 | +Version-specific changes to legacy documentation sets currently occur directly in this repository. Each product has a `product_versioned_docs` folder in this repository. That folder contains a subfolder for each version — edit the files in these versioned folders directly to update versioned content on docs.seqera.io: |
| 74 | + |
| 75 | +1. Create a new branch in this repository, such as `product-gh-issue-number` |
| 76 | +2. Create the change in the related files in the correct version (e.g., `23.1.0`) directory, and any other versions affected |
| 77 | +3. Raise a PR based for review, requesting the same 2 reviews as for new content |
| 78 | +4. After approval, merge the PR to the master branch |
0 commit comments