- We follow GitHub's standard process for creating a
release, as described in GitHub's documentation. We use the UI to create a release with theCreate new tagoption, which synchronizes the release creation with tag creation.
NOTE: Each release should initially be marked as Set as a pre-release to allow for verification of the release notes and artifacts. If the release workflow fails, you can fix the issues and create a new release before publishing the final release.
For release notes, you can either:
- Manually specify changes based on commits
- Use the
Generate release notesfeature to automatically compile commit history from the main branch
-
All releases should be based on the main branch. For each release, changes to the main branch are aggregated through pull requests.
-
Each pull request triggers a build workflow that:
- Verifies documentation structure
- Builds the current branch (as
latest) to identify navigation or Markdown issues
Each push to the main branch triggers a deploy workflow that:
- Builds the
latestdocumentation - Pushes the
latestbuild to the S3 bucket for live serving
Some pages are fetched from the wire-server repository via submodules. We expect to submit pull requests for updating submodule pointers. In the future, we plan to automate this process to keep the wire-docs repository synchronized with the latest commits.
Note: For each commit to /docs in the wire-server repository, a build workflow verifies the document structure.
Creating a release triggers a release workflow that:
- Builds documentation for the current tag
- Creates a tar file containing all documentation web pages
- Pushes the tag (
ref_name) to the S3 bucket for live serving
The tar file created during the release can be used to serve documentation via standard web servers such as Apache, Nginx, or Python's http.server.