Conversation
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
August 27, 2026 16:04
712caaf to
7b5e4e3
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
August 27, 2026 16:26
7b5e4e3 to
5fb2230
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
August 27, 2026 16:40
5fb2230 to
90a345d
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
August 27, 2026 16:46
90a345d to
d9e757e
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
2 times, most recently
from
September 18, 2026 03:46
d3abbb0 to
2f55c85
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
September 23, 2026 18:19
2f55c85 to
add51db
Compare
eriknw
added this pull request to stack #634
September 23, 2026 18:19
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
September 24, 2026 20:06
add51db to
aba52ce
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
2 times, most recently
from
September 25, 2026 06:10
a3c5b44 to
4162246
Compare
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
September 26, 2026 05:23
4162246 to
439bc4e
Compare
The pools refresh below this commit left sparse behind: the pool stopped at 0.15 while 0.16 through 0.19.2 exist, and py3.13/3.14 hardcoded "NA" under a comment saying sparse does not support them. That was true in the 0.15 era, when numba could not run on those Pythons; it is not true now. Constraints read off conda-forge metadata rather than assumed: every sparse release here is noarch with numba >=0.49 and numpy >=1.17 and no numpy ceiling, so only the Python floors matter. 0.16/0.17 declare python >=3.10 and 0.18/0.19 declare >=3.11. On py3.13/3.14 the pool starts at 0.16 because 0.14/0.15 predate those Pythons; on py3.11/3.12 the old entries stay. No new pairing rules are needed: the workflow already skips sparse whenever numba is skipped or NA, which covers sparse's only runtime dependency. The validate() Python check moves from "any sparse on py3.13+" to the 0.16 floor, and the stress test passes 160000 combos. Verified beyond metadata on this machine (py3.14, macOS arm64): sparse 0.16.0 and 0.19.2 pass the pydata-sparse io tests, and 0.18.0 passed the full suite. **Edit: rebased to include the changes on main, which largely supercedes this**
eriknw
force-pushed
the
41-ci-dep-pools-refresh
branch
from
September 26, 2026 05:25
439bc4e to
44c030e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #630. One commit remains here, the sparse pool refresh: the general pool refresh described first below landed on main as part of #629.
Refresh the CI dependency pools to the current releases. The pools had drifted a few releases behind: numpy 2.5, scipy 1.18, numba 0.65 through 0.67, and awkward 2.12 and 2.13 all exist and none were reachable except through the "latest" draw, which does not pin and so never produces a reproducible combination. Each addition brings a constraint, read off the packages' own conda metadata rather than assumed:
awkward needs nothing new: the existing numpy 2.5 rule already re-picks from the pool filtered to >=2.10, so 2.12 and 2.13 join it for free. Each rule is added to both
apply_constraintsandvalidate. The stress test covers 160000 combinations and passes; deleting any one of the three new fix-ups makes it fail (760, 3329 and 50380 bad combinations respectively), which is what says they are load-bearing rather than decorative.Refresh the sparse pool and lift its stale Python 3.13 exclusion. The refresh above left sparse behind: the pool stopped at 0.15 while 0.16 through 0.19.2 exist, and py3.13/3.14 hardcoded "NA" under a comment saying sparse does not support them. That was true in the 0.15 era, when numba could not run on those Pythons; it is not true now. Every sparse release here is noarch with numba >=0.49 and no numpy ceiling, so only the Python floors matter: 0.16/0.17 declare python >=3.10 and 0.18/0.19 declare >=3.11. On py3.13/3.14 the pool starts at 0.16 because 0.14/0.15 predate those Pythons. No new pairing rules are needed: the workflow already skips sparse whenever numba is skipped or NA. Verified beyond metadata on py3.14 (macOS arm64): sparse 0.16.0 and 0.19.2 pass the pydata-sparse io tests, and 0.18.0 passed the full suite. Stress test: 160000 combos, 0 failures.