google / brotli

Brotli compression format
MIT License
13.54k stars 1.24k forks source link

Add 3.11 wheels #984

Closed alexprengere closed 1 year ago

alexprengere commented 2 years ago

As Python3.11 will be released later today, it would be truly great of 3.11 wheels could be added to the latest release.

sans-c commented 2 years ago

Yep, right now brotli installation fails with Python 3.11 and pip with default options.

mhils commented 2 years ago

It would be incredibly useful to provide abi3 wheels, which makes sure that no additional work is needed to support future Python releases: https://cibuildwheel.readthedocs.io/en/stable/faq/#abi3

fenchu commented 1 year ago

Wheel installation will fix this deprecation on 3.11/pip23.1:

DEPRECATION: brotli is being installed using the legacy 'setup.py install' method, 
because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 
will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. 
Discussion can be found at https://github.com/pypa/pip/issues/8559

https://github.com/pypa/pip/issues/8559

cherinyy commented 1 year ago

DEPRECATION: brotli is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed.

987

anthrotype commented 1 year ago

incredibly useful to provide abi3 wheels

indeed, but last time I tried this a couple years ago abi3 wheels would only work for linux or macos, but not for windows. I don't know if anything changed since then, would be worth retrying.

anthrotype commented 1 year ago

note the brotli's wheels are built from this other repo https://github.com/google/brotli-wheels it's probably just a matter of adding 3.11 to the build matrix and cibuildwheel should do the rest. I'll take a look

mhils commented 1 year ago

Anecdata: We've successfully shipped abi3 wheels for Windows, Linux and macOS about a month ago. It looks like everything works pretty flawlessly nowadays. 🙌

Here's an example conversion for aioquic I did a week ago: https://github.com/aiortc/aioquic/compare/main...mhils:aioquic:abi3 (CI: https://github.com/mhils/aioquic/actions/runs/3406468326)

alexprengere commented 1 year ago

I think this was closed by mistake @eustas.

987 only fixes an issue reported as a comment here, not the original issue of the missing wheels (see here), which would need https://github.com/google/brotli-wheels/pull/15.

eustas commented 1 year ago

Agree. That was auto-close because of "fix #xxx" in description

anthrotype commented 1 year ago

I built the python 3.11 wheels in https://github.com/google/brotli-wheels/pull/15 and can upload them manually using twine to PyPI, like I did for 3.10 wheels a year ago. If @eustas cuts a new Brotli release, I can also update brotli-wheels repository to point to the latest git tag and new wheels can be built. Last tag was 2 years ago.

anthrotype commented 1 year ago

Regarding abi3 wheels I suggest you file a separate issue. I can't work on it right now, but found this interesting article https://blog.trailofbits.com/2022/11/15/python-wheels-abi-abi3audit/

anthrotype commented 1 year ago

I just uploaded the wheels for CPython 3.11 for linux, mac and windows at https://pypi.org/project/Brotli/1.0.9/#files so this can be closed

alexprengere commented 1 year ago

I confirm the wheels are up there, thanks!