THIS IS A DRAFT FOR DISCUSSION

MXNet Versioning is based on the definition from https://semver.org:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

We use master branch for development.

We are creating branches from master for every major and minor release. We will release patches from head of these branches following Apache release rules.

We merge critical bug fixes into older release branches from master branch for PR which receive at least 3 votes on github. While there should be no limitations on back merges into older branches we will create only patch releases on the most recent major or minor release.

We will protect release branches and apply regular regressions as soon as our CI/CD setup can support branches. In the meantime, we will have to rely on manual testing.