Build CPython 3.14 wheels#1802
Build CPython 3.14 wheels#1802dvarrazzo merged 2 commits intopsycopg:masterfrom edgarrmondragon:cp314-wheels
Conversation
|
The errors here are also occurring on master |
tests/test_ipaddress.py
Outdated
| if ( | ||
| sys.version_info >= (3, 13) | ||
| or ( | ||
| sys.version_info < (3, 12) | ||
| and ( | ||
| sys.version_info >= (3, 11, 13) | ||
| or sys.version_info >= (3, 10, 18) | ||
| or sys.version_info >= (3, 9, 23) | ||
| ) | ||
| ) | ||
| ): |
There was a problem hiding this comment.
Happy to consider alternatives, cause this is gross
There was a problem hiding this comment.
Lol it is... Can you explain what it is for? 😄
There was a problem hiding this comment.
So I think this is the followup to
- 3b9aa7c (upstream Improve the textual representation of IPv4-mapped IPv6 addresses python/cpython#87799)
which was backported to 3.9 - 3.12 in June (python/cpython#29345 (comment)) and affected patch releases
- 3.9.23
- 3.10.18
- 3.11.13
- 3.12.11
For some reason, 3.12.11 retains the old textual representation, thus this ugly conditional.
There was a problem hiding this comment.
Although I can't reproduce this locally:
for PYVER in 3.9.22 3.9.23 3.10.17 3.10.18 3.11.12 3.11.13 3.12.10 3.12.11 3.13.7
do
uv run -p "${PYVER}" python -c 'import sys, ipaddress; print("%d.%d.%d" % sys.version_info[:3], str(ipaddress.ip_interface("::ffff:102:300/128")))'
donegives me
3.9.22 ::ffff:102:300/128
3.9.23 ::ffff:1.2.3.0/128
3.10.17 ::ffff:102:300/128
3.10.18 ::ffff:1.2.3.0/128
3.11.12 ::ffff:102:300/128
3.11.13 ::ffff:1.2.3.0/128
3.12.10 ::ffff:102:300/128
3.12.11 ::ffff:1.2.3.0/128
3.13.7 ::ffff:1.2.3.0/128
There was a problem hiding this comment.
Ok, so see 2748a84.
I think the workflow is using some Python 3.12 earlier than 3.12.11. actions/setup-python is correctly installing 3.12.11 so my suspicion is that Tox is resolving to the default Python in the Ubuntu 24.04 runner.
There was a problem hiding this comment.
Let's just make a condition based on what we can observe in Python behaviour:
if str(ipaddress.ip_interface("::ffff:102:300/128")) == "::ffff:1.2.3.0/128":
... # new style
elif str(ipaddress.ip_interface("::ffff:102:300/128")) == "::ffff:102:300/128":
... # old style
else:
assert False, "unexpected"There was a problem hiding this comment.
Done!
There was a problem hiding this comment.
I have cherry-picked this changeset already on master in order to clear the CI status, so it won't appear in this MR anymore, but it's already committed (236c52b) and the attribution retained, thank you!
CI on master is now fixed so this branch will be merged too soon.
|
Python 3.14 was released yesterday 🎉 Is this ready to merge? |
|
The build CI job is pretty broken. Trying to fix it. |
| @@ -66,7 +66,7 @@ jobs: | |||
| matrix: | |||
There was a problem hiding this comment.
a thought here, these updates feel like they are important enough to include in the release notes. the updates are to support building for py3.14 but could (and do) change the build output for older versions of python (and operating systems) that are still supported.
Python 3.14 is scheduled to be released next week.