Skip to content

1.3.0, plus a URL for the demo and the badges a visitor reads first - #11

Merged
SuperInstance merged 1 commit into
masterfrom
claude/init-1wgqn0
Aug 18, 2026
Merged

1.3.0, plus a URL for the demo and the badges a visitor reads first#11
SuperInstance merged 1 commit into
masterfrom
claude/init-1wgqn0

Conversation

@SuperInstance

@SuperInstance SuperInstance commented Aug 18, 2026

Copy link
Copy Markdown
Owner

First, the thing that is blocking users

1.3.0 is tagged but not published. I verified by installing rather than by
reading the API: pip install --upgrade plainsong still gives 1.2.0, and
the header-typo warnings are absent from it.

The run for v1.3.0 passed the tag check, the tests and the build, then failed
at the Trusted Publisher step — same as 1.0.1, 1.1.0 and 1.2.0. The tag is
correct (2d552a5, master); only the upload is blocked.

What is in this PR

1.3.0. Meter.readable and theory.KEY_RE are new public names, and
unreadable header values now produce diagnostics that did not exist before —
which changes what check reports for anyone counting warnings in CI. Hence a
minor. No notation changes: 6,321 files compile to exactly the music they did in
1.0.0.

It also carries the workflow's skip-existing, which is what has been blocking
the GitHub Release notes for three releases. Once it lands, re-running those runs
produces their releases instead of dying on duplicates.

The demo gets a URL. docs/index.html redirects the Pages root to the
browser demo, so "try it" is a link rather than "download this file and open it"
— which is a weak call to action for the thing this project most wants people to
try. docs/.nojekyll stops Pages running the markdown through Jekyll.

The redirect is meta refresh plus a canonical link plus visible anchors, so
it works with scripting disabled and still leaves something to click if
everything fails. Loaded in headless Chromium to confirm it lands on the demo,
and the demo confirmed still working once there.

This needs Pages switched on — Settings → Pages → Deploy from a branch →
master / docs. Until then the README's new link 404s. It is the one part I
cannot do.

Badges. Version, supported Pythons, CI, dependencies-none, licence. They are
the first health signal anyone reads and there were none. [project.urls] gains
Changelog, Issues and a direct link to AGENTS.md, which PyPI renders as sidebar
links.

The version test earned itself

The README's status line still said "Version 1.2" against a 1.3.0 tree. The test
written for it one commit earlier failed on the first run of the bump — which is
exactly why it exists, since that line had silently claimed "1.0" while PyPI
shipped 1.2.0.

Verification

671 tests, 7 specs, ruff clean, 6339 file(s) checked, 6321 file(s) compile exactly as recorded, both artifacts built and passing twine check, and the
README link test green.

After merging

cd /tmp && rm -rf ps-release && mkdir ps-release && cd ps-release
git clone https://github.com/SuperInstance/plainsong.git .
grep __version__ plainsong/version.py     # must print 1.3.0

python3 -m venv .venv && . .venv/bin/activate
pip install -U build twine
python -m build
twine check dist/* && twine upload --skip-existing dist/*

The tag already exists and points at the right commit, so this is upload-only.
Setting up the Trusted Publisher would replace all of it with a re-run of the
failed workflow.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PBAjxy7cD6DzJ72NX8TJEc

The header-typo warnings and the PyPI page fix are on master and not on
PyPI, where 1.2.0 predates both. So a pip user still gets silent header
typos and a project page whose links 404.

A minor rather than a patch on two counts. Meter.readable and theory.KEY_RE
are new public names, and unreadable header values now produce diagnostics
that did not exist before, which changes what `check` reports for anyone
counting warnings in CI. No notation changes: 6,321 files compile to exactly
the music they did in 1.0.0.

This release also carries the workflow's skip-existing, which is what has
been blocking the GitHub Release notes for 1.0.1, 1.1.0 and 1.2.0 -- a run
whose artifacts are already on PyPI now completes instead of dying on
duplicates.

The README's version line was caught by the test written for it one commit
ago: it still said 1.2 against a 1.3.0 tree, which is the drift that test
exists to find.

671 tests, 7 specs, ruff clean, both artifacts built and passing twine check.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PBAjxy7cD6DzJ72NX8TJEc
@SuperInstance
SuperInstance merged commit 2d552a5 into master Aug 18, 2026
16 checks passed
@SuperInstance SuperInstance changed the title Cut 1.3.0 1.3.0, plus a URL for the demo and the badges a visitor reads first Aug 18, 2026
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