chore: prepare the 2.1.4 release - #121
Merged
Merged
Conversation
- bump the package version from `2.1.3` to `2.1.4` - move the current changelog entries from `[Unreleased]` into `2.1.4` - update changelog comparison links - update the release version in the comparison page - regenerate `docs/llms-full.txt`
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Contributor
Every release bumps `interlock.VERSION`, and `griffe check` reports the new value as a changed attribute — the release mechanism working, not a public-API breakage. The job was added in #118 and this is the first release since, so it had never been exercised against a bump: it failed the 2.1.4 release PR and would have failed every one after it, or forced a misleading `breaking-change` label onto it. The `-f github` run still annotates the diff; the gate now reads a `oneline` run with that one finding filtered out. The filter matches only that attribute, in that file, for that check — if griffe rewords the message it stops matching and the job fails, which is the safe direction.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepare the
2.1.4patch release.2.1.3to2.1.4[Unreleased]into2.1.4docs/llms-full.txtEverything in
[Unreleased]is infrastructure, documentation and bug fixes —the correctness docs page, the OpenSSF badge,
griffe check, mutation testing,pyrefly, the Codecov move, the supply-chain hardening, plus the coordinator
lane
task_done()fix andEventListenerfailure isolation. No public symbolwas added or changed, so this is a patch, not a minor.
Why now
The
v2.1.4tag was pushed whileinterlock/version.pystill read2.1.3, sothe release workflow built
2.1.3artifacts and PyPI rejected the upload —that filename already exists and PyPI never allows reuse. The tag has been
deleted locally and on the remote; it needs to be re-created on the merge
commit of this PR so the build picks up the bumped version.
Note on
docs/llms-full.txtThe regenerated file carries one change that is not from the version bump:
#87 changed the migration-guide anchors in
docs/migration.mdbut did notregenerate
llms-full.txt, so the committed copy had drifted. Runningscripts/build_llms_full.pybrings it back in sync.docs/comparison.mdkeeps its "as of July 2026" label: that date records whenthe other libraries' versions were checked, and only interlock's own cell
moves — the same way the 2.1.3 release handled it.
The griffe gate had to be fixed first
griffe checkfailed this PR onAttribute value was changed: '2.1.3' -> '2.1.4'.The job landed in #118 and this is the first release since, so it had never run
against a version bump — it would have failed every release from now on, or
forced a misleading
breaking-changelabel onto each one.The
-f githubrun still annotates the diff; the gate now reads aonelinerun with that single finding filtered out. The filter matches only that
attribute, in that file, for that one check, so it fails closed: if griffe
rewords the message it stops matching and the job fails. Verified both ways
locally — the bump alone passes, and a removed public export
(
sync_timeout) still fails it.Checklist
uv run ruff format --checkanduv run ruff checkpassuv run mypy,uv run pyrightanduv run pyrefly checkpassdocs/)CHANGELOG.md[Unreleased]updatedinterlock_cb-2.1.4, sdist + wheel)Related issues