chore(release): v0.12.0-rc1#134
Merged
Merged
Conversation
Pyproject version + __version__ + tests/test_smoke.py assertion all bumped to 0.12.0rc1 ahead of the rc tag push per RELEASING.md. AGENTS.md regenerated to pick up the new version string in its header line. uv.lock refreshed because the package's own version changed. CHANGELOG flips [Unreleased] to [0.12.0] -- 2026-06-05 with a new headline paragraph summarizing the cycle: three implemented proposals (0048 read-symmetric metadata + queryable observer docs; 0052 implementation attribution attributes on every OTel invocation span + every Langfuse Trace; 0054 per-invocation observer event drain), two textual-only acks (0051 Langfuse trace input/output caveat; 0053 shared-parent boundary clarification), one Fixed (retry middleware now resets the invocation-metadata ContextVar between attempts), plus the production-observability example growing the queryable accumulator + drain_events_for pattern end-to-end. The existing Production observability example. Added entry was written when the example first shipped in an earlier cycle; the bullet now also covers the v0.12.0 additions to that example (LlmUsageAccumulator, persist node drain + read + drop pattern, InvocationCompletedEvent backstop, OTel formatter surfacing the invocation span with its attribution attributes). After this PR merges, push the v0.12.0-rc1 tag from a freshly pulled main. The release workflow routes -rc tags to TestPyPI; verify the rc per RELEASING.md before preparing the real-release bump in a separate PR.
There was a problem hiding this comment.
Pull request overview
Prepares the repository for the v0.12.0-rc1 release candidate by bumping package version strings and updating release notes, aligning the codebase with the upcoming TestPyPI tag workflow described in RELEASING.md.
Changes:
- Bump package version to
0.12.0rc1across project metadata, runtime__version__, and smoke tests. - Refresh the changelog with the v0.12.0 cycle summary and expanded production-observability example notes.
- Update generated/locked artifacts (
AGENTS.md,uv.lock) to reflect the new version.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Bumps distribution version to 0.12.0rc1. |
src/openarmature/__init__.py |
Updates runtime __version__ constant to 0.12.0rc1. |
tests/test_smoke.py |
Updates smoke assertion to match 0.12.0rc1. |
src/openarmature/AGENTS.md |
Regenerates header version string to 0.12.0rc1. |
uv.lock |
Updates editable package entry version to 0.12.0rc1. |
CHANGELOG.md |
Promotes release notes to a 0.12.0 section and expands the observability example entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Keep a Changelog convention is to keep an empty [Unreleased] heading at the top of CHANGELOG.md permanently — the first entry of the next release cycle lands there. The release-prep edit replaced the [Unreleased] heading with the versioned header inline, leaving nowhere for the v0.13.0 cycle's first entry to land without manually re-adding the heading. Restored above the [0.12.0] block.
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
v0.12.0-rc1 release prep per
RELEASING.md. After this PR merges, push thev0.12.0-rc1tag to fire the TestPyPI workflow; verify the rc per the checklist; then prepare a follow-on PR for the real-release version bump (0.12.0without therc1suffix) before pushing thev0.12.0tag.Files changed
pyproject.toml:version = "0.11.0"→version = "0.12.0rc1"src/openarmature/__init__.py:__version__ = "0.11.0"→__version__ = "0.12.0rc1"tests/test_smoke.py: version assertion →"0.12.0rc1"src/openarmature/AGENTS.md: regenerated (only the version-string in the header changed)uv.lock: auto-refreshed because the package's own version changedCHANGELOG.md:## [Unreleased]→## [0.12.0] — 2026-06-05with a new headline paragraph summarizing the cycleProduction observability example.### Addedentry extended with the v0.12.0 additions to the example (LlmUsageAccumulatorqueryable-accumulator observer,persistnodedrain_events_for+ read + drop pattern,InvocationCompletedEventbackstop, OTel formatter surfacing the root invocation span with its proposal 0052 attribution attributes)What ships in v0.12.0
Three proposals implemented:
get_invocation_metadata()symmetric toset_invocation_metadata()) + a §9 Queryable observer pattern concept doc sectionopenarmature.implementation.name+.versionon every OTel invocation span;trace.metadata.implementation_name+_versionon every Langfuse Trace; §3.4 reserved-key set grows 24 → 26)CompiledGraph.drain_events_for(invocation_id, *, timeout=5.0) -> DrainSummaryas the architectural pair to 0048's §9.4 accumulator lifecycleTwo textual-only acks (0051 Langfuse
trace.input/trace.outputSDK round-trip caveat; 0053 §3.4 shared-parent boundary clarification).One Fixed:
RetryMiddlewarenow resets the invocation-metadata ContextVar between attempts per §3.4 (failed-attempt writes no longer leak across retries; closes the v0.12.0 cycle'spartialclaim on 0048).Plus the production-observability example grew the queryable accumulator + drain_events_for pattern end-to-end so the new APIs have a runnable demo.
Test plan
uv run pytest tests/— 1123 passed, 307 skipped (smoke test version assertion now matches the new string)uv run python scripts/check_conformance_manifest.py— 51/51 entries consistentuv run ruff check .+uv run ruff format --check .— cleanuv run pyright src/ tests/— 0 errorsuv run mkdocs build --strict— cleanAfter merge (out of this PR's scope)
git tag v0.12.0-rc1 && git push origin v0.12.0-rc1RELEASING.mdVerifying the rc: fresh venv,pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'openarmature==0.12.0rc1', smoke check the version + hello-world + otel extraschore(release): v0.12.0bumps version strings to0.12.0(no rc1 suffix), refresh CHANGELOG date if drifted, then pushv0.12.0tag for PyPI + GitHub Release