BLAST+ Versioning Policy

Definitions

BLAST+ versions

Starting with BLAST+ 2.3.0, the BLAST+ suite will follow the semantic versioning guidelines from http://semver.org/, with a few deviations. Each BLAST+ release will be versioned: [MAJOR].[MINOR].[PATCH], where

  • The major component of the version is reserved for major algorithmic changes (e.g.: ungapped to gapped BLAST).
  • The minor component of the version is incremented with each non-bug-fix BLAST+ release; these may contain new features or non-backwards compatible changes.
  • The patch component of the version is used for backwards-compatible bug-fix releases (public or NCBI-only). Note that these may be non-sequential.

API Compatibility

Changes in the PATCH level have source compatibility forwards and backwards, but the same guarantee cannot be made with MINOR or MAJOR changes. Link-level compatibility is not supported at this time.

API Deprecation

Deprecation may occur in any releases where the MAJOR or MINOR component of the version changes. Deprecations in the command line options will be announced in the BLAST+ release notes and source code APIs will have the NCBI_DEPRECATED preprocessor symbol. These will be present in at least one MINOR release before they are removed so that users can transition away from these APIs.