Key points
scripts/release-tags.shpublishes the stable tag set: exact version,latest, major, and major.minor.- Container images and the Helm OCI chart publish all four aliases; installers keep exact versions in generated Compose, Helm values, and locks.
- First-time CLI installs use the latest GitHub Release assets at
https://github.com/nopsai/nopsai/releases/latest; extract the binary ontoPATHand remove the downloaded archive. - CLI archives and
SHA256SUMSpublish to thenopsai-cliGHCR OCI package, which must be public sonopsai update --version <x.y.z>does not need repository release access. nopsai update --version <x.y.z>is the upgrade path after first install; it downloads the exact OCI package archive andSHA256SUMS, verifies the checksum, then replaces the local binary.nopsai platform upgrademoves an installed platform forward: it reads the install or deployment lock, keeps generated secrets, and blocks a compatibility-series upgrade until the changelog is acknowledged with--accept-series-upgrade.release/compatibility.yamlis read into buildinfo linker flags and Docker build args so binaries advertise the current platform, runner, API, and capability contract.- Enterprise mirrors can override the package, repository, or asset base URL without changing the archive naming contract.
Examples
curl -s "$NOPSAI_URL/version" | jqHow it works
Multi-arch container builds carry org.opencontainers.image.source as both Dockerfile labels and OCI index/manifest annotations so GHCR can associate packages with the source repository. Already-created unlinked packages may still need a one-time settings connection or a delete and republish.
The exact GitHub Release is marked latest, and moving v<major> and v<major>.<minor> release aliases carry compatibility copies of the same CLI assets.
Repository-owned platform release automation lives in release/nopsai-platform-release.yaml.
Implementation evidence
doc/release-bundles.mdShared build identity, versioned assets, and GitOps release locks.
release/compatibility.yamlPlatform, runner, API, and capability contract.

