On Wed, May 25, 2022 at 4:56 PM Thomas Caswell <tcasw...@gmail.com> wrote:

> To reiterate what Ralf said, the possibility of Python going to a faster
> cadence was one of the things on our mind when drafting NEP 29 (see
> https://numpy.org/neps/nep-0029-deprecation_policy.html#n-minor-versions-of-python
> for why did not go with a fixed number of versions) because the reality of
> the effort and timelines to upgrade deployments does not change with Python
> release frequency.   The two things we are trying to balance here are the
> needs of the projects to use the cool new stuff in Python and the needs of
> our (institutional) users who are using our libraries for operations where
> updating the version of Python deployed is not trivial.
>
> There was a lot of discussion around how big the window should be with
> 42mo being about in the middle of what people advocated for.  I am aware of
> institutions that are on an every-other Python upgrade pattern (py37 ->
> py39 -> (expected) py311) so always having at least 3 Pythons in the window
> is important.  Based on what we have seen so far, I still think 42mo is a
> good choice, but do not think we have seen it in operations long enough to
> draw any conclusions (the downside of year-scale planning is you need to
> wait years to see if it worked out like you expected!) and hence do not
> think we should make any changes to the time window for another few years.
>  That said, I am currently sympathetic to making the window longer and
> against making it shorter.
>
> It may be useful to have a discussion about what "support" means though
> given the combinatorial rise of (Python version) x (Python implementation)
> x (Operating system) x (architecture) that we are building wheels for.  I
> think it would still be within the spirit of NEP 29 to run CI on CPython
> for all of the supported versions (maybe across the 3 big OS's) and then
> only publish wheels for the latest (2 version of Python) x (full matrix of
> the rest).
>

We cannot do that (yet, at least). Failing to publish wheels for a
supported Python version on a major OS is far worse than dropping support
completely. This will remain true until the time that Pip starts defaulting
to wheels-only and never picks the sdist if there's an older release for
that platform + Python combo.

Stealing some language/concepts from Microsoft (if I recall it correctly),
> we should sort out which entries in that support matrix are Level 1 (CI +
> wheels), Level 2 (CI), Level 3 (we test something that looks like this),
> and Level 4 (your on your own, but we will take your patches to un-break
> things as you send them).  We would obviously need more thought out
> definitions of the levels as well.
>

Agreed, this would be useful to map out. Starting with what we currently
do, and not mix in any changes in our CI/wheel coverage, in order to
decouple the support model from other, more contentious proposals.

Cheers,
Ralf


> Tom
>
>
>
> On Wed, May 25, 2022 at 5:23 AM Ralf Gommers <ralf.gomm...@gmail.com>
> wrote:
>
>>
>>
>> On Tue, May 24, 2022 at 3:24 PM Ewout ter Hoeven <
>> e.m.terhoe...@student.tudelft.nl> wrote:
>>
>>> Personally I would be in favor of updating NEP 29 to a support timespan
>>> in which at most 3 (minor) Python versions are supported. The development
>>> of Python is still at a high pace and NumPy is a high performance library
>>> which thrives when be able to adopt the latest Python features and having
>>> clean codebase without having "if sys.version_info[:2] < (3, n):" guards
>>> everywhere.
>>>
>>> Especially with the developments of the faster Faster CPython project
>>> and the continued improvements in type hinting support, I think shortening
>>> the support timespan a bit is reasonable, beneficial and proportional.
>>>
>>> More important, NEP 29 is adopted by many other projects, providing a
>>> signal to the ecosystem that's okay to focus on the latest Python versions.
>>> The overlap between users using a Python version more than 2.5 years old
>>> and wanting the latest features and performance is probably pretty small.
>>> Older NumPy and other project's releases will won't disappear and be usable
>>> when the Python requirements are lifted.
>>>
>>
>> I don't think this is true. These graphs show that Python 3.7 is the
>> version with the most downloaded wheels for, and our 1.21.x downloads are
>> still higher than our 1.22.x downloads - very likely because we dropped 3.7
>> support in 1.22.x:
>> https://pypistats.org/packages/numpy
>>
>> https://pepy.tech/project/numpy?versions=1.22.2&versions=1.22.3&versions=1.22.4&versions=1.21.6&versions=1.20.3
>>
>> I have seen problems popping up already in a few places with latest numpy
>> not supported what is still the most commonly used Python version (don't
>> have links, sorry - but they were real packaging-related issues). So I
>> don't think it makes sense to shorten the time window. I also don't think
>> there's a need to drop one version that's urgent - it's some effort and CI
>> time, but the balance is decent right now.
>>
>> Cheers,
>> Ralf
>>
>>
>>
>>>
>>> In my opinion a 30 month support window would provide a nice balance.
>>> Each Python version is supported for over 2 minor releases, with updates on
>>> the maintenance branches extending that with another few months. You can
>>> comfortably stay a full minor Python version behind year-round and still
>>> use the latest NumPy. For even older Python versions the old NumPy releases
>>> will stay available, and it allow NumPy to move on to new Python features a
>>> full year earlier then with a 42 month support window. Which not only
>>> improves feature and performance adaptation, but also lowers maintenance,
>>> testing, backporting and CI effort.
>>>
>>> Ewout ter Hoeven (EwoutH)
>>>
>>
_______________________________________________
NumPy-Discussion mailing list -- numpy-discussion@python.org
To unsubscribe send an email to numpy-discussion-le...@python.org
https://mail.python.org/mailman3/lists/numpy-discussion.python.org/
Member address: arch...@mail-archive.com

Reply via email to