Skip to main content

Release pipeline

Maintainer workflow for versioning docs-portal. Releases are tagged semver versions of the static site and sync framework — there is no package publish step.

Prerequisites

  • Protected refs: master, develop, tags v* on GitLab
  • VERSION at repo root holds the current semver (kept in sync with package.json)
  • CHANGELOG.md follows Keep a Changelog

Changelog policy

  • Keep a single ## [Unreleased] section with ### Added / ### Changed / ### Fixed bullets
  • Use - (nothing yet) when a subsection has no entries
  • Write user-facing notes — do not dump raw commit lists

At release, python scripts/bump_release.py:

  • moves [Unreleased] notes into ## [X.Y.Z] - YYYY-MM-DD
  • resets [Unreleased] with placeholder bullets
  • updates footer compare/tag links
  • updates VERSION, package.json, and creates chore(release): Bump version to X.Y.Z

Add --tag to create the annotated tag locally.

Release steps

  1. Land features on develop; keep CHANGELOG.md [Unreleased] curated
  2. Wait for green CI on develop
  3. Run python scripts/bump_release.py (updates version files, finalizes changelog, commits)
  4. Push develop, ff-merge to master
  5. Tag and push from master: git push origin vX.Y.Z

CI on tags

JobPurpose
release:verifyverify_release_version.py — tag matches VERSION and package.json
release:buildProduction npm run build — confirms the tagged tree builds

Branch pipelines (develop / master) are unchanged; tag pipelines run only the release jobs.

Local dry-run

python scripts/bump_release.py --dry-run