-
-
Notifications
You must be signed in to change notification settings - Fork 402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Official support for Python 3.12 #2457
Comments
Just a note here: there are feature we use in Py3.7 that are deprecated in Py3.9, Py3.10, or Py3.11, and may be removed in version as early as Py3.10 and Py3.11. So I'm pretty sure it'll be quite hard to support such a big range of Python version. I believe it will be more reasonable to drop anything below Py3.9 to support Py3.12. |
3.7 reaches its EOL in the next month, so that one is basically free. If we can continue to support 3.8, that would be nice to our downstream, although I don't know what similar issues there might be for that version. |
This PR is probably a better thing to track for the upstream blockage from This issue is still blocked, but it sounds like 3.12 support might be in the next release if things go well. |
The entire Sopel test suite passes on 3.12.0rc1 with a bit of hand-holding.
Recipe to get a Sopel install on this version:
So things are a looking good for adding Python 3.12 support, we're just waiting for new upstream releases from |
@SnoopJ this is nice! Thank you very much for that! ❤️ |
"The time has come," the walrus said, "to test on three-point-twelve!" Translation: Python 3.12 went stable today. Blame @xnaas for reminding me, else this ticket would've stayed silent. However, the actions/python-versions run that was supposed to generate 3.12 failed with errors, so the stable release won't be available through GHA for some unspecified amount of time until the build is fixed. We probably need to wait on upstream dependencies to fix some number of incompatibilities with the new version anyway before we can officially declare support, anyway. Once GHA gets 3.12 up, we can look into the packages @SnoopJ investigated that were awaiting a 3.12-compatible release as of late August. |
If I understand right, the thing that failed was the MacOS build specifically? I'm not sure if this failure means that the action we need from GHA isn't available at all or not, that's beyond my ken. I installed 3.12.0 and to my surprise, we seem to have no upstream blockage. I have no idea what changed with I'll start a branch later this week for that change, the metadata churn, and whatever needs to be done for CI, but things look pretty promising from a quick check. |
Is this realistically something that even belongs in the core issue tracker? Presumably only plugins that have dependencies beyond Sopel itself might be affected. The only one we know of for sure is Everything else, if it doesn't have an 8.0-tested release yet (i.e. still requires I guess when one of us is bored, we can pick a plugin from the org's repo list and run down a checklist ensuring things like: the plugin 1) is in entrypoint style, 2) works against latest 8.0.0.dev0, and 3) is installable/functional with both py3.8 and py3.12. A ton of the older ones still need converting to entrypoint with |
Nah, I don't think we should track that in core, for most plugin except the sopel-help plugin, which is kind of a big deal. However, I'm pretty sure sopel-help shouldn't have a problem, as long as requests works fine. |
Requested Feature
Python 3.12 has entered beta, so it's a good time to start thinking about Sopel on that version.
dev-requirements.txt
was blocked by lack of support ingreenlet
, but a PR has since been merged with a fix for this, presumably the next release will include that fix.setuptools
, I see the following error withsetuptools == 67.8.0
but pinningsetuptools < 67
inbuild-system.requires
resolves it.aiohttp
(fixed on develop, should be included in 3.9) and infrozenlist
(released in 1.4.0)python-versions
Action is capable of providing the 3.12.0b1 pre-release, so we could run against the beta version(s) before the official release (scheduled for 2 October 2023).pyproject.toml
(done in Add Python 3.12 support #2516)[ ] Check on 3.12 support concerns for official non-core pluginsNot core's problem — @dgwThe text was updated successfully, but these errors were encountered: