Skip to content

Add Python 3.15 support and drop Python 3.9 - #430

Merged
mxamin merged 2 commits into
masterfrom
python-3.15
Oct 23, 2026
Merged

mxamin merged 2 commits into
masterfrom
python-3.15

Conversation

@mxamin

@mxamin mxamin commented Oct 23, 2026

Copy link
Copy Markdown
Collaborator
  • Build cp315 wheels: bump cibuildwheel 3.3 -> 4.3.4 (cp315 is built by default since 4.2) and add cp315-* to the build list.
  • Bump lxml to 6.1.3, the first release with cp315 wheels.
  • Add 3.15 to the manylinux, macOS, sdist, linuxbrew and Travis matrices.
  • Drop Python 3.9 (EOL): requires-python >=3.10, classifiers, cibuildwheel build list, CI matrices, and ruff target-version py310 (adds strict=True to the one zip() flagged by B905).
  • Leak harness: count surviving young-generation objects with len(gc.get_objects(0)) instead of gc.get_count()[0]. With the GC disabled, CPython 3.15's young-generation counter drifts upward even when no objects survive, which tripped "unreferenced objects detected" in TestCallbacks. The new check still catches retained and unreachable reference cycles.

- Build cp315 wheels: bump cibuildwheel 3.3 -> 4.3.4 (cp315 is built by
  default since 4.2) and add cp315-* to the build list.
- Bump lxml to 6.1.3, the first release with cp315 wheels.
- Add 3.15 to the manylinux, macOS, sdist, linuxbrew and Travis matrices.
- Drop Python 3.9 (EOL): requires-python >=3.10, classifiers, cibuildwheel
  build list, CI matrices, and ruff target-version py310 (adds strict=True
  to the one zip() flagged by B905).
- Leak harness: count surviving young-generation objects with
  len(gc.get_objects(0)) instead of gc.get_count()[0]. With the GC
  disabled, CPython 3.15's young-generation counter drifts upward even
  when no objects survive, which tripped "unreferenced objects detected"
  in TestCallbacks. The new check still catches retained and unreachable
  reference cycles.
Windows ARM64 wheel builds have failed since the windows-11-arm runner
moved to the VS2026 image (MSVC 14.44 -> 14.51) with C1047: the prebuilt
iconv_a.lib was compiled with /GL, which only links with the exact same
compiler build.

- Download Windows libs from win-binaries release 2026.10.23, where
  libiconv is built without /GL.
- Run the AMD64 Windows jobs on windows-2025-vs2026, since the libs are
  now built with VS2026 and need a linker at least that new.
- Windows libs: iconv 1.19-1, libxml2 2.11.9-8, libxslt 1.1.45,
  openssl 3.5.9, xmlsec 1.3.12, zlib 1.3.2.
- Unix libs: libiconv 1.19, openssl 3.6.5, xmlsec1 1.3.12, zlib 1.3.2.
  libxml2 stays at 2.14.6 to match lxml, and libxslt stays at 1.1.43
  because 1.1.44+ requires libxml2 >= 2.15.1.
@mxamin
mxamin merged commit 2913e8f into master Oct 23, 2026
137 of 157 checks passed
@mxamin
mxamin deleted the python-3.15 branch October 23, 2026 19:36
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