Skip to content

chore: prepare the 2.1.4 release - #121

Merged
bagowix merged 2 commits into
mainfrom
chore/prepare-2.1.4-release
Aug 3, 2026
Merged

chore: prepare the 2.1.4 release#121
bagowix merged 2 commits into
mainfrom
chore/prepare-2.1.4-release

Conversation

@bagowix

@bagowix bagowix commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Summary

Prepare the 2.1.4 patch release.

  • 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

Everything 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 and EventListener failure isolation. No public symbol
was added or changed, so this is a patch, not a minor.

Why now

The v2.1.4 tag was pushed while interlock/version.py still read 2.1.3, so
the release workflow built 2.1.3 artifacts 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.txt

The regenerated file carries one change that is not from the version bump:
#87 changed the migration-guide anchors in docs/migration.md but did not
regenerate llms-full.txt, so the committed copy had drifted. Running
scripts/build_llms_full.py brings it back in sync.

docs/comparison.md keeps its "as of July 2026" label: that date records when
the 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 check failed this PR on Attribute 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-change label onto each one.

The -f github run still annotates the diff; the gate now reads a oneline
run 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

  • Test suite passes with 100% coverage (583 passed, 2 skipped)
  • uv run ruff format --check and uv run ruff check pass
  • uv run mypy, uv run pyright and uv run pyrefly check pass
  • Documentation updated (docs/)
  • CHANGELOG.md [Unreleased] updated
  • Release artifacts build successfully (interlock_cb-2.1.4, sdist + wheel)
  • Commits follow Conventional Commits

Related issues

- 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

codecov Bot commented Aug 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@codspeed-hq

codspeed-hq Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 21 untouched benchmarks


Comparing chore/prepare-2.1.4-release (e9c4506) with main (484118c)

Open in CodSpeed

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.
@bagowix
bagowix merged commit 3aa3928 into main Aug 3, 2026
16 of 17 checks passed
@bagowix
bagowix deleted the chore/prepare-2.1.4-release branch August 3, 2026 06:39
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