[tz] Classifying IDs

Stephen Colebourne scolebourne at joda.org
Wed Oct 6 17:08:33 UTC 2021


Following on from the previous thread [1] I wanted to try and classify
the IDs we have, which may or may not identify missing IDs.

Again, please avoid talking about pre-1970 data at this point.


Obsolete
------------
IDs that are obsolete and should never be used. They date from many
years ago whe tzdb was just starting. Yet these still do appear in
downstream UIs even today (of course UIs should not use the tzdb ID
list, but in reality lots do).

Examples: Portugal, NZ-CHAT, Navajo, Libya.

Proposal: Provide 3-6 months notice, then move obsolete IDs to a new
file "obsolete" which downstream projects are strongly encouraged not
to include. (I would argue that the time has come to properly remove
these IDs, which are very inconsistent in terms of which are provided
and which not, eg Portugal, but not Spain)


Deprecated, same location
------------------------------------
IDs that have been deprecated with a single clear alternative ID being
provided. Both IDs represent the same physical location/city.

Spelling changes: Asia/Katmandu (replaced by Asia/Kathmandu),
Asia/Rangoon (replaced by Asia/Yangon)

ID structure changes: America/Louisville (replaced by
America/Kentucky/Louisville)

Proposal: Ensure all of these are in `backward`
Consider: Is there any way to move these IDs to the obsolete file?
Maybe after 5 years? Or do we just accept backwards compatibility
restrictions on these?


Legally described mega-zones
-----------------------------------------
IDs for locations where a federal or supra-national body defines
rules, eg the EU or US DOT.

Examples: US/Mountain, CET, WET

Consider: Can we write down a rule to identify when something like
this should be included? Then move the matching IDs to the main files
(eg. are the EU and US DOT the only two examples here?)


Regions
-----------
IDs for abstract regions that have had the same wall clock since 1970.

Examples: Europe/Berlin, America/New_York, Africa/Abidjan

Proposal: Ensure all of these are in the main files.
Consider: Should there be new IDs for each of these abstract regions
to indicate they are a separate and distinct concept? eg.
"Region/Berlin". (Maybe something to consider in future threads as it
isn't clear what the benefit of doing so is without considering
pre-1970 which I'm still trying to avoid)


Non-region locations
---------------------------
IDs for locations that are not region IDs. Each ID will have the same
wall clock since 1970 as one of the region IDs.

Examples: Europe/Oslo, Europe/Amsterdam, Atlantic/Reykjavik

Consider: Can we write down a rule that covers which IDs are included
here? And therefore when a new ID can be added to this set? If we can
define a rule, then these can be split so rule-following IDs are in
the main files and rule-breaking ones are in `backward` (although
ideally they should be separate from the spelling changes). Obviously,
we can say these IDs only exist for backwards compatibility, but that
seems like a weak justification, and doesn't tackle the issue of when
a new ID would be added to the list (which has been a point of
tension).

As is well known, I think the obvious rule is that the IDs follow the
ISO-3166-1 standard (rule: one ID per ISO code, additional IDs may be
added where clocks have diverged since 1970). Using ISO-3166 can be
justified by IANA domain policy [2]:
"We are not in the business of deciding what is and what is not a
country. Instead, we employ a neutral standard maintained by the ISO
3166 Maintenance Agency. Our policy is to create new country-code
top-level domains when the country or territory is listed on the ISO
3166-1 standard."

As per the previous thread, these non-region location IDs are actively
used in downstream business applications, and it is not OK that only
works because tzdb happens to have IDs for backwards compatibility.
There needs to be a better justification than that - these non-region
locations need to be fully supported, with a consistent rule used to
define what is and is not fully supported.


Fixed/etc type rules
--------------------------
IDs with a fixed offset

Examples: GMT, UTC, Etc/GMT-9

Proposal: No change, retain in the main files unless a particular ID
is considered obsolete or deprecated


Are there any more classifications I've missed?

Stephen

[1] https://mm.icann.org/pipermail/tz/2021-September/030857.html
[2] https://www.iana.org/help/eligible-tlds


More information about the tz mailing list