Romantic Versioning Specification
See the code
Version numbers are defined as PROJECT.MAJOR.MINOR, where you increment the:
PROJECT segment when you want the version to be considered a new, separate project (e.g. Sdl 2.28 to Sdl 3.0).MAJOR segment when you make breaking changes.MINOR segment when you make non-breaking changes (e.g. adding functionality or bug fixes in a backward-compatible manner).Additional labels for pre-release and build metadata are available as extensions to the PROJECT . MAJOR . MINOR format.
This is an alternative to the SemVer format, focusing instead on defining and standardizing version numbers based off the ways in which people naturally treat them. Many large and popular projects (e.g. Node, Rails, PHP, jQuery, NPM, the Linux Kernel, and many more) deny using SemVer and instead opt to just base their versions off intuition. RomVer acknowledges the importance of this intuition and attempts to standardize version numbers in a way that is both extremely intuitive and extremely useful.
The Romantic Versioning specification was originally authored by Daniel V in 2015, and this open and public repository has the task of maintaining, extending, polishing, and popularizing this standard. If you'd like to leave feedback, please open an issue on GitHub.
This was made to fix the confusion that SemVer often creates regarding MAJOR changes. When a project releases a v2.0, people don't automatically think of it as a simple breaking change as they should, they think of it as being an extremely big deal. And conversely, when a project releases a v54.0, people don't automatically think of it as a simple breaking change as they should, they think of it as another small and tedious step that isn't noteworthy.
For whatever reason, humans seem to naturally put a lot of personal attachment in the first number of a version, and this standard attempts to work with that fact instead of overriding it.
If a software project wishes to use Romantic Versioning, it must follow these rules:
PROJECT.MAJOR.MINOR[-PRE][+BUILD] where PROJECT, MAJOR, and MINOR are non-negative integers with no leading zeroes, and PRE and BUILD are optional identifiers composed only of ASCII alphanumerics, hyphens, and dots.Romantic Versioning Specification
See the code
Version numbers are defined as PROJECT.MAJOR.MINOR, where you increment the:
PROJECT segment when you want the version to be considered a new, separate project (e.g. Sdl 2.28 to Sdl 3.0).MAJOR segment when you make breaking changes.MINOR segment when you make non-breaking changes (e.g. adding functionality or bug fixes in a backward-compatible manner).Additional labels for pre-release and build metadata are available as extensions to the PROJECT . MAJOR . MINOR format.
This is an alternative to the SemVer format, focusing instead on defining and standardizing version numbers based off the ways in which people naturally treat them. Many large and popular projects (e.g. Node, Rails, PHP, jQuery, NPM, the Linux Kernel, and many more) deny using SemVer and instead opt to just base their versions off intuition. RomVer acknowledges the importance of this intuition and attempts to standardize version numbers in a way that is both extremely intuitive and extremely useful.
The Romantic Versioning specification was originally authored by Daniel V in 2015, and this open and public repository has the task of maintaining, extending, polishing, and popularizing this standard. If you'd like to leave feedback, please open an issue on GitHub.
This was made to fix the confusion that SemVer often creates regarding MAJOR changes. When a project releases a v2.0, people don't automatically think of it as a simple breaking change as they should, they think of it as being an extremely big deal. And conversely, when a project releases a v54.0, people don't automatically think of it as a simple breaking change as they should, they think of it as another small and tedious step that isn't noteworthy.
For whatever reason, humans seem to naturally put a lot of personal attachment in the first number of a version, and this standard attempts to work with that fact instead of overriding it.
If a software project wishes to use Romantic Versioning, it must follow these rules:
PROJECT.MAJOR.MINOR[-PRE][+BUILD] where PROJECT, MAJOR, and MINOR are non-negative integers with no leading zeroes, and PRE and BUILD are optional identifiers composed only of ASCII alphanumerics, hyphens, and dots.