On 5/14/19 2:49 AM, Stephen Colebourne wrote:
FYI, the Java definition says this when querying the list of available versions: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/zone/...)
* The exact meaning and format of the version is provider specific. * The version must follow lexicographical order, thus the returned map will * be order from the oldest known rules to the newest available rules. * The default 'TZDB' group uses version numbering consisting of the year * followed by a letter, such as '2009e' or '2012f'.
The current tzdb release numbering scheme allows for more than 26 releases per year. tz-link.html says: Since 1996, each version has been a four-digit year followed by lower-case letter (<samp>a</samp> through <samp>z</samp>, then <samp>za</samp> through <samp>zz</samp>, then <samp>zza</samp> through <samp>zzz</samp>, and so on). As that sentence suggests, we may change the release numbering scheme in the future (we've changed it in the past). That would not be a casual decision of course.
The ordering allows the versions to be sorted, and the latest one selected. If users want to have their own versions, I'd strongly suggest something sortable, not something based off a git hash, such as 2019a-patched-2019-05-14.
The default numbering scheme for non-release versions is sortable, although one should use something like GNU strverscmp rather than classic strcmp. For example, "2019a-14-g9e498e2" is the version number for 14 commits since 2019a. The Java documentation should probably be updated to reflect the above. At least it should mention the possibility of "2019za" (shudder).