The changelog is a list of notable changes for each version of SV2 UI. It is a way to keep track of the project's progress and to communicate the changes to the users and the community.
The changelog is automatically generated on each release page, and extra contextual information is added as needed, such as:
- General release information.
- Breaking changes, such as setup steps users have to repeat after upgrading.
- Notable changes.
- The
sv2-appsrelease whose images this version runs.
Each release is cut from main into a release/vX.Y.Z branch. The release branch
turns a development build, which tracks the sv2-apps :main images, into a
release build pinned to a sv2-apps release. Its pin commits never go back to
main, and the branch is kept afterwards for future reference or fixes.
Usually the release process is as follows:
- Run Checks: Make sure CI is green on
main. - Create Release Branch: Create
release/vX.Y.Zfrom themainbranch. - Pin the SV2 UI Image: In
README.md, replacestratumv2/sv2-ui:mainwithstratumv2/sv2-ui:vX.Y.Zin everydocker runcommand. Commit aspin sv2-ui release image to vX.Y.Z. - Pin the SV2 Applications Images: In
shared/src/images.ts, replace every:mainimage with the tag of thesv2-appsrelease this version ships with, followed by its multi-arch index digest (e.g.stratumv2/translator_sv2:v0.8.0@sha256:...).docker buildx imagetools inspect <image>:<tag>prints the digest. Update the "Docker Images Used" section ofREADME.mdto match, and commit aspin sv2-apps images to vA.B.C. - Push Release Branch: CI runs on pushes to
release/v*, including the config compatibility check against the pinned images. - Create GitHub Release: Create the
vX.Y.Ztag on the release branch, generate the release notes, and publish the release. Publishing triggers the Docker workflow, which runs the config compatibility check again and pushes the multi-arch image asstratumv2/sv2-ui:vX.Y.Zandstratumv2/sv2-ui:latest.
SV2 UI is released as a whole, under a single vX.Y.Z version carried by the git
tag and the Docker image tag. It is independent from the sv2-apps version: for
example, SV2 UI v0.7.0 runs the sv2-apps v0.8.0 images. The version fields
in the package.json files are not part of the release and are not bumped.
The version is changed under the following criteria:
- If a release includes only bug fixes and minor improvements, then
Zis bumped. - If a release includes new features, or moves to a new
sv2-appsrelease, thenYis bumped. - If a release marks a major milestone (e.g., significant architectural changes or breaking changes to the setup), then
Xis bumped.
stratumv2/sv2-ui:mainis published on every push tomain, and runs thesv2-apps:mainimages.stratumv2/sv2-ui:vX.Y.Zandstratumv2/sv2-ui:latestare published with each release, and run the pinnedsv2-appsrelease images.
- Changes to
mainbranch MUST be added through a merge commit. - The
mainbranch is the default branch and it is always active. - The
mainbranch is protected and requires a pull request to merge changes with at least 1 approval. - Each release is tagged with the version number of the release, and its
release/vX.Y.Zbranch is kept for future reference or fixes.