Skip to content

release: 26.1.0 - #3693

Merged
benoitc merged 6 commits into
masterfrom
release/26.1.0
Aug 18, 2026
Merged

release: 26.1.0#3693
benoitc merged 6 commits into
masterfrom
release/26.1.0

Conversation

@benoitc

@benoitc benoitc commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Cuts 26.1.0.

Going through every commit since the 26.0.0 tag turned up three merged changes
that never got a changelog entry, so those are in here too: the truncated chunked
body fix (#3382 / #3685), the --spew crash on generated code (#3344 / #3495),
and dropping packaging from the runtime deps (#3643). Everything else was
already covered. Dependabot action bumps are left out as in previous releases,
happy to add them if you'd rather.

Unreleased becomes 26.1.0 - 2026-08-18, mirrored into the Latest page. Minor
rather than patch because of the new reload_extra_files glob support, which
matches the versionchanged:: 26.1.0 already in config.py.

The other half is the docker tests. pytest tests/docker cannot work: every
suite ships its own compose file and binds fixed host ports, so running them
together means requests land on another suite's containers, and you get failures
that look like the code is broken when nothing is. There's a runner now that
takes one suite at a time and tears each stack down before the next, and the
readiness timeouts go up so a cold image cache doesn't read the same way. The
README covers the runner, the ports each suite claims, and the fact that
tests/docker sits in norecursedirs, so pytest tests/ skips all of it and
still reports green.

Note this only lands the bump and the changelog. Tagging and the PyPI upload are
still manual.

Each suite binds fixed host ports, so a single `pytest tests/docker`
starts nine compose stacks at once and they answer each other's
requests. The failures that produces look like assertion errors from the
code, not infrastructure. Add a runner that takes one suite at a time
and tears its stack down before the next.

Raise the readiness timeouts from 60s to 180s: on a cold image cache the
first build outruns them, which reads as every test in the suite failing
to reach its service.

Document both, along with the port map and the fact that norecursedirs
makes `pytest tests/` skip these silently.
Add the three changelog entries that were missing since 26.0.0: the
truncated chunked body fix (#3382), the --spew indexing fix (#3344) and
dropping packaging from the runtime dependencies (#3643).

Promote Unreleased to 26.1.0 and mirror the section into the Latest
changelog page.
Upgrade the lock file, which carried advisories for tornado, h2, idna,
pytest and Pygments.

The tornado example pinned tornado<6, which is both the source of eight
advisories and older than the >=6.5.0 the tornado worker itself needs,
so the example could not run as pinned. The app code is already tornado
6 style.
Every declared floor was checked against the advisory database. Four
permitted vulnerable versions and are raised to the first clean release:
tornado 6.5.0 to 6.5.7, h2 4.1.0 to 4.4.1, setuptools 68.0 to 84.0.0 and
pymdown-extensions 10.0 to 11.0.1.

pytest and httpx were unpinned, so a resolver could pick a vulnerable
version if something else capped them. Both now carry a floor.

These change what users and contributors resolve on install, unlike the
lock file bump, which only affects local dev.
@benoitc
benoitc merged commit cc56c41 into master Aug 18, 2026
26 checks passed
@benoitc
benoitc deleted the release/26.1.0 branch August 18, 2026 09:13
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.

1 participant