Skip to content

DEP: update and add missing lower bounds on direct dependencies#15041

Merged
Carreau merged 3 commits intoipython:mainfrom
neutrinoceros:dep/lower-bounds
Oct 31, 2025
Merged

DEP: update and add missing lower bounds on direct dependencies#15041
Carreau merged 3 commits intoipython:mainfrom
neutrinoceros:dep/lower-bounds

Conversation

@neutrinoceros
Copy link
Copy Markdown
Contributor

@neutrinoceros neutrinoceros commented Oct 25, 2025

Include changes from #15040
This is a best-effort attempt to provide/update lower bounds on direct dependencies in two groups: hard requirements, and test dependencies.
At the time of opening, I still see 7 test failing locally with an env obtained with uv sync --resolution=lowest-direct which may indicate that some updates are still needed (although it is not clear what dependencies are causing the failures). It could also be a symptom of transitive dependencies incompatibilities. In any case, this is still much better than no explicit lower bounds at all.
The end goal is to enable testing downstream with --resolution=lowest.
To guide reviewers I've included small comments to justify my choice of lower bounds. I simply commented "wheel" in places where I picked the oldest version that has a compatible wheel on PyPI (in some cases, older versions might still build from source, but relying on much more recent versions of setuptools is more or less bound to break at some point).

If you're interested, I'd be happy to also setup a CI job to systematically check that lower bounds are sound and up to date.

@neutrinoceros neutrinoceros changed the title dep/lower bounds DEP: update and add missing lower bounds on direct dependencies Oct 25, 2025
@neutrinoceros neutrinoceros marked this pull request as ready for review October 25, 2025 22:23
@Carreau
Copy link
Copy Markdown
Member

Carreau commented Oct 30, 2025

Thanks, I've resolve some conflicts.

I tend to be ok with being fairly aggressive with minimum dependencies as IPython follows spec-0 (https://scientific-python.org/specs/spec-0000/)

If you think any other test matrix elements are needed, feel free to send a PR.

@neutrinoceros
Copy link
Copy Markdown
Contributor Author

If you think any other test matrix elements are needed, feel free to send a PR.

will do once this one goes in. Thanks !

@Carreau Carreau merged commit d32e750 into ipython:main Oct 31, 2025
18 checks passed
@Carreau Carreau modified the milestones: 8.38, 9.7 Oct 31, 2025
@neutrinoceros neutrinoceros deleted the dep/lower-bounds branch October 31, 2025 10:19
Carreau added a commit that referenced this pull request Nov 4, 2025
…orted versions of direct dependencies (#15054)

Follow up to #15041

Since this setup requires uv (pip install doesn't support the
`--resolution` argument, crucial to this work), I've written it as a
completely separate job instead of a matrix item. It would be possible
to reconcile the two, but that would make for a much more invasive
change where I'd replace pip with uv everywhere. Of course, if that's
desired, I'm also happy to go all-in with uv, either here, or as a
follow up PR.
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.

2 participants