Skip to content

Add release notes + CI test workflow - #21

Merged
craigsc merged 2 commits into
mainfrom
version-notes
Apr 20, 2026
Merged

Add release notes + CI test workflow#21
craigsc merged 2 commits into
mainfrom
version-notes

Conversation

@craigsc

@craigsc craigsc commented Apr 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add a version-notes feature: NOTES.md (sectioned by ## X.Y.Z) ships as a release asset and cmux shows the current version's section once after an update, plus via cmux version
  • Wire up a tests/ directory with a simple runner and first test file covering the new behavior
  • Add a GitHub Actions workflow that runs the suite on every PR against both ubuntu-latest and macos-latest (bash 3.2 coverage)

How the feature behaves

  • First install / upgrading into this feature: silent. Seen-version file gets seeded so there's no surprise blast of notes.
  • After cmux update: the next cmux <cmd> prints a cmux X.Y.Z — what's new: banner once, then updates the seen file.
  • cmux version: always prints version + current section's notes.
  • NOTES.md missing / section missing: degrades silently, cmux version still prints the version string.

Release notes are kept out of cmux.sh so cutting a release only requires editing NOTES.md + bumping VERSION.

Test plan

  • bash tests/run.sh passes locally under bash 5 and /bin/bash (3.2) on macOS — 14 tests across: section extraction, missing-file degradation, seen-file state machine, cmux version output
  • End-to-end smoke: simulated 0.1.3 → 0.1.4 update shows the banner once, subsequent runs silent
  • CI green on this PR (ubuntu + macos)

Notes for the reviewer

  • VERSION stays at 0.1.3 in the tree; bump to 0.1.4 at release time — NOTES.md already has the ## 0.1.4 section staged
  • After merge, consider enabling branch protection (Settings → Branches) to require the Tests check before future merges

🤖 Generated with Claude Code

craigsc and others added 2 commits April 19, 2026 12:38
Release notes now live in NOTES.md, shipped as a release asset
alongside cmux.sh and VERSION, and sectioned by "## X.Y.Z". On the
first cmux invocation after an update, the current version's section
is printed as a banner; "cmux version" also prints it. Users on a
fresh install or upgrading into this feature stay silent on their
first run (no seen-version file yet) to avoid a surprise blast.

Also adds tests/ with a simple runner (tests/run.sh) and a first
test file covering the new behavior, including the missing-NOTES.md
degradation paths. Run with: bash tests/run.sh

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a Tests workflow that runs tests/run.sh on pull_request and on
push to main, across ubuntu-latest and macos-latest. macOS coverage
matters because /bin/bash there is 3.2 (Apple ships the old one for
licensing reasons), which has already bitten this repo at least once.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@craigsc
craigsc requested a review from siennathesane April 19, 2026 19:44
@craigsc

craigsc commented Apr 19, 2026

Copy link
Copy Markdown
Owner Author

Quick context: I view this release notes system as a required dependency for the upcoming project name change. we need some way to educate folks on the new command name as part of the transition. plus this is just a nice lil' feature

@craigsc
craigsc merged commit 008d364 into main Apr 20, 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.

1 participant