Only maintainers may publish an official COS release.
A release tag uses three-part form vMAJOR.MINOR.PATCH. For protocol v0.2, the first release tag is v0.2.0. Published tags are immutable.
- Confirm the protocol is no longer marked Draft, unless publishing an explicitly labeled pre-release.
- Set
package.jsonto the exact three-part release version and set the specification Release Status toReleased. - Confirm the tag,
package.json, Schema$id, specification metadata, and release notes agree. - Ensure normative changes have design issues, review, fixtures, and changelog entries.
- Run
npm ci,npm test, andnpm run build. - Review the generated single-page specification and chapter site.
- Run
npm audit --audit-level=high. - Create an annotated tag without moving any existing tag.
- Push the tag. The release workflow validates, packages, hashes, and creates the GitHub Release.
- Verify the GitHub Pages deployment and every attached artifact.
- Announce support status and known limitations.
For local packaging tests while the specification is Draft, use npm run prepare-release -- v0.2.0 --allow-draft. This flag is intentionally absent from the GitHub Release workflow.
Each release contains:
- generated single-page and chapter-based HTML;
- normative JSON Schema;
- valid and invalid fixtures;
- Markdown specification sources;
- license and changelog;
- SHA-256 checksums.
Do not rewrite a published release. Editorial or normative corrections are made on the default branch and published under a new tag according to VERSIONING.md.