-
Notifications
You must be signed in to change notification settings - Fork 42
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
Improve Python 3.12 compatibility #389
Conversation
@achimnol I think it's the RTD requirement that is not yet compatible with merge queues: https://github.com/orgs/aio-libs/discussions/27#discussioncomment-7395467. We may have to drop it from the required checks. Could you +1 this request? readthedocs/readthedocs.org#10021 |
Just added a |
After this, I'm going to update |
Ah... RTD is blocking the merge queue.... 😞 |
Ummm... the test failure turned out to be a new regression introduced in Python 3.11.7 as GitHub Action began to use it. In my local setup, the test passes with Python 3.11.6 and breaks with Python 3.11.7...... T_T |
Currently blocked by vxgmichel/aioconsole#114 |
Towncrier's default fragment types do not use "fix". ref) https://github.com/twisted/towncrier/blob/23.11.0/src/towncrier/_settings/fragment_types.py
What do these changes do?
It improves Python 3.12 compatibility.
This PR relaxes our direct dependency to aiohttp to allow 3.9 and higher, by changing the requirement expression from
~=3.8.5
to>=3.8.5
, while pinning its version to 3.9.1 inrequirements-dev.txt
used for local development and CI/CD tests. It also pins the uvloop version to 0.19.0 in the same way.aiohttp>=3.8.5
aiohttp==3.9.1
uvloop>=0.17.0
uvloop==0.19.0
aioconsole>=0.7.0
aioconsole==0.7.0
aiomonitor is a library that can be used various combinations of Python and aiohttp versions. The new aiohttp 3.9 release is required to run on Python 3.12, and there is no critical need to hold the aiohttp version back to the 3.8.x series to serve our webui.
In general, it is better to set the minimum compatible versions on our dependencies to maximize the dependency compatibility unless there are known critical regressions on specific versions.
This PR also sets the minimum required version of aioconsole to 0.7.0, to avoid the incompatibility issue with Python 3.11.7+ and 3.12.1+ (vxgmichel/aioconsole#114).
Are there changes in behavior for the user?
No.
Checklist
CHANGES
folder<issue_id>.<type>
(e.g.588.bugfix
)issue_id
change it to the pr id after creating the PR.feature
: Signifying a new feature..bugfix
: Signifying a bug fix..doc
: Signifying a documentation improvement..removal
: Signifying a deprecation or removal of public API..misc
: A ticket has been closed, but it is not of interest to users.Fix issue with non-ascii contents in doctest text files.