ensmallen uses semantic versioning for its versioning conventions (http://semver.org). The current version of ensmallen can be found with the ens::version::as_string() function, or the ENS_VERSION_MAJOR, ENS_VERSION_MINOR, and ENS_VERSION_PATCH macros. In practice, this generally means: * A MAJOR version bump implies a backwards-incompatible change to the user-facing optimizers. Code using one major version of ensmallen may not work with a newer major version of ensmallen. * A MINOR version bump happens for feature additions to ensmallen. Typically this might be the addition of a new optimizer. Code using one version of ensmallen will work with all subsequent minor releases of the same major release line. * A PATCH version bump indicates some small bug fixes or optimizations. No new functionality is added and no compatibility is broken.