AEP number | 003 |
---|---|
Title | Adopt NEP 29 |
Authors | Carl Simon Adorf (csadorf) |
Champions | Leopold Talirz (ltalirz), Sebastiaan Huber (sphuber) |
Type | P - Process |
Created | 14-Jul-2020 |
Status | implemented |
The aiida-core
package is classified as a hybrid between a library and application, and dependencies are kept as flexible as possible to allow the installation of the package within various Python software environments in combination with other libraries and applications, see AEP 2 for details.
The NumPy project has accepted the Numpy Enhancement Proposal 29 (NEP 29), which recommends that all projects within the scientific Python ecosystem adopt a common deprecation policy with respect to the range of minimally supported Python and NumPy versions.
This AEP proposes that aiida-core
adopts the Python and NumPy version support schedule and deprecation policy outlined in NEP 29.
It is strongly recommended that other packages within the AiiDA ecosystem, e.g. plugins, adopt the same policy.
After this AEP is accepted, aiida-core
will effectively adopt the policies outlined in NEP 29 on 2021-01-13 and enter a transition period with a slightly adjusted support schedule until then:
Date | Python | NumPy | NEP 29 compliant | adjusted |
---|---|---|---|---|
2020-09-13 | 3.6+ | 1.17+ | no | no |
2021-01-13 | 3.7+ | 1.17+ | yes† | yes‡ |
2021-12-26 | 3.8+ | 1.18+ | yes | no |
The adjusted support schedule reflects that dropping support for Python 3.5 on an adjusted schedule is not really necessary and schedules the drop of support for Python 3.6 to coincide with the scheduled drop of support for NumPy version 1.16 according to NEP 29 at which point AiiDA's support schedule would be in compliance with NEP 29.
†) The current support of NumPy in aiida-core
is defined as ~=1.17<1.18
which means that in order to be fully compliant with NEP 29, AiiDA will need to add support for later versions of NumPy by then.
‡) The support for Python 3.6 was previously announced to last until 2021-12-23.
- The adoption of NEP 29 will harmonize AiiDA's deprecation policy with other major libraries within the Scientific Python ecosystem. As NEP 29 becomes adopted more broadly, users will have an expectation of the same level of support from AiiDA.
- The adoption of NEP 29 will reduce the supported range of Python (minor) versions, which will simplify dependency management and testing.
- The adoption of NEP 29 will remove the need for AiiDA maintainers to maintain their own (custom) support and deprecation schedule.
- The adoption of NEP 29 will slightly reduce the supported range of Python (minor) versions, which might be problematic for users who rely on older Python versions. However, it is important to note that other major libraries, such as NumPy, that are likely required in the same context, will also have likely dropped support for these particular versions.