Scientific software is often developed as part of a project,
and once the project ends, the maintenance status is left undefined.
This document tries to clarify the future support for
You can see the plans for future versions on the Milestones page on GitHub.
Please submit an issue if there is something you would like to see fixed or added.
ennemi has been developed as part of a fixed-term project
(civilian service of the primary author at INAR).
With version 1.0.0, all originally envisioned major features are complete.
Version 1.1.0 still added some useful new features.
Future development consists of three categories:
- Minor maintenance tasks (bug fixes, dependency/Python upgrades)
- Minor features based on user feedback
- Contributions by others, or as part of new projects
Put simply, even though the most active development will slow down, the package will be maintained for the foreseeable future. Larger new features may require your contributions, but smaller quality-of-life fixes will be done (given that somebody reports the issue!).
ennemi follows semantic versioning.
This means that the version number is always of the format
Xis the major version. It will be increased only when the behavior or usage changes in a breaking way; that is, when you might have to modify your code to work with the new version. We hope to never bump this to
Yis the minor version. It will be increased when new features are added. We may also drop support for older Python, NumPy, or SciPy versions here. We may remove features, but only after marking them as deprecated for at least one minor version.
Zis the patch version. It will be increased when bugs are fixed, but no new features are added. We will not remove any functionality in patch versions; it is always safe and possible to upgrade to the latest patch version.
Some examples (not necessary real!):
1.0.0 -> 1.0.1(if it existed) would only contain bug fixes.
1.0.1 -> 1.1.0contains new features and bug fixes. It also drops support for Python 3.6. Version
1.0.xremains available for those using Python 3.6.
1.1.0 -> 2.0.0would break some of your code. It might remove features, and therefore you should be careful when upgrading.
We support only the latest patch versions of the releases. Previous minor releases may receive bug fixes if necessary, but the threshold will be decided on a case-by-case basis.
Python and NumPy support
Support for older versions of Python, NumPy and SciPy may be removed on minor or major versions.
Lower versions of
ennemi will remain available for users of those.
In the long term, we aim to follow the NumPy deprecation policy.