Skip to content

Drop numpy upper bound, run CI weekly - #5

Merged
wrignj08 merged 2 commits into
mainfrom
deps-numpy-unpin-weekly-ci
Aug 13, 2026
Merged

Drop numpy upper bound, run CI weekly#5
wrignj08 merged 2 commits into
mainfrom
deps-numpy-unpin-weekly-ci

Conversation

@wrignj08

Copy link
Copy Markdown
Contributor

Drop the numpy upper bound

numpy>=2.0,<2.4numpy>=2.0.

The cap existed to keep numba installable, but numba is not a runtime dependency — it only enters through the dev group, via s2mosaicnumbaggnumba. The bound therefore constrained every downstream install to protect a package users never receive. numba also declares its own ceiling (numpy<2.6 as of 0.67), so the resolver handles the dev-side constraint without help.

A fresh resolve after the change:

before after
numpy (3.12+) 2.3.5 2.5.2
numpy (3.11) 2.3.5 2.4.6
numpy (3.10) 2.2.6 2.2.6
numba 0.64.0 0.67.0
llvmlite 0.46.0 0.49.0

3.11 stops at 2.4.6 and 3.10 at 2.2.6 because numpy dropped those interpreters, not because of anything in our tree.

Full non-e2e suite passes on the upgraded set — 163 passed, 36 deselected, on 3.13 / numpy 2.5.2.

Run CI weekly

Adds schedule: "0 0 * * 0" (Sundays 00:00 UTC) and workflow_dispatch.

uv.lock is gitignored, so uv resolves fresh on every CI run — a scheduled build tests against current upstream releases and will surface a breaking numpy or numba version before users hit it. That matters more now that the upper bound is gone.

e2e tests stay excluded; they need a GPU, which GitHub-hosted runners don't provide.

Notes

  • No CHANGELOG entry yet — to be added after merge.
  • GitHub disables cron on repos with no commits for 60 days, so a silent absence of runs is worth knowing about as a failure mode.

🤖 Generated with Claude Code

wrignj08 and others added 2 commits August 13, 2026 13:58
The <2.4 cap was there to keep numba installable, but numba is not a
runtime dependency — it only enters through the dev group, via
s2mosaic -> numbagg -> numba. The cap therefore constrained every
downstream install to protect a package users never receive.

numba also declares its own numpy ceiling (numpy<2.6 as of 0.67), so
the resolver handles the dev-side constraint without help here.

With the bound gone, a fresh resolve moves numpy to 2.5.2 on 3.12+ and
2.4.6 on 3.11, pulling numba 0.67 and llvmlite 0.49 with it. The full
non-e2e suite passes there (163 passed) on 3.13 / numpy 2.5.2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
No lockfile is committed (uv.lock is gitignored), so uv resolves
dependencies fresh on every CI run. A scheduled build therefore tests
against current upstream releases and will surface a breaking numpy or
numba version before users hit it — which matters more now that the
numpy upper bound is gone.

Also adds workflow_dispatch so the job can be triggered by hand rather
than only on the cron.

e2e tests stay excluded: they need a GPU, which GitHub-hosted runners
do not provide.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@wrignj08
wrignj08 merged commit 5a4e150 into main Aug 13, 2026
10 checks passed
@wrignj08
wrignj08 deleted the deps-numpy-unpin-weekly-ci branch August 19, 2026 06:41
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