Skip to content

release: 0.2.2#15

Merged
Nik7A merged 1 commit into
mainfrom
release-0-2-2
Jul 17, 2026
Merged

release: 0.2.2#15
Nik7A merged 1 commit into
mainfrom
release-0-2-2

Conversation

@Nik7A

@Nik7A Nik7A commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Cuts 0.2.2 over the four fixes now on main (#11, #12, #13, #14). Version bump + CHANGELOG only — no code.

What ships

Rotation destroyed the previous key's records manifest.pubkeys is append-only. Verifier resolves rotated-away keys from the manifest alone.
__version__ two releases stale Derived from dist metadata; the number lives once.
Sink promised cross-process serialisation Promise now names the process boundary.
is_control_flow_signal was private Public, with the underscore name kept as an alias until 0.3.

All four were reported by a host putting the library into real use, not by reading the code. One had already destroyed evidence — 330 records signed with a key that exists nowhere.

Compatibility

  • No change to the signature form or the chain. Records from 0.1.x, 0.2.0 and 0.2.1 verify unchanged.
  • Existing manifests stay readable: pubkeys is additive and schema_version is untouched, because from_dict rejects any version but its own and a bump would make every manifest in the field unreadable.
  • _is_control_flow_signal still resolves, for hosts pinning >=0.2,<0.3.

Worth noting

__init__.py needed no edit for this bump. 0.2.2 is the first release where __version__ derives from the packaging config instead of being a literal someone has to remember — it reported 0.2.2 the moment pyproject.toml did. That is #11 paying for itself one release after landing.

After merge

git tag -s v0.2.2 -m "0.2.2" <merge commit> && git push origin v0.2.2

version 0.2.1 -> 0.2.2. Four defects, none of them found by reading the code —
all four came from a host putting the library into real use.

The CHANGELOG leads with the one that had already destroyed evidence: 330
records signed by a key the manifest deleted on rotation, unverifiable forever.
Then the two stale claims (__version__ two releases behind while public API;
the sink promising cross-process serialisation it never had), then the one
addition (is_control_flow_signal made public, since a host needs it to avoid
signing false failures).

__init__ needed no edit for this bump — 0.2.2 is the first release where
__version__ derives from the packaging config rather than being a literal
someone has to remember. It reported 0.2.2 the moment pyproject did.

No change to the signature form or the chain. Records written by 0.1.x, 0.2.0
and 0.2.1 verify unchanged, and existing manifests stay readable: pubkeys is
additive and schema_version is untouched, because from_dict rejects any version
but its own and a bump would make every manifest in the field unreadable.
@Nik7A
Nik7A merged commit 8b364a4 into main Jul 17, 2026
1 check passed
@Nik7A
Nik7A deleted the release-0-2-2 branch July 17, 2026 11:45
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