docs: add the release checklist, the notes composer and a changelog - #33
Conversation
There was a problem hiding this comment.
Pull request overview
This PR standardizes how atomicassets-contract releases are produced and documented by introducing a written release procedure, a changelog-driven release-note composer, and CI coverage for the composer.
Changes:
- Add
RELEASING.mdto define the release checklist, required assets, and release-note structure. - Introduce
scripts/release-notes.shplus a paired test harness to compose GitHub Release bodies fromCHANGELOG.mdand git history. - Initialize
CHANGELOG.md(starting at v2.0.0) and update top-level docs/CI to reference and validate the new process.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/release-notes.test.sh | Adds a throwaway-repo integration test validating tag resolution, preview mode, and error cases for the release-notes composer. |
| scripts/release-notes.sh | New release-notes composer that builds a Release body from the changelog entry, commit list, and compare link. |
| RELEASING.md | New end-to-end release checklist and Release-body conventions for consistent publishing. |
| README.md | Adds a Releases section linking to RELEASING.md/CHANGELOG.md and moves credits attribution to AUTHORS.md. |
| CHANGELOG.md | Adds the initial changelog format and a v2.0.0 entry intended to match the live Release notes. |
| .github/workflows/contracts-ci.yaml | Runs the release-notes composer test in CI. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Releases were cut by hand and each Release body was written in its own shape, so a deployer had to hunt for the checksums, the ABI compatibility statement and the deploy notes in a different place every time, and attribution repeated per release. RELEASING.md fixes the procedure: the CHANGELOG entry rides in the feature PR, the release build writes SHA256SUMS with bare asset names and its two rows land in the entry as the release commit, a preview runs before the tag, and the Release attaches the wasm, the abi and SHA256SUMS. scripts/release-notes.sh (the composer shared with atomicassets-api, copied unchanged with its paired test that CI now runs) composes the body from the entry at the tag plus the commit list since the previous release of the same kind and the compare link. CHANGELOG.md starts at 2.0.0 with the entry that matches the live v2.0.0 Release; the README points at both files and at AUTHORS.md, which carries the lineage the Release bodies used to repeat.
cc52819 to
bf6cd16
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
Suppressed comments (1)
scripts/release-notes.test.sh:11
mktemp -dwithout a template is not portable to BSD/macOS (it errors unless-t/a template is provided), so this test script may fail for contributors running it locally on macOS even though it passes on GNU coreutils.
WORK="$(mktemp -d)"
|
Round 2 suppressed note on scripts/release-notes.test.sh:11: probed and refuted. BSD mktemp on macOS accepts |
Why
Releases of this contract were cut by hand and each body took its own shape, so a deployer hunted for the checksums, the ABI compatibility statement and the deploy notes in a different place every time.
RELEASING.mdfixes the procedure: the CHANGELOG entry rides in the feature PR, the release build writesSHA256SUMSwith bare asset names and its two rows land in the entry as the release commit, a preview runs before the tag, and the Release attachesatomicassets.wasm,atomicassets.abiandSHA256SUMS.scripts/release-notes.shcomposes the body from the entry at the tag plus the commit list since the previous release of the same kind and the compare link.CHANGELOG.mdstarts at 2.0.0 with the entry that matches the v2.0.0 Release now live, and attribution moves toAUTHORS.md. The existing Releases are already rewritten to this shape and the candidates retitled to their tags.Validation
The two scripts are byte-identical to the reviewed atomicassets-api files;
bash scripts/release-notes.test.shpasses 12/12 and CI runs it; shellcheck is clean.git rev-list --countconfirms the v2.0.0 range the live body lists, and a preview from a scratch branch carrying a draft entry composed the body as the checklist describes.