Fix e3 89
This MR should address two issues: https://jira.esss.lu.se/browse/E3-89 and https://jira.esss.lu.se/browse/E3-187 (in the backlog at the moment, but it seemed best to combine them together).
The problem before was that sscanf
with the scan string %d.%d.%d-%d
was being used to parse version numbers, and (this was my fault) it ignored everything after it failed. So 1.2.3-rc1
was regarded as higher than 1.2.2
even though we should view that as a test version (i.e. lower than 0.0.0
).
It seems simplest to use regular expressions (which I like anyhow), which in this case are pretty simple to implement.
At the same time, it seems worthwhile to address the ability to differentiate between "1.2.3-938261" (presumably a short hash) and "1.2.3-0" (a build number) by fixing E3-187 at the same time.