-
-
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
Add Python 3.12 support #2516
Add Python 3.12 support #2516
Conversation
|
Rebasing this to fix the merge conflict from #2520 will be the perfect excuse to make GHA retest after aiohttp gets its Python 3.12 ducks lined up. Which should be any day now… right? (Lots of recent activity on aio-libs/aiohttp#7675 about some shutdown-timeout bug that seems to be holding back a stable release.) |
The story upstream in |
In the interest of helping this along, I chose #2523 as one of today's merges. Based on local testing yesterday, installing and running on Python 3.12 appeared to be fine with that branch merged into this one. We're left with a bunch of deprecation warnings emitted in While I didn't test the * — Passed with my manually-upgraded |
Nothing more to say than "yes, good!" to your last comment @dgw:
|
Versions of setuptools before 66.1 used deprecated portions of `pkgutil` that were removed in Python 3.12. More information: pypa/setuptools#3631 https://setuptools.pypa.io/en/latest/history.html#v66-1-0
This bump to `pytest` is primarily to eliminate some deprecation warnings from inside of `pytest` itself, but note that this relaxes our dependency to 2 release fields instead of 3, meaning that we will automatically get 'minor' upgrades to `pytest` (up to 8.0 exclusive) As of `pytest` 7.2.0, `py` is no longer in our dependency graph, so we should not refer to this older and sorta-deprecated library, especially when invoking `pytest`.
bf01a50
to
a4b36fb
Compare
With closure of #2523, this PR is now as final as I forsee it being. The only outstanding issue is checking on plugins external to core, but I think even if there are issues there, those will be issues with those plugins and won't affect the contents of this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like you even caught all of the py.test
references everywhere. Well done!
Can confirm Sopel installs ( |
Description
This changeset adds Python 3.12 support to Sopel, which mostly means some chore updating of version lists. The most notable change is the adjustment of the pinned version of
setuptools
to avoid a known incompatibility with 3.12.At one point it looked likeEdit: nope,aiohttp
would be a blocker for this support (as they still have no issued a new release with a compat bugfix 😬), but the problem disappeared between the last check of a Python 3.12 RC against Sopel and the official release. 🤷aiohttp
is indeed a problem (failure in CI associated with the known upstream bug), so we will be waiting for them to do a new release after all. We can workaround the build failure byAIOHTTP_NO_EXTENSIONS=1
in the environment, but there isn't a compelling reason to do this in CI, we can just wait on upstream to do a release. See related issue, hopefully that will happen in the next week or so.Edit: since the closure of #2523, the above no longer blocks this PR. Users who want both Python 3.12 and
sopel-iplookup
will be stuck waiting onaiohttp
, but they can add--pre
to their install command or set the above environment variable to get around it.Closes #2457
Checklist
make qa
(runsmake lint
andmake test
)1323 passed, 8 xfailed, 591 warnings in 57.03s
Supplemental checklist (from #2457)
pyproject.toml
[ ] Check on 3.12 support concerns for official non-core pluginsNAK, not this PR's problem — @dgw