codemonth.dk

One project every month - making stuff better ...

Semantic versioning - Verifying full version ranges

The last added function was the cmp function, which we needed to finish the overall goal, of the package: To create a "satisfies" function, that can verify if a specific version is satisfied within a range of versions.

The different ranges, that can be specified are X-ranges (Wildcard, i.e. 1.2.* or 2.*), Tilde-ranges (minimum requirements for minor versions, ~1.2.3, which will allow versions between 1.2.3 and up to 1.2.n, but not 1.3.0) and Caret-ranges and Hyphen ranges. For a full description and detailed example, you should read the following 2 articles:

More semver functionality

So the main functionality I need from the semver package that I am writing, is the "satisfies" functionality. This is the function, that can define if a certain version string pattern is within a set of ranges of different versions.

For example, I want to know if version 1.2.* is satisfied with the following ranges: <=1.2.3 or >1.2.0 or between 1.4.1 and 1.4.6. But before I get there I need some more supporting functions. I my last entry, I had implemented some of the basics, and now I have completed a few more

SEMVER utility for plsql

So anyone doing software releases knows the pain of doing versions correctly for the different releases. One solution to that is using SEMVER (http://semver.org/) which tries to provide a solution for that. Go to the website and read up when you change the different parts of the version (x.y.z = major.minor.patch), and what the rules are around comparing different versions.