NGINX UI Release
Use this workflow for NGINX UI releases from the repository root.
Preconditions
- Work from the
devbranch. - Inspect
git status --short --branchbefore changing files. - If the user asks to commit existing workspace changes first, inspect recent commit style and commit that work separately before release prep.
- Keep staging explicit. Do not include unrelated local changes.
- Treat
release-notes-vX.Y.Z.mdas a temporary local release artifact, not a committed file.
Version Preparation
- Run
./version.shoutside the sandbox when possible. It updatesapp/package.json, runs the frontend build, and refreshes generated artifacts that can require network access. - Enter the release version as
vX.Y.Zwhen prompted and confirm it. - Check the generated diff with
git status --shortandgit diff --stat. - Commit only version-preparation artifacts with:
git add <version-prep-files>
git commit -m "chore: prepare vX.Y.Z"
Do not commit release-notes-vX.Y.Z.md.
Release Notes
Create release-notes-vX.Y.Z.md in the repository root using exactly these sections:
## Features
- ...
## Bug Fixes
- ...
## Contributors
@handle
Guidelines:
- Base the notes on the verified range from the previous release tag to
HEAD. - Prefer GitHub handles for contributors when known from merged PRs or commit metadata.
- Use commit SHAs when PR numbers are not needed or not available.
- If there are no feature entries, use
- None.underFeatures. - Do not include test status unless the user explicitly asks for it.
Validation
./version.shalready runs the frontend build and Go generation.- By default, run lightweight checks such as
git diff --check. - Run broader tests only when appropriate for the release scope or when the user requests them. If the user says to skip tests, do not keep trying to run them.
- If local tests are affected by a parent Go workspace, use repo-isolated mode such as
GOWORK=offand a writableGOCACHE.
Tag, Push, And Publish
After the release-prep commit is created:
git -c tag.gpgSign=false tag -a vX.Y.Z -F release-notes-vX.Y.Z.md
git push origin dev vX.Y.Z
gh release create vX.Y.Z --verify-tag --title vX.Y.Z -F release-notes-vX.Y.Z.md --discussion-category Announcements
Notes:
- Use
git -c tag.gpgSign=false tag -a ...when local GPG signing blocks tag creation. - The GitHub Release command is expected to create the matching Announcements discussion.
- Verify publication with
gh release view vX.Y.Zand, if needed, inspect recent Discussions in theAnnouncementscategory. - After a successful release, leave the release-note markdown untracked unless the user asks to delete it.