Skip to content

docs: add the release checklist, the notes composer and a changelog - #33

Merged
robrigo merged 1 commit into
mainfrom
docs/release-checklist
Aug 17, 2026
Merged

docs: add the release checklist, the notes composer and a changelog#33
robrigo merged 1 commit into
mainfrom
docs/release-checklist

Conversation

@robrigo

@robrigo robrigo commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

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.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 atomicassets.wasm, atomicassets.abi and SHA256SUMS. scripts/release-notes.sh 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 v2.0.0 Release now live, and attribution moves to AUTHORS.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.sh passes 12/12 and CI runs it; shellcheck is clean. git rev-list --count confirms 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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md to define the release checklist, required assets, and release-note structure.
  • Introduce scripts/release-notes.sh plus a paired test harness to compose GitHub Release bodies from CHANGELOG.md and 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.

Comment thread scripts/release-notes.test.sh Outdated
Comment thread scripts/release-notes.sh Outdated
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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 -d without 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)"

@robrigo

robrigo commented Aug 17, 2026

Copy link
Copy Markdown
Contributor Author

Round 2 suppressed note on scripts/release-notes.test.sh:11: probed and refuted. BSD mktemp on macOS accepts mktemp -d with no template and creates the directory under $TMPDIR; the same call is used unchanged in the sibling repositories' copies of this test.

@robrigo
robrigo merged commit 9e4e334 into main Aug 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants