Rational FloatVer
Extending FloatVer to include rational numbers.
Limits of IEEE754 32-bit floating point
One of the downsides to using IEEE754 for software versioning is that the floating point standard makes a trade-off between precision and range. Simply put, there are more NOBREAK versions available near zero than there are when your BREAK version is large (e.g. around 4 million). This means if your software project has had many major releases and development enters a phase of rapid incremental improvements (lots of NOBREAK changes) you will have to make awkward version bumps that don't make sense.
For example if your software version is 4194304.0 and want to release a NOBREAK update, your only available option is 4194304.5 due to precision limits. Clearly this is unacceptable, so for April 1st we're releasing a major upgrade to FloatVer.
Rationalism
In order to support arbitrary precision, Rational FloatVer is an extension of FloatVer 1.0 that lets you express your version as a ratio of two numbers. Want version 0.3333… (repeating forever)? Simply version your software as MyLibrary 1.0/3.0. This clearly communicates to end-users your intent while keeping all the benefits of FoatVer 1.0:
- still uses floating point values for backwards compatibility
- machine division is famously efficient
- unambiguous division symbol
/avoids confusion with other versioning systems
In addition, for increased coding efficiency, Rational FloatVer will also allow you to omit trailing zeros, so you can finally write MyLibrary 1/3.
Conclusion
The merits of this are so self-evident it warrants not one, not two, but three major version increments over FloatVer 1.0.
This release shall be known as FloatVer 4/1. Enjoy your rationalist lifestyle!