GrahamDumpleton / wrapt

A Python module for decorators, wrappers and monkey patching.
BSD 2-Clause "Simplified" License
2.03k stars 231 forks source link

Release 1.14.1 Py3.11 wheels #248

Closed joeyearsley closed 10 months ago

joeyearsley commented 11 months ago

Tensorflow has a restriction that wrapt be below 1.15. I’ve made an MR to change that in their code but it won’t alter any prior releases.

Would it be possible to release 1.14.1 py3.11 wheels onto pypi?

If you’d like a contribution would this be as simple as making a separate branch from the 1.14.1 release and updating the workflow to add py3.11?

GrahamDumpleton commented 11 months ago

I would be careful about changing Tensorflow. They pinned the version of wrapt because they had code, or relied on a package with code which had a dependency on what was technically a bug in wrapt where it propagated something with incorrect exception type. When the bug in wrapt was fixed, this caused issues with that code Tensorflow had as it wasn't dealing correctly with what was the correct exception which would be passed back if wrapt was preserving normal Python convention. Thus Tensorflow or the package it depended on was passing back an exception it should have caught and dealt with.

That said, releasing both Python 3.11 and 3.12 wheels for wrapt 1.14.1 will not be straight forward as since then GitHub actions dropped support for Python 2.7 runners. I therefore can't just create a new 1.14.2 with actions to also build for Python 3.11 and 3.12 and follow the same release process as will not be able to recreate Python 2.7 wheels for a new 1.14.2, and since 1.4.X guarantees Python 2.7 support that would be a problem.

What I can probably do is create a 1.14.x branch in GitHub off 1.14.1, drop Python 2.7 and any other versions now not supported by GitHub actions and trigger a manual GitHub actions build using exact same code as 1.14.1. This will generate the wheel files with a version for 1.14.1 still and I can upload just those wheels against the old 1.14.1 release.

GrahamDumpleton commented 11 months ago

You might be able to track through things in https://github.com/GrahamDumpleton/wrapt/issues/231 to see if Tensorflow package, or package it depended on, was changed such that one can use newer wrapt version.

GrahamDumpleton commented 11 months ago

Can you try 1.14.1 again now with Python 3.11.

It will not be possible to release Python 3.12 wheels for 1.14.1 as is, as the code in that version is not compatible with Python 3.12.

GrahamDumpleton commented 11 months ago

Actually, it is the test harnesses in wrapt 1.14.1 which cause an issue with Python 3.12. So I can't verify it will work due to the test failures without fixing various test harnesses. :-(

joeyearsley commented 11 months ago

Thank you, this works for me with Py3.11

I'm happy to close this issue unless you want to keep it open for Py3.12?

GrahamDumpleton commented 11 months ago

I'll keep it open until I confirm how much effort there might be to get that old version tested on Python 3.12.

GrahamDumpleton commented 10 months ago

Going to close this now. Will look at issue of doing retrospective changes to support Python 3.12 in version 1.14.1 only if someone asks specifically for that.