Skip to content

fix(conda): the Python 3.10 conda build fails since soupsieve 3 was pinned #1633

Description

@JarryShaw

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:

  1. Drop 3.10 from the conda matrix.
  2. 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.

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    ciPull requests that change CI or workflow configuration (ci: subject prefix)
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  2. moved this to Needs decision in PyPCAPKiton Oct 13, 2026
  3. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

  4. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    I guess we should take option 2.

  5. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    Unless 3.10 is officially EOL, then we should drop 3.10 everywhere. And turning it to KTLO mode.

  6. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

  7. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 13, 2026
  8. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    yes, keep >=3.6. and since 3.10 EOL'ed, i suppose 3.15 is released?

  9. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    for KTLO, 3.10 still builds and tests. only that, they wont block the CI/CD if they fail - like a pre-release version.

  10. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    and if possible, i would like to bring 3.6 to 3.9 into the matrix as well under the KTLO mode.

  11. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

  12. removed
    needs: decisionWaiting on the maintainer to decide — not blocked by other work
    on Oct 13, 2026
  13. 9 remaining items

  14. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    #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.

  15. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

  16. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 13, 2026
  17. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

    requires-python stays >=3.6.

  18. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 13, 2026
  19. JarryShaw commented on Oct 13, 2026

    @JarryShaw
    OwnerAuthor

    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.

  20. moved this from Done to WIP in PyPCAPKiton Oct 13, 2026
  21. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciPull requests that change CI or workflow configuration (ci: subject prefix)fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions