rc and beta are just permitted phrases, everything else is numeric.
I don’t think it’s in the documentation anywhere, which is our mistake. I’ll add a blurb about it to the SDK docs for the next release.
There’s a poorly documented Version class in ignition-common with parse(String) and toParseableString() methods that expect this format. It’s used everywhere in Ignition for versions, including in the module system when comparing a module being installed or upgraded to the existing version of that module, which is one place the ability to compare them becomes important.
What we try to do when versioning our modules is:
major is what it is.
minor matches the Ignition platform version
revision is for small releases, bug fixes, “point” releases
So a module for Ignition 7.3 might be 1.3.0 and increment 1.3.1, 1.3.2, 1.3.3 with bug fixes. Then when 7.4 is released that version would likely change to 1.4.0. Sometime down the line maybe the module is totally revamped (like what happened with Vision) or something significant enough happens that it warrants a bump in the major version. Now it’s 2.4.0, 2.4.1, etc…
The build portion, at least for us, comes from version control. Changesets increment that build number.