For NTP, we have a kinda hard to describe but easy to read mechanism. For development versions (odd-number minor releases) each new "issue" gets a bumped "point number" (major.minor.point). If that issue is a release candidate it gets a "-RC" suffix.
For stable versions (even-number minor releases) if we have to make public snapshots and we are currently at 4.2.6p5 (old way, the new way would be 4-2.6.5), we'd either be publishing a -betaN, -RCn, or release upgade. The progression might look like this: 4-6.2.5 4-6.2.6-beta1 (the first beta release that would become 4-6.2.6) 4-6.2.6-RC1 (the first RC for 4-6.2.6) 4-6.2.6 and I note that it doesn't sort well if we go from beta1 to RC1 to beta2 to beta3 to RC2. At that point you'd need to look at the file timestamps. But we do our best to be very careful with changes to the -stable branch so this is very rarely an issue. And normal folks will just wait for the production release. This is not an issue for dev code because we can always bump the point number there to make the order clear, and identify whether or not a tarball is a release candidate or not. H