chore(release): create the release process #618
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
thwap/thwap-pagesd!618
Loading…
Reference in a new issue
No description provided.
Delete branch "chore/tpagectl-release-process"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Implements Phase 9 release process (roadmap #297).
release.ymlfails any tag that is notvX.Y.Z(the workflow triggers onv*, so this pins releases to strict semver).git tag --sort=-version:refname | sed -n '2p'), runsgit log --oneline --no-merges <prev>..HEAD, and groups commits by conventional-commit type (Added/Fixed/Docs/Chores/CI/Testing/Refactor/Performance/Build/Style/Other), written torelease-body.md. A finalize step thenPATCHes that body onto the created release.thwap-actions/golang-releasealready builds the binaries and writeschecksums.txt; a finalize step additionally packages every binary into<bin>_<ver>_<os>_<arch>.tar.gz(.zipfor windows) and uploads them to the release.cmd/tpagectl/README.md(Releasing section).Why
Roadmap task #297, the first item in Phase 9.
Testing
feat/fixinto Added/Fixed with short-SHA bullets.tar.gzfor unix,.zipfor.exe,checksums.txtskipped, correct archive names/contentsgo test ./...passes (30 packages); no Go changesBreaking Changes
None.
release.ymlbehavior is additive;golang-releaseanddocker-buildare untouched.Notes
All release-API/tarball logic lives in this repo's workflow per the chosen approach. The
thwap-actions/golang-releasesetup-python issue (#1) is fixed and closed.Closes #294
Closes #295
Closes #296
Closes #297
Clean release process. The semver guard, commit-grouped changelog (conventional-commit bucketing with short-SHA bullets), and the finalize step (PATCH release body, package
.tar.gz/.zip, upload via the Forgejo API) are logically sound and match the documented flow in the README. Approving; one robustness issue filed.Suggestions
.forgejo/workflows/release.yml(Finalize step) – Packaging couples togolang-releaseoutput conventions: artifacts are expected incmd/<bin>/dist, and only.exe-suffixed names get zipped. If the action's output path or naming differs, the loops silently skip and the release ships without archives — no error. Validate the dist dirs exist and fail loudly. Filed as #619.Notes
@main— #615 applies here too.v1.1.0-rc1) — intended, worth documenting.checksums.txtcovers the binaries; the newly built archives aren't checksummed.Praise
other, strips the conventional-commit prefix from subjects, and skips merges.checksums.txtwhen packaging and uses the Forgejo API for both the body PATCH and octet-stream asset upload.