For "pip install numpy", a new numpy release should fix the issue.

The issue was already fixed in packaging 20.8:

* 
https://github.com/pypa/packaging/commit/611982be44d7d91453a97082f58d8ea349f89d00
* https://github.com/pypa/packaging/pull/355

The fix is already included in  wheel 0.36.2 (which includes a
vendored copy of packaging):

* https://github.com/pypa/wheel/commit/f6fd2472c7a4a836a3ebe12eab96a1ed8a31c061

And numpy pyproject.toml was updated to use wheel 0.36.2 which contains the fix:

* https://github.com/numpy/numpy/commit/9569f40917c80b9506f0969b1e89e2fc119d4ae3

The pyproject.toml fix is not part of 1.20.3:
https://github.com/numpy/numpy/blob/v1.20.3/pyproject.toml

--

I didn't even know that it was possible to require a specific wheel
version in pyproject.toml to build a binary wheel package in pip!

Current pyproject.toml:
https://github.com/numpy/numpy/blob/main/pyproject.toml

[build-system]
# Minimum requirements for the build system to execute.
requires = [
"packaging==20.5; platform_machine=='arm64'", # macos M1
"setuptools<49.2.0",
"wheel==0.36.2",
"Cython>=0.29.21,<3.0", # Note: keep in sync with tools/cythonize.py
]

Victor

On Fri, Jun 11, 2021 at 4:30 PM Victor Stinner <vstin...@python.org> wrote:
>
> Hi,
>
> On Wed, May 26, 2021 at 2:05 AM Neil Schemenauer <nas-pyt...@arctrix.com> 
> wrote:
> > - Cython doesn't work because of _PyGen_Send change [1]
>
> My team fixed the Python 3.10 compatibility in the Cython 0.29.x
> branch, but the latest 0.29.x release (0.29.23, April 14, 2021)
> doesn't include these fixes yet. A new Cython release is needed. I'm
> not sure how to help Cython to release a new version.
>
> In Fedora, we have downstream patches until a new Cython is released:
> https://src.fedoraproject.org/rpms/Cython/pull-request/28
>
>
> > - numpy cannot be installed because of _Py_HashDouble() change [2]
>
> "pip install numpy" also fails with an error about "incompatible tag".
> It's an issue in packaging which is vendored in wheel which is used
> (as a vendored copy?) by pip to build a local wheel package of numpy.
> numpy doesn't ship wheel packages for Python 3.10 beta releases which
> is a good idea, the ABI is not stable yet.
>
>
> > Can we do any things to improve the situation?  Perhaps using the
> > pre-release functionality of PyPI would help.  We would have to
> > somehow encourage 3rd party packages to upload pre-releases that are
> > compatible with our beta/RC releases.
>
> In Fedora, we use a "COPR build": we partially rebuild the OS with
> Python 3.10, and then we check for package build failures. We are
> working on switching to Python 3.10 by default:
>
> * https://fedoraproject.org/wiki/Changes/Python3.10
> * https://bugzilla.redhat.com/show_bug.cgi?id=1890881
>
> For example, my colleague Lumir submitted the trio bug report ;-)
> https://github.com/python-trio/trio/issues/1899
>
> We are doing our best to report issues to projects. Sometimes we help
> to fix them, but we cannot fix all compatibility issues!
>
> In the past, I tried to work on a small Python script to run the test
> suite of some projects with the main branch of Python. I had practical
> issues:
>
> * There is no simple way to get install test dependencies of a Python
> project, especially non-Python dependencies.
> * When a dependency was not compatible with the next Python, I had to
> maintain a patch until my fix is accepted upstream.
> * Sometimes, I had to pull the code from Git rather than using a
> tarball/ZIP (to not have to wait for a new release).
>
> At the end, all these practical issues need solutions which look very
> closely to a recipe to build a package for a Linux distribution:
>
> * Recipe to pull the source.
> * Recipe to pull build dependencies.
> * Downstream patches (until a fix is merged upstream).
> * Recipe to run tests: we try to always run tests when we build a
> package in Fedora.
>
> Advantages of using Fedora COPR:
>
> * Reuse Fedora infrastructure (building packages need physical servers
> to build packages and run tests)
> * Reuse the public Fedora bug tracker to coordinate the work.
> * Reuse Fedora "specfiles" (recipe to build a RPM package).
> * Prepare Fedora to be updated to the next Python.
>
> Sadly, Fedora COPR might be a little bit too Fedora specific: require
> to understand specfiles, how to submit a PR on a specfile, use the
> Fedora bug tracker, etc.
>
> Fedora Rawhide was just updated to switch Python 3.10 by default!
> /usr/bin/python3 is now Python 3.10 beta2. In COPR we could skip tests
> to build dependencies and discover more compatibiliy issues. In
> Rawhide, tests cannot be skipped and so some packages cannot be built
> yet. For example, astropy has a few failing tests:
> https://github.com/astropy/astropy/issues/11821
>
> Again, the practical problem is that numpy cannot easily be installed
> on Python 3.10 (pip compatibiltiy tag issue), and so astropy may wait
> until Python 3.10 final is released to look into these tests failures.
>
> Victor
> --
> Night gathers, and now my watch begins. It shall not end until my death.



-- 
Night gathers, and now my watch begins. It shall not end until my death.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/MKVKZNQFWKKHTECAKDMRUT4KJGEC34SR/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to