Skip to content

release: engine 0.5.0 - #1861

Merged
wshallwshall merged 15 commits into
mainfrom
release-0.5.0
Oct 1, 2026
Merged

wshallwshall merged 15 commits into
mainfrom
release-0.5.0

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

Release pull request for engine 0.5.0. Bumps __version__, the toolkit pin and the harness pin; assembles changelog.d/ into CHANGELOG.md; renames [Unreleased] to [0.5.0] and adds a fresh empty one; adds the [0.5.0] compare link.

After merge: tag v0.5.0 on the merged commit once its push run on main is green. The first upload claims messagefoundry-toolkit on PyPI.

Docs install pins (INSTALL-GUIDE, EARLY-ADOPTER-GUIDE, USER-GUIDE, README pairing note) still say 0.4.0 and follow in a separate PR.

Bumps __version__ and the toolkit and harness pins to 0.5.0, assembles the changelog fragments, and renames [Unreleased] to [0.5.0]. Tag v0.5.0 on the merged commit once its push run on main is green.
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

QA: code-review subagent xhigh, head 185d0ac, verdict FIX FIRST. (1) tests/test_install_docs_pin_the_current_version.py fails 6/57: install-guide pins still name 0.4.0. (2) Console 0.3.0 does not work with an engine newer than 0.4.0 (webconsole CHANGELOG [Unreleased]), so console 0.4.0 must release in lockstep. (3) The [0.5.0] notes section is about 233k characters; GitHub caps a release body at 125k, so gh release create would fail at tag time. Enqueue this PR ALONE: a fragment-carrying PR ahead of it in the same group fails its pr-check. A Builder is fixing all three on this branch.

@github-actions github-actions Bot added the ci-red A required check went red. Attribute it before retrying. label Sep 30, 2026
wshallwshall added 10 commits September 30, 2026 17:31
The console's Unreleased entry said it needs an engine newer than 0.4.0
and that console 0.3.0 does not work with that engine. So the console
is cut in the same pull request as engine 0.5.0, following
packaging/messagefoundry-webconsole/RELEASE.md.

- __version__ 0.3.0 -> 0.4.0 (step 0).
- SUPPORTED_ENGINE_SEAMS is unchanged at {10a6cc7c95459dcc}, which is
  the ENGINE_UI_SEAM engine 0.5.0 ships (step 0).
- Console changelog: Unreleased becomes "[0.4.0] - 2026-09-30 - Early
  Access", quoting the shipped seam, under a fresh Unreleased that keeps
  the pointer line. Compare links gain a webconsole-v0.4.0 row.
- Engine floor: messagefoundry>=0.5.0, no ceiling, no marker (step 2).
  The release-webconsole job refuses a wheel without one.
- Console README and docs/WEBCONSOLE-PACKAGE.md say the floor exists.
- Engine changelog: the seam entry names the shipped value and console
  0.4.0 instead of saying the value can still move.

Owner steps left: step 1 (engine [webconsole] extra) and step 3
(re-lock) need console 0.4.0 on PyPI first; step 6 tag
webconsole-v0.4.0 after engine v0.5.0 is on PyPI.
tests/test_install_docs_pin_the_current_version.py failed 6 of 57 on
the release branch: the guides still pinned engine 0.4.0 after
__version__ moved to 0.5.0.

- INSTALL-GUIDE: the pip pin, the early-access note, both $V verify
  blocks, the requirements.txt example and the console pin.
- EARLY-ADOPTER-GUIDE: the pip pin, its prose mentions and $V.
- USER-GUIDE: the engine, harness and console pins.
- SERVICE and README: the pair is console 0.4.0 with engine 0.5.0, and
  README's without-a-console bullet now covers console 0.3.0.
The engine release step feeds this version's CHANGELOG section to
`gh release create --notes-file`. The 0.5.0 section is about 233,000
characters. GitHub answers a longer body with "body is too long
(maximum is 125000 characters)", and the step sits before the PyPI
publish, so the v0.5.0 tag would have stopped there.

- scripts/release/release_notes.py rewrites notes.md in place. A body
  within 120,000 characters is left as it was. A longer one keeps its
  opening lines, whole, and ends with a link to the full section in
  CHANGELOG.md at the tag.
- Both the engine and the console release steps call it between the
  awk extraction and the first gh release call. No step is added; the
  event and ref guards, Sigstore and SLSA steps are untouched.
- tests/test_release_pipeline.py section 10 checks the call sits in
  that order in every step that uses --notes-file, runs the engine
  step's own lines under bash on an over-long fixture (with a control
  arm that proves the fixture is over GitHub's limit), and checks the
  cut lands on a line end at or under the limit.
From the code-review subagent's pass over this branch:

- The floor does not make pip refuse an older engine. pip upgrades
  the engine instead, and an unpinned upgrade takes the newest
  release, whose seam may differ. The console README and changelog
  note now say that.
- The 0.4.0 BREAKING entry said the seam value "can move again before
  the release". It now names 10a6cc7c95459dcc.
- docs/WEBCONSOLE-PACKAGE.md still said the package on main declares a
  bare dependency, and RELEASE.md said neither package sets a floor.
  Both now say the console sets one from 0.4.0 on.
- The pyproject comment said the floor landed in the commit that bumps
  the engine; it landed in the same pull request, one commit later.
The code-review subagent measured the first cut on the real 0.5.0
section: keeping the first 120,000 characters dropped both Security
blocks and 54 of the 78 BREAKING markers, and split an entry
mid-sentence.

- release_notes.py now reduces an over-long body to its headlines:
  every heading, and each top-level entry's bold title with its body
  dropped. The 0.5.0 section comes to about 23,000 characters, keeping
  73 of 78 BREAKING markers (the other 5 sit in entry bodies). Only if
  the headlines still do not fit is the text cut, at a line end.
- The two workflow calls were one line with a run of spaces where the
  backslash continuation had collapsed. They are two lines again.
- Tests: the executed check now runs the console step too, the
  fixture puts a BREAKING Security entry last so a plain cut would
  lose it, and the order check also refuses any use of notes.md after
  the bound other than --notes-file.
# Conflicts:
#	docs/EARLY-ADOPTER-GUIDE.md
…now ships

Merging origin/main brought two things the release must carry:

- changelog.d/1504.removed.md, a new fragment (BACKLOG #1504).
  `changelog_fragments.py assemble` put it under Unreleased; it now
  sits under [0.5.0] as its only Removed block, and Unreleased is
  empty again.
- PR 1862 moved the engine UI seam from 10a6cc7c95459dcc to
  32ad621e6081555e, with SUPPORTED_ENGINE_SEAMS. The engine changelog,
  the console [0.4.0] entry and the console README now quote
  32ad621e6081555e, and the console changelog notes why it moved.
Round 2 of the code-review subagent, two of its nits:

- headlines() kept only headings and entry titles, so a shrunk console
  page would lose the "Requires engine X. Supported engine UI seam"
  preamble. Top-level paragraphs are now kept whole.
- The footer said "each entry's title only" even when the titles were
  then cut too. It now adds "and not every title" in that case.

Declined, as latent and needing malformed input: a `**` inside a code
span in a title, a `#` line inside a code fence, `*` or numbered
top-level bullets, and an unclosed title spilling into a nested bullet.
Main moved again during this PR (PR 1858, the 2026-09-30 dependency
batch) and brought two fragments: annotated-types-cap-lift.changed.md
and hl7apy-choice-groups.fixed.md. `changelog_fragments.py assemble`
put them under Unreleased; they now sit at the top of [0.5.0], and
Unreleased is empty. The engine UI seam did not move
(32ad621e6081555e).
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

QA: code-review subagent xhigh, head 7e2ba13, verdict PASS WITH NITS (two rounds, nothing blocking); console 0.4.0 cut in lockstep with engine floor >=0.5.0 and seam 32ad621e6081555e, install pins at 0.5.0/0.4.0, release body shrunk to entry titles under 120,000 chars for both engine and console release steps. Rounds reviewed 185d0ac..96d6923; the two later commits only merge origin/main and move its fragments under [0.5.0].

wshallwshall added 3 commits October 1, 2026 04:27
Final merge of origin/main (57c4063) before the release.
`changelog_fragments.py assemble` folded 17 fragments into Unreleased.
They now sit at the top of [0.5.0], and Unreleased is empty.
`check --no-pending` and `pr-check` pass.

The engine UI seam did not move (32ad621e6081555e). The console
changelog entries main added under the console's [0.4.0] Changed block
ship in 0.4.0, which is where they landed.

release_notes.py on the new [0.5.0] section: 256,115 characters
shrunk to 25,617, with all 78 BREAKING markers kept.
From the code-review subagent's pass over the final merge:

- README's supply-chain note named one engine SBOM. The release now
  signs and ships two, Linux- and Windows-resolved (main's PR 1849).
- docs/MENTAL-MODEL.md still pinned messagefoundry==0.3.2 in its
  install line; it now pins 0.5.0. The pin test does not read that
  file.
- The 0.5.0 section is now about 256,000 characters, not 233,000. The
  workflow comment, the release_notes.py docstring and the test
  docstring say so.
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

QA: code-review subagent xhigh, head 9039545, verdict PASS WITH NITS (one round over 7e2ba13..HEAD, nothing blocking); merged main 57c4063, folded 17 fragments under [0.5.0] (set-compared: none lost or duplicated), seam unchanged at 32ad621e6081555e, release body 256,115 -> 25,617 chars with all 78 BREAKING markers; three stale texts fixed in 9039545.

The tags will be cut on 2026-10-01, so both release headings move from
2026-09-30. No other text quotes either date beside these versions;
the 2026-09-30 in tests/test_changelog_fragments.py dates a synthetic
0.4.1 fixture and stays.
@wshallwshall

Copy link
Copy Markdown
Collaborator Author

QA addendum: head 4b200b8, date-only change on top of the reviewed 9039545; engine [0.5.0] and console [0.4.0] headings now dated 2026-10-01. check --no-pending, pr-check, and 229 changelog/release/pin tests pass.

@wshallwshall
wshallwshall enabled auto-merge October 1, 2026 09:39
@wshallwshall
wshallwshall added this pull request to the merge queue Oct 1, 2026
Merged via the queue into main with commit 27d6dcb Oct 1, 2026
47 of 49 checks passed
@wshallwshall
wshallwshall deleted the release-0.5.0 branch October 1, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-red A required check went red. Attribute it before retrying.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant