TST/DEP: add missing env resolution constraints to make oldestdeps platform-portable#18693
Conversation
|
Thank you for your contribution to Astropy! 🌌 This checklist is meant to remind the package maintainers who will review this pull request of some common things to look for.
|
|
👋 Thank you for your draft pull request! Do you know that you can use |
|
upstream ticket at astral-sh/uv#16186 |
a063597 to
7b750f0
Compare
7b750f0 to
07cb5bc
Compare
|
oldestdeps is currently choking on a deprecation warning from setuptools: I don't know yet how to best resolve this.
conceptually, what we'd need is a constraint that only affects |
This comment was marked as outdated.
This comment was marked as outdated.
f603cc2 to
5eeda75
Compare
|
This is stable now. Opening for review ! |
pyproject.toml
Outdated
| "pytest>=8.0.0", | ||
| "sphinx-changelog>=1.2.0", | ||
| "sphinx_design", | ||
| "sphinx-design>=0.6.1", |
There was a problem hiding this comment.
Huh why? Official name has underscore https://pypi.org/project/sphinx_design/
There was a problem hiding this comment.
Note: 0.6.1 is the latest release; released on 2024-08-02 . For doc build, this is fine.
There was a problem hiding this comment.
Hyphens are normalized to underscores by pip and uv (and supposedly everyone else), I merely changed it for style consistency. The important bit is that I added a lower bound so that uv wouldn't warn about it being unbound when resolving for oldestdeps.
There was a problem hiding this comment.
I prefer the name be in sync with official PyPI name, can we revert back to underscore? thanks.
pllim
left a comment
There was a problem hiding this comment.
Someone more familiar with uv/tox should review. At a glance, the versions seem fine.
pyproject.toml
Outdated
| "sortedcontainers>=1.5.7", # (older versions may work) | ||
| "pytz>=2016.10", # (older versions may work) | ||
| "jplephem>=2.15", | ||
| "jplephem>=2.17.0", # first version with a wheel |
There was a problem hiding this comment.
these comments make me wonder where the majority really stands. I initially proposed to add inline comments to this effect in #16960 , but this part was rejected
There was a problem hiding this comment.
Those dates just for my own notes. I am okay with them staying as PR comments. FWIW
There was a problem hiding this comment.
We should try to follow SPEC 0, so when required dependency versions are being updated then providing a link to something like the project release history on PyPI is very helpful for reviewers. But once the reviewers have verified that updating a version is not problematic then those links have served their purpose. Therefore, the appropriate place for the links are comments in the PR, not pyproject.toml.
There was a problem hiding this comment.
pyproject.toml
Outdated
| # Install all remaining dependencies | ||
| "objgraph>=1.6.0", | ||
| "skyfield>=1.20", | ||
| "objgraph>=3.1.2", # first version with a py3 wheel |
pyproject.toml
Outdated
| "objgraph>=1.6.0", | ||
| "skyfield>=1.20", | ||
| "objgraph>=3.1.2", # first version with a py3 wheel | ||
| "skyfield>=1.42.0", # first version with a wheel |
pyproject.toml
Outdated
| "pytest>=8.0.0", | ||
| "sphinx-changelog>=1.2.0", | ||
| "sphinx_design", | ||
| "sphinx-design>=0.6.1", |
There was a problem hiding this comment.
Note: 0.6.1 is the latest release; released on 2024-08-02 . For doc build, this is fine.
pyproject.toml
Outdated
| # constrain acceptable versions of some known-problematic, indirect dependencies | ||
| constraint-dependencies = [ | ||
| "pyparsing<3.3.0a1", # https://github.com/astropy/astropy/issues/18652 | ||
| "asdf>=2.12.0", # first version without a runtime dependency on setuptools |
pyproject.toml
Outdated
| constraint-dependencies = [ | ||
| "pyparsing<3.3.0a1", # https://github.com/astropy/astropy/issues/18652 | ||
| "asdf>=2.12.0", # first version without a runtime dependency on setuptools | ||
| "asdf-coordinates-schemas>=0.2.0", # first version with a wheel |
|
Hmm 3.13t cannot find pyerfa wheel |
thanks for pointing it out, I missed this bit. Another note is that this PR will immediately (but trivially) conflict with #18697, which I recommend go in first. |
|
I merged #18697 . Please rebase when GH is back up. Thanks! |
f6c0423 to
5714328
Compare
5714328 to
f8bd163
Compare
Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com>
|
Remote data and linkcheck failures are unrelated |
astrofrog
left a comment
There was a problem hiding this comment.
This seems ok to me, I'm not sure we need comments like # first version with a wheel in pyproject.toml since once this PR is merged I'm not sure we'll care anymore why that was the min version? As long as it's not a super recent version, seems reasonable to bump from time to time.
as requested by astrofrog [ci skip]
|
of course. I except these comments to go away when versions are bumped. They are certainly not meant to forbid said bumps ! |
|
I removed the comments as Tom R requested. No point rerunning CI. Merging. Thanks, all! |
Description
Since #16963, uv has been used internally to dynamically resolve oldestdeps envs. However, without additional constraints, this solution doesn't necessarily port well across platforms (Linux, where we actually test this config, is on a happy path). Here I'm trying to improve the situation to allow
oldestdepstests to run on any platform by:Note that this last point is intended as temporary: I'll move said constraints to proper requirements whenever they affect direct dependencies, once this is stable.
I'm opening as a draft and skipping CI mostly to save this branch somewhere I won't forget it, but I note that, at the time of opening (uv 0.9.0 was just released), there appears to be a bug in uv that breaks resolving the full env on my machine, that I need to report upstream.