Skip to content

use tox_uv to resolve -oldestdeps with lowest-direct#10154

Draft
zacharyburnett wants to merge 3 commits intospacetelescope:mainfrom
zacharyburnett:use_uv
Draft

use tox_uv to resolve -oldestdeps with lowest-direct#10154
zacharyburnett wants to merge 3 commits intospacetelescope:mainfrom
zacharyburnett:use_uv

Conversation

@zacharyburnett
Copy link
Collaborator

@zacharyburnett zacharyburnett commented Jan 16, 2026

https://github.com/spacetelescope/jwst/actions/runs/21078503574/job/60626298430?pr=10154#step:10:37

dependencies...
[project]
...
dependencies = [
    "asdf>=4.2,<6",
    "astropy>=6.1",
    "BayesicFitting>=3.2.3",
    "crds>=12.0.4",
    "drizzle>=2.1.1,<2.2.0",
    "gwcs @ git+https://github.com/spacetelescope/gwcs.git@main",
    # "gwcs>=0.26.0",
    "numpy>=1.25",
    "photutils>=2.1.0",
    "pyparsing>=2.2.1",
    "requests>=2.31",
    "scikit-image>=0.21.0",
    "scipy>=1.14.1",
    "spherical-geometry>=1.3",
    "stdatamodels @ git+https://github.com/spacetelescope/stdatamodels.git@main",
    # "stdatamodels>=4.1.0,<4.2.0",
    "stcal @ git+https://github.com/spacetelescope/stcal.git@main",
    # "stcal>=1.15.1,<1.16.0",
    "stpipe @ git+https://github.com/spacetelescope/stpipe.git@main",
    # "stpipe>=0.11.0,<0.12.0",
    "synphot>=1.3",
    "tweakwcs>=0.8.8",
    "packaging>=21.0",
    "importlib-metadata>=4.11.4",
    "jsonschema>=4.8",
]

...

[project.optional-dependencies]
docs = [
    "matplotlib",
    "numpydoc",
    "sphinx",
    "sphinxcontrib-jquery",
    "sphinx-automodapi",
    "sphinx-rtd-theme",
    "pytest-doctestplus>=1.7",
]
sdp = [
    "jplephem>=2.9",
    "pysiaf>=0.13.0",
]
test = [
    "ci-watson>=0.10",
    "pysiaf>=0.13.0",
    "pytest>=9.0.0",
    "pytest-doctestplus>=1.7",
    "requests_mock>=1.0",
]
contrib = [
    "pre-commit>=4.1.0",
    "jwst[test, docs]",
]
resolved environment...
alabaster==1.0.0
asdf==4.2.0
asdf-astropy==0.8.0
asdf-coordinates-schemas==0.4.0
asdf-standard==1.4.0
asdf-transform-schemas==0.6.0
asdf-wcs-schemas==0.5.0
astropy==6.1.0
astropy-healpix==1.1.2
astropy-iers-data==0.2026.1.12.0.42.13
attrs==25.4.0
babel==2.17.0
bayesicfitting==3.2.3
certifi==2026.1.4
charset-normalizer==3.4.4
ci-watson==0.10.0
colorama==0.4.6
contourpy==1.3.3
coverage==7.13.1
crds==12.0.4
cycler==0.12.1
docutils==0.22.4
drizzle==2.1.1
et-xmlfile==2.0.0
execnet==2.1.2
filelock==3.20.3
fonttools==4.61.1
future==1.0.0
gwcs @ git+https://github.com/spacetelescope/gwcs.git@18b010e82e9a6dcd6fe8833a3c7234eb49e62a09
idna==3.11
imageio==2.37.2
imagesize==1.4.1
importlib-metadata==4.11.4
iniconfig==2.3.0
jinja2==3.1.6
jmespath==1.0.1
jsonschema==4.8.0
jwst @ file:///home/runner/work/jwst/jwst/.tox/.tmp/package/1/jwst-1.21.0.dev152+g27d052a21.tar.gz
kiwisolver==1.4.9
lazy-loader==0.4
lxml==6.0.2
markupsafe==3.0.3
matplotlib==3.10.8
networkx==3.6.1
numpy==1.25.0
numpydoc==1.10.0
openpyxl==3.1.5
packaging==25.0
parsley==1.3
photutils==2.1.0
pillow==12.1.0
pluggy==1.6.0
pyarrow==22.0.0
pyerfa==2.0.1.5
pygments==2.19.2
pyparsing==3.0.0
pyrsistent==0.20.0
pysiaf==0.13.0
pytest==9.0.2
pytest-cov==7.0.0
pytest-doctestplus==1.7.0
pytest-xdist==3.0.2
python-dateutil==2.9.0.post0
pywavelets==1.9.0
pyyaml==6.0.3
readchar==4.2.1
requests==2.31.0
requests-mock==1.0.0
roman-numerals==4.1.0
scikit-image==0.21.0
scipy==1.14.1
semantic-version==2.10.0
shapely==2.1.2
six==1.17.0
snowballstemmer==3.0.1
spherical-geometry==1.3.0
sphinx==9.0.4
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
stcal @ git+https://github.com/spacetelescope/stcal.git@5aa263f6923db91c9db73df46aa2108a78c3039d
stdatamodels @ git+https://github.com/spacetelescope/stdatamodels.git@f1ab87335d22542b2f9d81286fc388d67bf647c3
stpipe @ git+https://github.com/spacetelescope/stpipe.git@7dba8a383ec42fdbaa695ed67d53e7f16649188c
stsci-imagestats==1.8.4
stsci-stimage==0.3.0
synphot==1.3.0
tifffile==2026.1.14
tweakwcs==0.8.8
urllib3==2.6.3
zipp==3.23.0

@zacharyburnett zacharyburnett self-assigned this Jan 16, 2026
@zacharyburnett zacharyburnett changed the title use uv to resolve oldestdeps use tox_uv lowest-direct to resolve -oldestdeps Jan 16, 2026
@zacharyburnett zacharyburnett changed the title use tox_uv lowest-direct to resolve -oldestdeps use tox_uv to resolve -oldestdeps with lowest-direct Jan 16, 2026
@codecov
Copy link

codecov bot commented Jan 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.33%. Comparing base (bbf1e5f) to head (6a54568).
⚠️ Report is 79 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10154      +/-   ##
==========================================
- Coverage   85.98%   85.33%   -0.65%     
==========================================
  Files         368      370       +2     
  Lines       38457    39132     +675     
==========================================
+ Hits        33066    33395     +329     
- Misses       5391     5737     +346     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@zacharyburnett zacharyburnett force-pushed the use_uv branch 2 times, most recently from 1a9ae2d to 679b196 Compare January 16, 2026 20:42
@github-actions github-actions bot added the automation Continuous Integration (CI) and testing automation tools label Jan 16, 2026
@zacharyburnett
Copy link
Collaborator Author

py311-oldestdeps fails with an error:

_ ERROR collecting .tox/py311-oldestdeps/lib/python3.11/site-packages/jwst/tso_photometry/tso_photometry_step.py _
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/jwst/tso_photometry/tso_photometry_step.py:9: in <module>
    from jwst.tso_photometry.tso_photometry import (
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/jwst/tso_photometry/tso_photometry.py:11: in <module>
    from photutils.psf import GaussianPRF, PSFPhotometry
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/photutils/psf/__init__.py:10: in <module>
    from .gridded_models import *  # noqa: F401, F403
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/photutils/psf/gridded_models.py:19: in <module>
    from photutils.psf.model_plotting import ModelGridPlotMixin
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/photutils/psf/model_plotting.py:9: in <module>
    from astropy.visualization import simple_norm
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/astropy/visualization/__init__.py:6: in <module>
    from .mpl_normalize import *
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/astropy/visualization/mpl_normalize.py:31: in <module>
    from matplotlib import pyplot as plt
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/matplotlib/__init__.py:1001: in <module>
    cbook._get_data_path("matplotlibrc"),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../.tox/py311-oldestdeps/lib/python3.11/site-packages/matplotlib/cbook.py:603: in _get_data_path
    return Path(matplotlib.get_data_path(), *args)
                ^^^^^^^^^^^^^^^^^^^^^^^^
E   AttributeError: module 'matplotlib' has no attribute 'get_data_path'

version differences between py311-oldestdeps and py311:

1,3c1,2
< alabaster==0.7.16
< asdf==4.2.0
< asdf-astropy==0.8.0
---
> asdf==5.1.0
> asdf-astropy==0.9.0
8c7
< astropy==6.1.0
---
> astropy==7.2.0
12,13c11
< babel==2.17.0
< bayesicfitting==3.2.3
---
> bayesicfitting==3.2.5
19c17
< crds==12.0.4
---
> crds==13.1.1
21d18
< docutils==0.21.2
30,31c27
< imagesize==1.4.1
< importlib-metadata==4.11.4
---
> importlib-metadata==8.7.1
33d28
< jinja2==3.1.6
35,36c30,32
< jsonschema==4.8.0
< jwst @ file:///Users/zburnett/projects/jwst/.tox/.tmp/package/42/jwst-1.21.0.dev152+g6f468ba78.tar.gz
---
> jsonschema==4.26.0
> jsonschema-specifications==2025.9.1
> jwst @ file:///Users/zburnett/projects/jwst/.tox/.tmp/package/43/jwst-1.21.0.dev152+g6f468ba78.d20260120.tar.gz
40d35
< markupsafe==3.0.3
43,44c38
< numpy==1.25.0
< numpydoc==1.10.0
---
> numpy==2.4.1
46c40
< packaging==22.0
---
> packaging==25.0
48c42
< photutils==2.1.0
---
> photutils==2.3.0
54,57c48,50
< pyparsing==3.0.0
< pyrsistent==0.20.0
< pysiaf==0.13.0
< pytest==9.0.0
---
> pyparsing==3.3.1
> pysiaf==0.25.0
> pytest==9.0.2
60d52
< pywavelets==1.9.0
63,66c55,60
< requests==2.31.0
< requests-mock==1.0.0
< scikit-image==0.21.0
< scipy==1.14.1
---
> referencing==0.37.0
> requests==2.32.5
> requests-mock==1.12.1
> rpds-py==0.30.0
> scikit-image==0.26.0
> scipy==1.17.0
70,78c64
< snowballstemmer==3.0.1
< spherical-geometry==1.3.0
< sphinx==7.3.7
< sphinxcontrib-applehelp==2.0.0
< sphinxcontrib-devhelp==2.0.0
< sphinxcontrib-htmlhelp==2.1.0
< sphinxcontrib-jsmath==1.0.1
< sphinxcontrib-qthelp==2.0.0
< sphinxcontrib-serializinghtml==2.0.0
---
> spherical-geometry==1.3.3
84c70
< synphot==1.3.0
---
> synphot==1.6.1
86c72,73
< tweakwcs==0.8.8
---
> tweakwcs==0.8.12
> typing-extensions==4.15.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation Continuous Integration (CI) and testing automation tools installation no-changelog-entry-needed testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant