Skip to content

DEP: drop support for Python 3.10#16903

Merged
pllim merged 8 commits intoastropy:mainfrom
neutrinoceros:dep/drop_cp310
Sep 5, 2024
Merged

DEP: drop support for Python 3.10#16903
pllim merged 8 commits intoastropy:mainfrom
neutrinoceros:dep/drop_cp310

Conversation

@neutrinoceros
Copy link
Copy Markdown
Contributor

@neutrinoceros neutrinoceros commented Aug 29, 2024

Description

I initially just wanted to measure the diff of doing this but ended up doing all (?) the work needed, so might as well open a draft PR.

This would enable:

FAQ

Q: When is this going to be released?
A: End of 2024. Please see https://github.com/astropy/astropy/wiki/Release-Calendar

Q: Why so soon? Python 3.10 EOL is not till Oct 2026.
A: This is due to https://github.com/astropy/astropy-APEs/blob/main/APE18.rst that follows https://scientific-python.org/specs/spec-0000/ that recommends, "Support for Python versions be dropped 3 years after their initial release."

Subpackage approvals

  • cosmology (nstarman)
  • io.fits (pllim)
  • modeling (nden)
  • time (talcroft)
  • units (mhvk, nstarman)
  • utils.iers (mhvk)
  • utils (mhvk)

After merge

Repo admin needs to update branch protection rules for main.

  • By checking this box, the PR author has requested that maintainers do NOT use the "Squash and Merge" button. Maintainers should respect this when possible; however, the final decision is at the discretion of the maintainer that merges the PR.

@github-actions
Copy link
Copy Markdown
Contributor

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.

  • Do the proposed changes actually accomplish desired goals?
  • Do the proposed changes follow the Astropy coding guidelines?
  • Are tests added/updated as required? If so, do they follow the Astropy testing guidelines?
  • Are docs added/updated as required? If so, do they follow the Astropy documentation guidelines?
  • Is rebase and/or squash necessary? If so, please provide the author with appropriate instructions. Also see instructions for rebase and squash.
  • Did the CI pass? If no, are the failures related? If you need to run daily and weekly cron jobs as part of the PR, please apply the "Extra CI" label. Codestyle issues can be fixed by the bot.
  • Is a change log needed? If yes, did the change log check pass? If no, add the "no-changelog-entry-needed" label. If this is a manual backport, use the "skip-changelog-checks" label unless special changelog handling is necessary.
  • Is this a big PR that makes a "What's new?" entry worthwhile and if so, is (1) a "what's new" entry included in this PR and (2) the "whatsnew-needed" label applied?
  • At the time of adding the milestone, if the milestone set requires a backport to release branch(es), apply the appropriate "backport-X.Y.x" label(s) before merge.

@github-actions
Copy link
Copy Markdown
Contributor

👋 Thank you for your draft pull request! Do you know that you can use [ci skip] or [skip ci] in your commit messages to skip running continuous integration tests until you are ready?

Copy link
Copy Markdown
Contributor

@mhvk mhvk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks all good to me! Approving though second set of eyes on the CI changes would be very helpful.

@neutrinoceros
Copy link
Copy Markdown
Contributor Author

I also revived changes from #16680 (re: #16680 (comment))

@mhvk
Copy link
Copy Markdown
Contributor

mhvk commented Aug 29, 2024

One more thing: I just checked and you ended up removing all actual usage of typing_extensions - maybe a reason to drop it as a dependency? Though since it is in the special typing category, no strong incentive to do so.

@neutrinoceros
Copy link
Copy Markdown
Contributor Author

Good point, let's clean that up while we're at it. I'll keep the typing extra target though, we never know when we'll need it again and it doesn't hurt if it's empty for some time.

@neutrinoceros
Copy link
Copy Markdown
Contributor Author

might as well undraft this now

@neutrinoceros neutrinoceros marked this pull request as ready for review August 29, 2024 13:47
@neutrinoceros neutrinoceros requested review from a team, saimn and taldcroft as code owners August 29, 2024 13:47
@neutrinoceros neutrinoceros requested a review from nstarman August 29, 2024 13:47
@pllim pllim added the zzz 💤 Python3.10 archived: Python 3.10 is no longer supported label Aug 29, 2024
@pllim
Copy link
Copy Markdown
Member

pllim commented Sep 5, 2024

Oh no, another conflict. Can you please rebase again? Thanks!

neutrinoceros and others added 7 commits September 5, 2024 16:20
and sync oldestdeps pins. Also remove other mentions of very old Python versions.
Remove ignoring warning in pytest that no longer needs to be ignored.
No longer need to specific numpy 2.0.0rc in pins now that stable is out.

DOC: Clarify change log a bit more.
that is not needed since Python 3.4.

Co-authored-by: Marten van Kerkwijk <mhvk@astro.utoronto.ca>
@neutrinoceros
Copy link
Copy Markdown
Contributor Author

rebased ! (I think it's time we merge this)

@pllim
Copy link
Copy Markdown
Member

pllim commented Sep 5, 2024

Re: oldestdeps + alldeps

Looks like it came from #12522 (comment) by @saimn . It was a while ago when we do not have so many "optional" dependencies and that PR was to simplify jobs, so this combo was not necessarily to fix some specific problem we had per se. So we can definitely rethink it. See #16950

@@ -0,0 +1 @@
Updated minimum supported Python version to 3.11. As a result, minimum required versions for ``ipython``, ``packaging``, ``pyarrow``, PyYAML, and ``scipy`` were updated as well to be compatible, while ``tomli`` and ``typing_extensions`` are no longer needed.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a user I would like optional and mandatory dependencies to be distinguished (we don't need to go into any details beyond that).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@eerovaher , any suggested wordings? I think everything I added are "optional".

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tomli and typing_extensions were only needed for development, so they should not have been mentioned in the change log at all.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I plan to follow up on this. Thanks !

@pllim
Copy link
Copy Markdown
Member

pllim commented Sep 5, 2024

aarch64 failure unrelated and the daily cron with remote data timeout also unrelated. I am going to modify the change log for Eero the best I can and then merge this before poor Clément have to rebase again.

@pllim pllim merged commit e581eab into astropy:main Sep 5, 2024
@pllim
Copy link
Copy Markdown
Member

pllim commented Sep 5, 2024

I updated main branch protection rules. Please let me know if anything is amiss after a rebase of any open PR. Thanks, all!

@neutrinoceros
Copy link
Copy Markdown
Contributor Author

Thanks @pllim for all your help !

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

Labels

Build all wheels Run all the wheel builds rather than just a selection cosmology Docs Extra CI Run cron CI as part of PR installation io.fits modeling Release testing time units utils.iers utils zzz 💤 Python3.10 archived: Python 3.10 is no longer supported

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Request: drop python 3.10 support now (since it will not be needed for 7.0)

8 participants