[tz] Issues with pre-1970 information in TZDB

Stephen Colebourne scolebourne at joda.org
Wed Sep 22 22:08:23 UTC 2021

On Wed, 22 Sept 2021 at 20:16, Murray S. Kucherawy <superuser at gmail.com> wrote:
> On Wed, Sep 22, 2021 at 3:52 AM Stephen Colebourne via tz <tz at iana.org> wrote:
>> Can we keep responses limited on this thread? Perhaps only respond if
>> you think I've mischaracterized the issues at stake here? Or missed
>> something obvious?
> My understanding is that these data are being moved from the regional files to the backzone file.  It's been pointed out before that a compile-time option can be set to include those entries in the production output of the build.
> If that's wrong or incomplete, please do correct me.  In either case, can you please explain why that compile-time option is not an acceptable solution for those who object to the change?

The subtlety is in how the data set is consumed. While many downstream
projects use the makefile, not all do. A significant portion of
downstream users make use of the source files directly, with their own
parsers. ie. there is no ability to use a compile-time option. Those
parsers are not setup to use backzone even if it were a valid option
(Tom Lane has indicated how you can't reverse engineer the 2021a data
cleanly from backzone as it is mixed with lots of other historic data
that has been similarly abandoned). Even if the parsers were to be
updated (and in the case of CLDR's backwards compatibiilty it is not
clear that they can), it is not appropriate to have to make the change
without a significant notice period.

For example, for many years Joda-Time has treated Links as permanent
aliases, thus with 2021b any user of the library (which is probably
millions of applications) would see Europe/Oslo actively replaced by
Europe/Berlin. This behaviour was chosen as Links were originally only
really used for spelling changes, ie. proper aliases. However since
the data set has been fiddled with, there is now no way to tell
whether a Link is a true alias (a spelling change) or a meaningful ID
like Europe/Oslo.

Given the above, tzdb users like myself have asked for the opposite
compile-time flag. One where all the data is in the main files, but
where a flag is used to slim the data set to focus on post-1970 data
for those that need smaller data files.

I hope this explains why backzone and compile-time flags are not a
solution to the issue.


More information about the tz mailing list