@kparal
Copy link
Contributor

kparal commented May 26, 2021

In <releases/>, each release has a version and these versions are then compared to figure out which one is the last one. However, the documentation doesn't speak about the comparison algorithm at all. This allows people to assume different behavior and make needless mistakes. It's also very hard to find out the intricacies of the implemented algorithm, for example the difference between 2.0-rc1 and 2.0~rc1.

For example, one such discussion is here:
Beep6581/RawTherapee#5303
and another is here:
flathub/com.corsixth.corsixth#2

Can you please document the version comparison algorithm? At least in broad strokes, i.e. whether it is literal or numeric, what are the special characters, and how to deal with the most common use cases (like the beta/rc versions, etc).

Thank you.