You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(conda): the Python 3.10 conda build fails since soupsieve 3 was pinned #1633
The conda matrix builds Python 3.10–3.14, but conda/requirements.txt:20 pins soupsieve==3.0.3, which requires Python >=3.11.5 (PyPI metadata). Both 3.10 legs of Create Release run 38008819343 failed with No matching distribution found for soupsieve==3.0.3. As a result, 1.5.0b9 has 12 of 15 files on anaconda.org, none of them py310, and "Release status" warned conda=failure.
The pin came in with the build-1 bump cfb1ec7e3 (soupsieve 2.10 → 3.0). util/conda-dist.py writes the newest release of each dependency, whatever the oldest Python in the matrix supports. pcapkit itself declares requires-python = ">=3.6, <4" (pyproject.toml:49).
Decision needed:
Drop 3.10 from the conda matrix.
Have util/conda-dist.py pin per Python: the newest release that supports each leg's Python. soupsieve 2.8, for example, needs >=3.9.
This hit the release run today: Create Release 38333737458 failed both Python 3.10 conda legs (ubuntu and macOS) at Setup Conda Distribution with No matching distribution found for soupsieve==3.0.3; the other eight conda legs passed. Still waiting on your call here.
Taking that ruling: Python 3.10 reached end-of-life on 2026-10-01 (python.org's release-cycle data lists it as end-of-life), so 3.10 comes out everywhere. That covers the conda, PyPI, unit-test, compatibility and lint matrices, the classifiers, util/ci_timing.py, and the bug-report template. That also clears the soupsieve failure, since every remaining leg is 3.11 or newer. A worker is on it.
One sub-question. I'm reading KTLO as "3.10 stays installable but is no longer built or tested". On that reading requires-python keeps >=3.6 and is not raised to >=3.11, which would be a breaking change. Say if you want it raised.
Correcting my earlier comment: 3.10 is not being removed. The work now is:
requires-python stays >=3.6.
Supported, blocking: 3.11-3.15. 3.15.0 came out on 2026-10-09 (python.org release-cycle data: bugfix), so it moves from Python Compatibility's schedule-only leg into every matrix.
KTLO, non-blocking: 3.10 still builds and tests, but a failure there does not block CI or a release, the same way the pre-release leg is treated today. That covers the soupsieve failure here.
3.6-3.9 under KTLO, where it can work. The worker will measure whether pcapkit, its dependencies and GitHub's runners can still run each version, and will report any it cannot.
If adding 3.15 or demoting 3.10 needs ruleset 23497679's required checks changed, I'll list exactly which; editing the ruleset is yours. A fresh worker is on it.
#1653 merged and i updated #1645's branch to merge from main.
on the CI/CD GHA workflow and other place's updates, I'm wondering if we can make it easier for future updates when 3.11 EOL and 3.16 (pre-)released. and not only CPython releases but also PyPy and other distros.
Thanks for updating #1645. Its new head, 1f3f723bb, has exactly the tree I verified merged with main (b0ceef616), so the verdict stands. For making the next version change easier, including PyPy and other distributions, I filed #1660: one data file declares the tiers, every matrix reads it, and a scheduled job flags end-of-life dates and new pre-releases. It starts once #1645 lands.
Follow-up from chat, after #1645 merged: the owner asked for the older versions to join KTLO. 3.8 and 3.9 already have.
3.7 is being added in a separate PR, on ubuntu-22.04, the last hosted image setup-python builds it for. Its legs will stay red, but non-blocking, until pcapkit stops using 3.8-only syntax (27 positional-only defs, 60 walrus expressions).
3.6 is not being added. Its only builds target the retired ubuntu-18.04 and 20.04 images.
Reopened. Adding 3.7 to KTLO is part of this issue's own scope: the ruling here asked for the older versions in KTLO where possible. #1645 shipped 3.8 and 3.9 and left 3.7 out, so the issue closed with that piece unfinished. The 3.7 PR, being written, will close it. 3.6 stays out, because its only hosted runners are retired.
Activity
JarryShaw commentedon Oct 13, 2026
This hit the release run today: Create Release 38333737458 failed both Python 3.10 conda legs (ubuntu and macOS) at Setup Conda Distribution with
No matching distribution found for soupsieve==3.0.3; the other eight conda legs passed. Still waiting on your call here.JarryShaw commentedon Oct 13, 2026
I guess we should take option 2.
JarryShaw commentedon Oct 13, 2026
Unless 3.10 is officially EOL, then we should drop 3.10 everywhere. And turning it to KTLO mode.
JarryShaw commentedon Oct 13, 2026
Taking that ruling: Python 3.10 reached end-of-life on 2026-10-01 (python.org's release-cycle data lists it as
end-of-life), so 3.10 comes out everywhere. That covers the conda, PyPI, unit-test, compatibility and lint matrices, the classifiers,util/ci_timing.py, and the bug-report template. That also clears the soupsieve failure, since every remaining leg is 3.11 or newer. A worker is on it.One sub-question. I'm reading KTLO as "3.10 stays installable but is no longer built or tested". On that reading
requires-pythonkeeps>=3.6and is not raised to>=3.11, which would be a breaking change. Say if you want it raised.JarryShaw commentedon Oct 13, 2026
yes, keep
>=3.6. and since 3.10 EOL'ed, i suppose 3.15 is released?JarryShaw commentedon Oct 13, 2026
for KTLO, 3.10 still builds and tests. only that, they wont block the CI/CD if they fail - like a pre-release version.
JarryShaw commentedon Oct 13, 2026
and if possible, i would like to bring 3.6 to 3.9 into the matrix as well under the KTLO mode.
JarryShaw commentedon Oct 13, 2026
Correcting my earlier comment: 3.10 is not being removed. The work now is:
requires-pythonstays>=3.6.bugfix), so it moves from Python Compatibility's schedule-only leg into every matrix.If adding 3.15 or demoting 3.10 needs ruleset 23497679's required checks changed, I'll list exactly which; editing the ruleset is yours. A fresh worker is on it.
9 remaining items
JarryShaw commentedon Oct 13, 2026
#1653 merged and i updated #1645's branch to merge from main.
on the CI/CD GHA workflow and other place's updates, I'm wondering if we can make it easier for future updates when 3.11 EOL and 3.16 (pre-)released. and not only CPython releases but also PyPy and other distros.
JarryShaw commentedon Oct 13, 2026
Thanks for updating #1645. Its new head,
1f3f723bb, has exactly the tree I verified merged withmain(b0ceef616), so the verdict stands. For making the next version change easier, including PyPy and other distributions, I filed #1660: one data file declares the tiers, every matrix reads it, and a scheduled job flags end-of-life dates and new pre-releases. It starts once #1645 lands.ci(matrix): split Python into supported 3.11-3.15 and non-blocking KT…
JarryShaw commentedon Oct 13, 2026
Follow-up from chat, after #1645 merged: the owner asked for the older versions to join KTLO. 3.8 and 3.9 already have.
ubuntu-22.04, the last hosted image setup-python builds it for. Its legs will stay red, but non-blocking, until pcapkit stops using 3.8-only syntax (27 positional-only defs, 60 walrus expressions).requires-pythonstays>=3.6.JarryShaw commentedon Oct 13, 2026
Reopened. Adding 3.7 to KTLO is part of this issue's own scope: the ruling here asked for the older versions in KTLO where possible. #1645 shipped 3.8 and 3.9 and left 3.7 out, so the issue closed with that piece unfinished. The 3.7 PR, being written, will close it. 3.6 stays out, because its only hosted runners are retired.
ci(python): add 3.7 as a KTLO leg (#1633) (#1665)