Wednesday, August 28, 2024

Re: numpy 1.26.4 (python 3.12 and cython 3 support)

On 2024/08/27 20:39, Daniel Dickman wrote:
> > Results from building and "make test" on other archs (especially
> > sparc64) are easier and would be useful.
>
> That's definitely a useful minimum, but the thing that worries me is
> runtime breakage that wouldn't be detected at build time of numpy (or
> direct deps). In 2018 I remember the numpy update took out boost but only
> on powerpc, which then took out a big chunk of the tree on that platform.
>
> I don't know how to prevent that without doing bulks.
>
> But as you say, given realities, it may not get done...

Most actual runtime breakage will only get picked up by getting packages
out there (but at this point in the release cycle, experience has shown
it's likely to only get reported after it's too late to do anything
about). So pragmatically if that's likely to be a big risk, holding
the update until unlock might make more sense.

> > The extra patches below fix things so tests can run on 3.11 (remove
> > NO_TEST from Makefile too). "make test" on amd64 Py 3.11 results below
> > the diff (summary: 31 failed, 35649 passed, 2372 skipped, 1305
> > deselected, 33 xfailed, 1 xpassed, 21 warnings in 207.79s"; I'll run
> > it on aarch64 when my machine's free and reply if there are many
> > differences. Maybe i386 too when the current bulk finishes (a day or
> > two).
>
> No objection for this tactical fix.
>
> I thought about doing the same thing, but tests will theoretically break
> if we ever go to Python 3.13.

If so, not as a result of the patches I've added. They just change
">= 3.12" to ">= 3.11".

> I think what they were trying to do here is to only use distutils in
> earlier versions of Python since distutils was removed in 3.12 (and I
> think deprecated in 3.11?).
>
> But since numpy.distutils itself is now gone, I think the right fix is to
> remove references to that package (so the test of the Python version for
> whether we call numpy.distutils feels wrong to me).

I don't see any point spending more time than this on it for an old
version of numpy - more recent upstream versions have improved the
situation.

And having tests that run gives a lot more confidence in safety of the
update.

No comments:

Post a Comment