Semantic Version Search

Jun 19 2020

Introducing fully-semantic version searching for packages; via the UI, API, CLI and entitlement tokens.

With semantic versions, Cloudsmith understands the difference between versions, in terms of how a version is represented. For example, we know that 10.2.0 is MAJOR version 10, MINOR version 2 and PATCH version 0 and that 10.2.0 is a higher version than 9.3.1.

Leveraging this, you can now use relational operators, such as > (greater-than), >= (greater-than or equal-to), < (less-than), and <= (less-than or equal-to), when searching for versions. Combined with our boolean search, that means more power than ever before to find the packages you need.

We've also introduced the popular "pessimistic operator", as ~=, which allows you to search for versions that are greater-than or equal-to a specific version, up to versions that are less than the next incompatible level. E.g. version:~=1.2.0 will allow versions between 1.2.0 up to 1.3.0.

This might be most interesting to vendors, who want to sell licenses for a particular version-line of their product and allow customers only access to that range. E.g. For customer purchases a "1.x" edition, that wouldn't give access to "2.x" or beyond. The vendor would use version:~=1.0 as their entitlement restriction.

Tip: If you have any unexpected issues with the semantic version search, you can go back to string-based searching by including globs (*) in your expression, or by using ^ to match the start of the version or $ to match the end of the version. E.g. version:^1.0.0$ will match 1.0.0 exactly, by string-based matching.

Sound awesome? Let us know what you think!

Find out more

Keep up to date with our monthly product bulletin

By submitting this form, you agree to our privacy policy