[tz] Regression Tests and Revision Controls
Paul Eggert
eggert at cs.ucla.edu
Wed Aug 13 05:52:14 UTC 2014
Lester Caine wrote:
> That we need to know which version of tz was used to normalize a record
> has been a given
Although it's been an assumption I doubt whether it's a given, as (A)
the versioning is complicated, and (B) the version info is often not
readily available.
Here's a bit more about (A). The tz database is typically massaged by
downstream distributions before users see it. Android discards all data
outside the 32-bit window (roughly, before 1901 or after 2038). Other
distributions discard data before 1970, or add their own zones, or
cherry-pick upstream changes, or invent their own changes.
Here's an example of versions being distributed today. Debian currently
sports four distinct tzdata versions which it calls 2014e-0squeeze1,
2014e-0wheezy1, 2014e-1, and 2014f-1, each derived from an upstream
release and with Debian-specific changes; see
<https://packages.debian.org/search?keywords=tzdata>. Ubuntu, which is
downstream from Debian, currently has seven different versions with
Ubuntu-specific changes, which it calls 2014e-0ubuntu0.10.04,
2014e-0ubuntu0.12.04, 2013b-1ubuntu1, 2013g-0ubuntu0.13.04,
2014e-0ubuntu0.13.10, 2014e-0ubuntu0.14.04, and 2014f-1; see
<http://packages.ubuntu.com/search?keywords=tzdata>. And Linux Mint,
which is downstream from Ubuntu, has its own four versions 2010i-1,
2011n-0ubuntu0.11.10, 2013b-1ubuntu1, and 2014b-1; see
<http://community.linuxmint.com/software/view/tzdata>.
That's just three distributors; there are dozens more. And if you care
about Java, PHP, Go, etc., then multiply everything by another factor,
as these subsystems have their own database copies with their own
idiosyncrasies. Good luck to anybody who wants to keep track of what
all those versions actually mean.
And that's just (A). I suspect that (B) is a bigger kettle of fish.
More information about the tz
mailing list