2.6 KiB
Releases and versioning
Version numbers
From 2.0.0, beacon-server and beacon-web share the same major and minor version. Patch numbers
move on their own, so server 2.0.3 runs with web 2.0.1. Keep both on the same X.Y.
The /api/v1 in request paths is the API contract version. It does not change with releases;
see the API contract.
Image tags
Both images live on GitHub Container Registry and are public, so no docker login is needed:
ghcr.io/meshcore-beacon/beacon-server and ghcr.io/meshcore-beacon/beacon-web.
| Event | Tags published |
|---|---|
push to main |
latest, sha-<short> |
push to dev |
dev, sha-<short> |
tag vX.Y.Z |
X.Y.Z, X.Y, sha-<short> |
latest is the newest release on main. To decide for yourself when to upgrade, pin both
images to the same release line (:2.0) or an exact release (:2.0.0). dev follows the
development branch and can break between pushes. Prerelease tags (v2.1.0-rc1) get 2.1.0-rc1
but not 2.1.
If a pull fails with 403 Forbidden, the package has been switched back to private on GHCR;
see Troubleshooting.
Cutting a release
Maintainers only. Releases are cut by hand, not from the GitHub UI, and release commits are signed. The flow is the same in both repos; only the version bump differs.
-
Make sure
devis green in CI. -
Bump the version on
dev:- beacon-server: the
@versionannotation incmd/beacon/main.go, then regenerate Swagger withswag init -g cmd/beacon/main.go -o docs --parseInternal --parseDependency. - beacon-web:
versioninpackage.json.
Commit as
chore: bump version to vX.Y.Z. - beacon-server: the
-
Open a PR from
devintomaintitledRelease vX.Y.Zand merge it with Create a merge commit.mainonly accepts merge commits, sodev's own commits land onmainand the next release PR lists only what is new. -
Tag the merge commit and push it:
git tag -a vX.Y.Z origin/main -m "vX.Y.Z" && git push origin vX.Y.Z. -
The tag builds and publishes the container image in both repos. In beacon-server it also builds binaries for every supported platform and attaches them to a draft GitHub release. Open the draft (or create the release in beacon-web), paste the release notes and publish it.
-
Fast-forward
devtomainso the branches match:git push origin origin/main:dev.
Where to find release notes
Each repo's GitHub Releases page: beacon-server and beacon-web.