Skip to content

Drop Python 3.11 and raise dependency minimums - #942

Open
nabobalis wants to merge 1 commit into
sunpy:mainfrom
nabobalis:ci
Open

nabobalis wants to merge 1 commit into
sunpy:mainfrom
nabobalis:ci

Conversation

@nabobalis

@nabobalis nabobalis commented Jun 11, 2026 •

Copy link
Copy Markdown
Member

PR Description

This drops Python 3.11 and raises the minimum dependency versions for 2.5, in line with sunpy:

  • Python >= 3.12. This updates tox, CI, ruff, the RTD environment and cruft. oldestdeps now runs on 3.12 and the Windows job on 3.13. SPEC 0 drops 3.12 in October, so we might revisit this at release time.
  • astropy >= 7.0.0
  • matplotlib >= 3.10.0
  • dask >= 2024.6.0 and specutils >= 1.16.0 (tests-optional)
  • numpy stays at >= 1.26 and scipy doesn't change.

Cleanups:

  • Removes the "numpy 1" repr in test_resampled_wcs.py. The difference really comes from astropy < 6.1.3. With numpy 1.26 and astropy >= 7, the version gate picks the wrong string and oldestdeps fails.
  • Removes the astropy < 7 branch in test_compound_wcs.py.
  • Removes a stale numpy 2 TODO in utils/cube.py. The code was already changed to np.prod.
  • Deletes the unused pre-cruft .sunpy-template.yml.
  • Points the gilesbot figure report URLs at the py314 jobs that CircleCI actually runs.

Closes #731

AI Assistance Disclosure

AI tools were used for:

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding
  • No AI tools were used

Regardless of AI use, the human contributor remains fully responsible for correctness, design choices, licensing compatibility, and long-term maintainability.

K

@nabobalis nabobalis changed the title CI patch for has_celestial CI patchs Jun 11, 2026
@nabobalis
nabobalis force-pushed the ci branch 2 times, most recently from 3cf9eea to 1001ecb Compare June 11, 2026 22:22
@nabobalis nabobalis changed the title CI patchs CI patches Jun 11, 2026
@Cadair

Cadair commented Jun 12, 2026

Copy link
Copy Markdown
Member

Thanks. I think I'll sit on this until we are closer to 2.5 to make backports a bit easier.

We are keeping numpy at 1.26 (over all the sunpy packages) until it causes us trouble just for people who might still be stuck.

@Cadair Cadair added this to the 2.5.0 milestone Aug 26, 2026
@Cadair Cadair changed the title CI patches Drop Python 3.11 and updgrade dep Sep 3, 2026
Require Python 3.12, astropy 7.0 and matplotlib 3.10, in line with
sunpy. numpy stays at 1.26, which is the sunpy-wide policy. The dask
and specutils test floors also go up.

Move tox, CI, ruff, the RTD environment and the cruft template variable
to 3.12. oldestdeps now runs on 3.12 and the Windows job on 3.13.

With astropy >= 7, the "numpy 1" repr in test_resampled_wcs.py (really
an astropy < 6.1.3 artefact) and the astropy < 7 branch in
test_compound_wcs.py are dead. The former would also fail oldestdeps
with numpy 1.26. Remove both, plus a stale numpy 2 TODO in
utils/cube.py.

Also delete the unused pre-cruft .sunpy-template.yml and point the
gilesbot figure report URLs at the py314 jobs that CircleCI runs.
@nabobalis nabobalis changed the title Drop Python 3.11 and updgrade dep Drop Python 3.11 and raise dependency minimums Sep 27, 2026
@nabobalis

Copy link
Copy Markdown
Member Author

I squashed this into one commit on top of main. Since the last version, numpy stays at 1.26 as you said. astropy is 7.0.0 instead of 7.0.2, and scipy and the tests-only/docs extras are back to what main has. I also dropped the global pyparsing filter in pytest.ini and kept the existing oldestdeps pin. Keeping numpy 1.26 with astropy 7 made the numpy 1 repr gate in test_resampled_wcs.py pick the wrong string, so I removed that too.

This branch has not been deployed

No deployments
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.

Things to remove when we depend on numpy 2.0 or astropy 6.1.2

2 participants