Release v1.2.0 - #22
Merged
Merged
Conversation
Compatible feature release: selectable RangeSet locking (synchronized), fully-native scalar release/reserve mutators, faster native add/discard via trusted result construction, and behavior-preserving snapshot/lease caching. Bumps pyproject version, regenerates uv.lock, adds docs/releases/1.2.0.md, and updates the version/release-notes contracts.
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
Release
1.2.0— a compatible feature release cutting the perf work merged in #19/#20/#21. Bumpspyproject.tomlto1.2.0, regeneratesuv.lock, addsdocs/releases/1.2.0.md, points the README release-notes link at it, extends the versioning/post-release docs, and moves the pinned version contracts (test_installed_version_matches_project_metadata,test_release_tag_contract_tracks_the_releasable_major_version) to1.2.0.The stable
1.0.0/1.1.0/1.1.1APIs are unchanged; existing applications require no migration.What ships in 1.2.0
synchronized=onRangeSet/create_range_set/BackendRegistry.create(+RangeSet.synchronized). DefaultTruekeeps full thread-safety;Falseopts out of internal synchronization under a caller-owned contract.RangeSet.release(span) -> intandreserve(span, *, require_covered=False) -> int, returning only the changed length, geometry-consistent withadd/discard, guarded to authoritative geometry-only sets (no silent fallback).add/discard— validation-free native result construction and cached bound native mutators on thecpp_boundarypath;MutationResult/Span/IntervalResultunchanged.BackendAdapter.supports_scalar_delta/release_delta_length/reserve_delta_length;RangeSetProtocol.release/.reserve; nativeIntervalManager.release_delta_length/reserve_delta_length.Scoped
cpp_boundaryevidence (Apple M5 Max): scalarrelease/reserve~4.3M/s synchronized, ~5.0M/s unsynchronized;add/discard~1.5–1.7M/s; raw-native floor ~7.9M/s (was ~0.9M/s for 1.1.1add/discard). Not a universal claim — seedocs/performance.md.Pre-release gate (run locally on this branch)
uv lock --checkclean; ruff check + format clean;mypy treemendousclean.tests/docs+tests/packaging/test_artifact_policy.py: 73 passed (version/notes/link contracts updated).uv build→ wheel + sdist;scripts.verify_artifact_contents distrc=0 (docs/releases/1.2.0.mdpresent in sdist);twine check --strictPASSED for wheel and sdist.Publish
On merge, publish a GitHub Release with tag
v1.2.0targeting the merge commit. Therelease: publishedworkflow re-audits, builds all platform wheels + sdist, runs isolated wheel/sdist smokes andtwine check --strict, runs the exact-batch evidence against the immutable pre-promotion commit, and publishes once via the single OIDC trusted publisher.