forked from mlpack/mlpack
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Outline the versioning policy. (This can change, of course, but I thi…
…nk this is a good start.)
- Loading branch information
Showing
1 changed file
with
35 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
mlpack uses semantic versioning for its versioning conventions | ||
(http://semver.org). | ||
|
||
Because of the complexity and huge API of mlpack, it is worth elaborating on | ||
precisely when and how backwards compatibility will be broken. This will, of | ||
course, happen, as mlpack developers settle on increasingly effective | ||
abstractions for machine learning algorithms. | ||
|
||
* The command-line programs, bindings, and top-level classes for each machine | ||
learning algorithm, as well as the code in core/, are considered the "public | ||
API". So, for instance, the mlpack_linear_regression program, | ||
LinearRegression<>, and any bindings for LinearRegression<> are considered | ||
the "public API"; additionally, core utilities like data::Load() and | ||
data::Save() are considered "public". | ||
|
||
* Support classes for machine learning algorithms are considered the "private | ||
API". An example might be the mlpack::kmeans::MaxVarianceNewCluster class. | ||
This is a support class for mlpack::kmeans::KMeans<> and generally isn't used | ||
by end users. | ||
|
||
Thus, with this relatively simple definition of "public API" and "private API", | ||
we can provide a simple versioning scheme based completely on the semantic | ||
versioning guidelines: | ||
|
||
---- | ||
|
||
Given a version number MAJOR.MINOR.PATCH, increment the: | ||
|
||
MAJOR version when you make incompatible public API changes, | ||
MINOR version when you add public API functionality in a backwards-compatible | ||
manner or make incompatible private API changes, and | ||
PATCH version when you make backwards-compatible bug fixes or documentation | ||
updates. | ||
|
||
---- |