Skip to content

Release m0serve 1.15.0 and m0 0.12.0 - #616

Merged
github-actions[bot] merged 3 commits into
mainfrom
release-1.15.0
Oct 11, 2026
Merged

github-actions[bot] merged 3 commits into
mainfrom
release-1.15.0

Conversation

@codetalcott

Copy link
Copy Markdown
Owner

Release m0serve 1.15.0 and m0 0.12.0. It carries the fixes from the 2026-10-10 review (#615) and the two issues reported against 1.14.0 (#611, #612).

What is in the branch

The bump (388f666f):

  • Versions: pyproject.toml, uv.lock, M0SERVE_VERSION in cli.mojo, the m0 wheel's __version__, and QUICKSTART's echo.
  • The changelog: the [Unreleased] entries move under [1.15.0] — 2026-10-11 with an introduction, and the Fixed list is grouped by component.

This is a minor release because two changes touch the served contract. The introduction and the Changed entries name both, as 1.13.0 named its port change:

  • A request header whose name holds an underscore is dropped before a WSGI application sees it, or an ASGI application under --blocking-threads (the CVE-2015-0219 class).
  • --replay-frames or M0_REPLAY_FRAMES above 4096 is refused at startup with exit 78.

Two re-pointed sabotage anchors. In the run, new: writes over what is there and image: --tag is ignored read NOT APPLICABLE: #615's P8 and P9 had moved their lines, and #615 re-ran the m0-wheel harness but not this one, whose image rules need docker. Both are re-pointed in the last commit, re-run alone, and caught.

Bench artifacts (e3985bc4): bench-linux-conclusions' three Linux artifacts and the pool probe. render-bench-docs reports them already current.

Not needed for this release:

The pre-release run (every gate in docs/RELEASING.md)

Stage Gates Result
A fuzz-request-long, soak-apps, smoke-wheel, four browser gates, sabotage-differential, test-postgres-server all green
C autobahn; stress-pool (20/20 rounds and 40/40 holds in all three wake modes); probe-mojo-image; sabotage-mojo-image all green
Q probe-pool-fairness: in job order with the barrier on, and the convoy and starvation visible with it off. probe-pool: pooled p99 of 0.2 / 0.3 / 0.2 ms at slow 0 / 1 / 2. stress-asgi: 30/30 in both modes. bench-linux-conclusions: every conclusion holds, spreads 0.7–1.2 %. all green
S sabotage-notes-login 15/15, sabotage-blobs 31/31, sabotage-outbox-cap 4/4, sabotage-m0-wheel 26/26, sabotage-host 68/68 plus parallel 1/1 all caught
D sabotage-scaffold: 72 rules outside image:, then each of the 12 image: rules alone, with a builder prune and an fstrim between 84/84 caught

The quiet stage ran before S and D because the machine went quiet early in the run.

After the merge

Tags m0-v0.12.0, then v1.15.0, at the merge commit. Each release run pauses at its PyPI environment for the owner's approval. Approve pypi-m0 first, then pypi: the site deploys when the Release run completes, so this order keeps it from ever describing an m0 the index lacks.

🤖 Generated with Claude Code

codetalcott and others added 3 commits October 10, 2026 23:12
The fixes from the 2026-10-10 review (#615) and the two issues reported
against 1.14.0 (#611, #612). The CHANGELOG's section names the two changes
that touch the served contract: a request header whose name holds an
underscore is dropped before a WSGI application sees it, and
`--replay-frames` / `M0_REPLAY_FRAMES` above 4096 is refused with 78. The
Fixed list is grouped by component. Versions: pyproject.toml, uv.lock,
M0SERVE_VERSION, the QUICKSTART echo, and m0's __version__.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… run

bench-linux-conclusions: every headline conclusion holds, spreads 0.7-1.2 %.
probe-pool: the pooled row 0.2 / 0.3 / 0.2 ms p99 at slow 0 / 1 / 2.
render-bench-docs: already current.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`new: writes over what is there` anchored the occupied-directory test that
now ignores a `.git` (`_entries`), and `image: --tag is ignored` the tag
line that now defaults to `[project].name`. #615 re-ran sabotage-m0-wheel
but not this harness, whose image rules need docker, so both read NOT
APPLICABLE in the 1.15.0 pre-release run. Each was re-run alone after the
re-point and is caught; the harness is 84 of 84.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codetalcott codetalcott added the automerge Merge automatically once the Tests workflow passes label Oct 11, 2026
@github-actions
github-actions Bot merged commit 8e935fa into main Oct 11, 2026
19 checks passed
@github-actions
github-actions Bot deleted the release-1.15.0 branch October 11, 2026 06:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge Merge automatically once the Tests workflow passes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant