You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With #115, you can no longer call np.asarray(x), where x is a array_api_strict.Array, on Python 3.10 and 3.11.
This effectively means that array-api-strict is no longer fit for purpose on 3.10 and 3.11.
This minimum version bump is reflected in the release notes, but
As a result, all projects that don't pin array-api-strict will break or have already broken.
All projects that have it as a hard dependency in their test suite (why wouldn't they? it's tiny!) break and fixing them is potentially going to require substantial effort.
I don't think this was discussed widely enough, and I, for one, am strongly convinced this was a very bad decision.
SPEC0 dropped support for 3.10 in Q4 2024 and requires 3.11 to be supported until Q4 2025. Most projects do not aggressively enforce SPEC0. We can see some of the biggest users of array-api-strict below:
Amend pyproject.toml to prevent pypi users on Python 3.10-3.11 from upgrading;
Issue release 2.4.1;
Amend conda-forge recipe to prevent conda users from upgrading.
I strongly prefer option 1, on the basis that the users listed above would get long term harm from n.2. They won't break immediately, but will have to deal with either diverging versions of array-api-strict or changing array-api-strict to be a fully optional test dependency.
Note that Option 2 is in violation of SPEC0 until Q4 2025.
With #115, you can no longer call
np.asarray(x), where x is aarray_api_strict.Array, on Python 3.10 and 3.11.This effectively means that array-api-strict is no longer fit for purpose on 3.10 and 3.11.
This minimum version bump is reflected in the release notes, but
As a result, all projects that don't pin array-api-strict will break or have already broken.
All projects that have it as a hard dependency in their test suite (why wouldn't they? it's tiny!) break and fixing them is potentially going to require substantial effort.
I don't think this was discussed widely enough, and I, for one, am strongly convinced this was a very bad decision.
SPEC0 dropped support for 3.10 in Q4 2024 and requires 3.11 to be supported until Q4 2025.
Most projects do not aggressively enforce SPEC0. We can see some of the biggest users of array-api-strict below:
Proposed course of action
Option 1
__array__on Python 3.10 and 3.11, and defines__buffer__instead on newer versions;Option 2
I strongly prefer option 1, on the basis that the users listed above would get long term harm from n.2. They won't break immediately, but will have to deal with either diverging versions of array-api-strict or changing array-api-strict to be a fully optional test dependency.
Note that Option 2 is in violation of SPEC0 until Q4 2025.