2.2. Release planning

2.2.1. Stable API and beta code

In order to ensure that users and developers spend as little time as possible performing maintenance work unrelated to research, the developers of HORTON have committed to providing a stable Application Programmer Interface (API). This means that most new releases of HORTON will remain compatible with your code and will not change the behavior of your code.

Warning

The stable API policy only applies to the part that is documented in the User Documentation. All other API may be subject to changes as we make improvements to HORTON.

HORTON releases are given version numbers according to the Semantic Versioning Specification, which directly relates to API stability:

  • Major releases (i.e. 1.x.x -> 2.x.x) will not guarantee compatibility with past versions.
    • We will wait at least 12 months (typically 18-30 months) between major releases.
    • These releases will contain overarching restructuring of the code and renaming of functions and classes, including removal of deprecated code.
  • Minor releases (i.e. 1.1.x -> 1.2.x) will remain compatible with past versions.
    • These releases will be used to introduce new features or tweaks to existing code.
    • New algorithms for existing features will be disabled by default in order to preserve old behavior.
  • Bugfix releases (i.e. 1.1.1 -> 1.1.2) will not make any changes to the code except to fix bugs.
  • Occasionally, we will release features marked as beta to speed up sharing ideas.
    • They do not adhere to this stable API policy. We reserve the right to break API in beta features at any time.

2.2.2. Unstable code in HORTON 2.1.0b3

Some parts of HORTON 2.1.0b3 have no stable API yet because of known problems or because the code was not fully reviewed yet.

In future release, we will report in this section the API changes for the unstable parts.

2.2.3. Features in development

The following features are planned or are in a certain state of development. If you are interested in testing or contributing in any of these areas, or if you would like to develop your own new features for HORTON, send a mail to the HORTON mailing list.

Target Feature
2.1.0 MGGA functionals
2.1.0 Range-separated functionals