Skip to content

chore(release): v0.12.0-rc1#134

Merged
chris-colinsky merged 2 commits into
mainfrom
chore/v0.12.0-rc1-release-prep
Jun 6, 2026
Merged

chore(release): v0.12.0-rc1#134
chris-colinsky merged 2 commits into
mainfrom
chore/v0.12.0-rc1-release-prep

Conversation

@chris-colinsky

Copy link
Copy Markdown
Member

Summary

v0.12.0-rc1 release prep per RELEASING.md. After this PR merges, push the v0.12.0-rc1 tag 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.0 without the rc1 suffix) before pushing the v0.12.0 tag.

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 changed
  • CHANGELOG.md:
    • ## [Unreleased]## [0.12.0] — 2026-06-05 with a new headline paragraph summarizing the cycle
    • Existing Production observability example. ### Added entry extended with the v0.12.0 additions to the example (LlmUsageAccumulator queryable-accumulator observer, persist node drain_events_for + read + drop pattern, InvocationCompletedEvent backstop, OTel formatter surfacing the root invocation span with its proposal 0052 attribution attributes)

What ships in v0.12.0

Three proposals implemented:

  • 0048 — read-symmetric metadata API (get_invocation_metadata() symmetric to set_invocation_metadata()) + a §9 Queryable observer pattern concept doc section
  • 0052 — implementation attribution attributes (openarmature.implementation.name + .version on every OTel invocation span; trace.metadata.implementation_name + _version on every Langfuse Trace; §3.4 reserved-key set grows 24 → 26)
  • 0054CompiledGraph.drain_events_for(invocation_id, *, timeout=5.0) -> DrainSummary as the architectural pair to 0048's §9.4 accumulator lifecycle

Two textual-only acks (0051 Langfuse trace.input/trace.output SDK round-trip caveat; 0053 §3.4 shared-parent boundary clarification).

One Fixed: RetryMiddleware now resets the invocation-metadata ContextVar between attempts per §3.4 (failed-attempt writes no longer leak across retries; closes the v0.12.0 cycle's partial claim 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 consistent
  • uv run ruff check . + uv run ruff format --check . — clean
  • uv run pyright src/ tests/ — 0 errors
  • uv run mkdocs build --strict — clean

After merge (out of this PR's scope)

  1. From freshly-pulled main: git tag v0.12.0-rc1 && git push origin v0.12.0-rc1
  2. Watch the workflow run; on success the artifact lands at https://test.pypi.org/project/openarmature/
  3. Verify per RELEASING.md Verifying 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 extras
  4. If rc is good: separate PR chore(release): v0.12.0 bumps version strings to 0.12.0 (no rc1 suffix), refresh CHANGELOG date if drifted, then push v0.12.0 tag for PyPI + GitHub Release

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.
Copilot AI review requested due to automatic review settings June 6, 2026 01:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.0rc1 across 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.

Comment thread CHANGELOG.md
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.
@chris-colinsky chris-colinsky merged commit cc874d4 into main Jun 6, 2026
6 checks passed
@chris-colinsky chris-colinsky deleted the chore/v0.12.0-rc1-release-prep branch June 6, 2026 01:52
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.

2 participants