[tz] Inappropriate project direction

Paul Eggert eggert at cs.ucla.edu
Fri Feb 9 22:36:26 UTC 2018

On 02/06/2018 08:13 AM, Stephen Colebourne wrote:
> it was never appropriate to merge the time-zones of
> multiple different countries (backzone being the result).
> - the change caused LMT values to be lost

Those LMT values were not significant and their loss was no real loss. 
The only significant effect that I recall was on test suites, and test 
suites should not be forcing tzdb to continue to promote invented data.

> - downstream consumers had to change logic wrt the meaning of backzone
Downstream consumers don't have worry about backzone. Mostly, they 
should just not use backzone, as it is outside the scope of tzdb proper 
and contains data that is not installed by default.

> - it was culturally insensitive to not provide a primary Zone entry
> for some countries
tzdb focuses on timekeeping practices. We should spend as few of our 
limited resources as possible to worry about political or cultural 
sensitivities that have nothing to do with timekeeping proper. Although 
we cannot exclude politics entirely, we should strive to not complicate 
the database merely to make political partisans happy, a task that would 
be never-ending.

> 2) Removal of textual short zone names.
> While these names may well have been invented in some cases, the had
> often become de facto standards
The few invented abbreviations that became common parlance were kept. 
The remaining abbreviations lacked sufficient practical justification 
for a database where the goal is to describe timekeeping practice, not 
prescribe it.

> - downstream consumers had to change logic to handle numeric-style identifiers
Applications like OpenJDK+CLDR that want abbreviations and full names 
for every time zone needed to maintain their own databases of inventions 
anyway. For tzdb-style abbreviations, numeric identifiers are more 
accurate and less error-prone than invented ones, and have been part of 
the POSIX standard since 2001.

> The main archive format was changed from the well-known and widely
> supported gz to the niche lz format.
This has not affected downstream consumers, which can continue to use 
gzip format as before. Support for lzip is easily and freely available 
on modern platforms, including MS-Windows. Microsoft itself didn't 
support gzip back in the day, but that didn't mean we shouldn't have 
used gzip back then.

> 4) Negative SAVE values ...
> - downstream consumers broke
The main downstream consumer that broke was OpenJDK+CLDR. The problem 
was soon rectified, and because OpenJDK+CLDR is an important enough 
consumer we now have a way in the development version to generate a form 
of the tzdata source that does not use negative DST offsets. That being 
said, the OpenJDK+CLDR model is incorrect for Irish timekeeping and it 
really should get fixed at some point. Fractional seconds are a similar 
sort of thing, though here CLDR has made it clear that they don't care 
about timestamps before 1990, so this issue should not affect CLDR 
(unless North Korea starts using a fractional-second UTC offset :-) and 
only a trivial change to OpenJDK should be needed.

> Not one of these changes has added value to the project.
Even if there was no value to you, there is some value to record civil 
timekeeping more accurately. Different consumers have different needs in 
this area.

More importantly, there needs to be a better way for tzdb+OpenJDK+CLDR 
to accommodate future changes, as there inevitably will be. Of course we 
should not change things just for the purpose of changing. Conversely, 
it would not be healthy to have a software system that can never be 
changed and can never be improved. We should have a reasonable upgrade 
strategy, as changes will be inevitable.

More information about the tz mailing list