<html><head><meta http-equiv="content-type" content="text/html; charset=us-ascii"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">I was compiling the 2023d release for the Moment Timezone JS library and noticed some oddities in the diff of the generated files.<div><br></div><div>A lot of tests are auto-generated from the data for each tzdb release, making sure the library correctly handles each transition defined in `zdump` output.<br><div>For 2023d, a handful of zones in North America added a lot more transition tests after the year 2400.</div><div>These transitions were apparently missing in earlier releases, and appear to have been fixed by commit 35c116b7 ("<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Fix zic bug with Palestine after 2075"), which makes sense.</span></div></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">But a strange case I noticed is specific to `America/Ciudad_Juarez`. In 2023c its overall zdump output ended at 2422, not 2499 like other zones.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">In 2023d zdump does go to 2499, but there's now a weird set of transitions in 2422.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Compiling zic/zdump for 2023c and getting the data for 2421-2423:</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div></div><div><font face="RobotoMono-Regular"><span id="x-apple-selection:start"></span>$ /tmp/tz/2023c/git/zdump -V -c2421,2424 /tmp/tz/2023c/zic/America/Ciudad_Juarez</font></div><div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Mar 14 08:59:59 2421 UT = Sun Mar 14 01:59:59 2421 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Mar 14 09:00:00 2421 UT = Sun Mar 14 03:00:00 2421 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Nov  7 07:59:59 2421 UT = Sun Nov  7 01:59:59 2421 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Nov  7 08:00:00 2421 UT = Sun Nov  7 01:00:00 2421 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Mar 13 08:59:59 2422 UT = Sun Mar 13 01:59:59 2422 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Mar 13 09:00:00 2422 UT = Sun Mar 13 03:00:00 2422 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Nov  6 07:59:59 2422 UT = Sun Nov  6 01:59:59 2422 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023c/zic/America/Ciudad_Juarez  Sun Nov  6 08:00:00 2422 UT = Sun Nov  6 01:00:00 2422 MST isdst=0 gmtoff=-25200</font></div></div><div><span id="x-apple-selection:end"></span><br></div><div>Doing the same for 2023d:</div><div><br></div><div><div><font face="RobotoMono-Regular">$ </font><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: RobotoMono-Regular;">/tmp/tz/2023d/git</span><span style="font-family: RobotoMono-Regular;">/zdump -V -c2421,2424 /tmp/tz/2023d/zic/America/Ciudad_Juarez</span></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 14 08:59:59 2421 UT = Sun Mar 14 01:59:59 2421 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 14 09:00:00 2421 UT = Sun Mar 14 03:00:00 2421 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  7 07:59:59 2421 UT = Sun Nov  7 01:59:59 2421 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  7 08:00:00 2421 UT = Sun Nov  7 01:00:00 2421 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 13 08:59:59 2422 UT = Sun Mar 13 01:59:59 2422 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 13 09:00:00 2422 UT = Sun Mar 13 03:00:00 2422 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  6 07:59:59 2422 UT = Sun Nov  6 01:59:59 2422 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  6 08:00:00 2422 UT = Sun Nov  6 01:00:00 2422 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  6 08:00:00 2422 UT = Sun Nov  6 01:00:00 2422 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  6 08:00:01 2422 UT = Sun Nov  6 02:00:01 2422 CST isdst=0 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Wed Nov 30 05:59:59 2422 UT = Tue Nov 29 23:59:59 2422 CST isdst=0 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Wed Nov 30 06:00:00 2422 UT = Tue Nov 29 23:00:00 2422 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 12 08:59:59 2423 UT = Sun Mar 12 01:59:59 2423 MST isdst=0 gmtoff=-25200</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Mar 12 09:00:00 2423 UT = Sun Mar 12 03:00:00 2423 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  5 07:59:59 2423 UT = Sun Nov  5 01:59:59 2423 MDT isdst=1 gmtoff=-21600</font></div><div><font face="RobotoMono-Regular">/tmp/tz/2023d/zic/America/Ciudad_Juarez  Sun Nov  5 08:00:00 2423 UT = Sun Nov  5 01:00:00 2423 MST isdst=0 gmtoff=-25200</font></div></div><div><br></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Note that consecutive seconds on Nov 6 2422 go MDT -> MST -> CST, then back to MST on Nov 30.</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">(For diagnostic purposes... I'm running these tests on macOS 14.2.1 with default `make` and `make install`, no extra flags.)</span></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></span></div><div>I don't particularly care about (or believe) the accuracy of the data that far in the future, but the wonky transitions make me think there's a bug lurking in zic that might affect other transitions at some point, if the conditions are right.</div><div><br></div><div>I found it interesting that the data previously cut off exactly 400 years after the zone's last defined "until" rule in `northamerica`.</div><div>Digging further, the other zones that had incomplete data follow the same pattern:</div><div><br></div><div><ul class="MailOutline"><li>`America/Indiana/Petersberg` ended in 2407 (last defined "until" in 2007).</li><li>`America/Indiana/Vincennes` the same.</li><li>`America/North_Dakota/Belulah` ended in 2410 (last defined "until" in 2010).</li></ul><div><br></div></div><div>These other zones don't appear to have the same consecutive transition problem (i.e. they're not buggy any more), but the 400 year pattern is telling.</div><div><br></div><div>Cheers,</div><div>Gil</div><div><br></div></body></html>