On Wed, 22 Sept 2021 at 20:16, Murray S. Kucherawy <superuser@gmail.com> wrote:
On Wed, Sep 22, 2021 at 3:52 AM Stephen Colebourne via tz <tz@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. Stephen