36 lines
1.5 KiB
Plaintext
36 lines
1.5 KiB
Plaintext
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.
|
|
|
|
----
|