[x] If both are non-numeric, the parts are compared alphabetically, in a case-sensitive manner: 1.0.0-ALPHA.1 < 1.0.0-BETA.1 < 1.0.0-alpha.1 < 1.0.0-beta.1
[x] dev is considered lower than any non-numeric part: 1.0.0-dev.1 < 1.0.0-ALPHA.1 < 1.0.0-alpha.1 < 1.0.0-rc.1.
[x] The strings rc, snapshot, final, ga, release and sp are considered higher than any other string part (sorted in this order): 1.0.0-zeta.1 < 1.0.0-rc.1 < 1.0.0-snapshot < 1.0.0-ga.1 < 1.0.0-release.1 < 1.0.0-sp.1 < 1.0.0.
[x] These particular values are NOT case sensitive, as opposed to regular string parts and do not depend on the separator used around them: 1.0.0-RC.1 == 1.0.0-rc.1
Current issues:
1.0.0-ALPHA.1
<1.0.0-BETA.1
<1.0.0-alpha.1
<1.0.0-beta.1
dev
is considered lower than any non-numeric part:1.0.0-dev.1
<1.0.0-ALPHA.1
<1.0.0-alpha.1
<1.0.0-rc.1
.rc
,snapshot
,final
,ga
,release
andsp
are considered higher than any other string part (sorted in this order):1.0.0-zeta.1
<1.0.0-rc.1
<1.0.0-snapshot
<1.0.0-ga.1
<1.0.0-release.1
<1.0.0-sp.1
<1.0.0
.1.0.0-RC.1 == 1.0.0-rc.1
https://docs.gradle.org/current/userguide/single_versions.html#version_ordering