<tt><font size=2>When I tried to import tzdata2013g into our project,
I realized 2013g Morocco rule change revealed our tooling problem.</font></tt>
<br>
<br><tt><font size=2>Our tool tries to extract a set of rules to be applied
beyond year 2038, and expecting either no "max" rule or a pair
of "max" rules. However, Africa/Casablanca with 2013g update
introduced a case not fall into above - only a single "max" rule.</font></tt>
<br>
<br><tt><font size=2>Of course, tzcode works fine and it's our tooling
issue. My problem is how we should interpret the rule.</font></tt>
<br>
<br><tt><font size=2>Below is a part of Morocco rules:</font></tt>
<br>
<br><tt><font size=2>Rule        Morocco  
     2013        only
       -        Jul
         7        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2013        only
       -        Aug
        10        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2013        2035
       -        Oct
        lastSun 3:00        0
       -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2014        2022
       -        Mar
        lastSun 2:00        1:00
       S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2014        only
       -        Jun
        29        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2014        only
       -        Jul
        29        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2015        only
       -        Jun
        18        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2015        only
       -        Jul
        18        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2016        only
       -        Jun
         7        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2016        only
       -        Jul
         7        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2017        only
       -        May
        27        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2017        only
       -        Jun
        26        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2018        only
       -        May
        16        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2018        only
       -        Jun
        15        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2019        only
       -        May
         6        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2019        only
       -        Jun
         5        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2020        only
       -        Apr
        24        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2020        only
       -        May
        24        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2021        only
       -        Apr
        13        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2021        only
       -        May
        13        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2022        only
       -        Apr
         3        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2022        only
       -        May
         3        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2023        only
       -        Apr
        22        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2024        only
       -        Apr
        10        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2025        only
       -        Mar
        31        
2:00        1:00        S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2026        max
       -        Mar
        lastSun 2:00        1:00
       S</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2036        only
       -        Oct
        21        
3:00        0        -</font></tt>
<br><tt><font size=2>Rule        Morocco  
     2037        only
       -        Oct
        11        
3:00        0        -</font></tt>
<br>
<br>
<br><tt><font size=2>If I read above, the rule applicable 2038 and beyond
is only </font></tt>
<br>
<br><tt><font size=2>> Rule        Morocco
       2026        max
       -        Mar
        lastSun 2:00        1:00
       S</font></tt>
<br>
<br><tt><font size=2>Therefore, if I read this as is, Africa/Casablanca
will be permanent daylight saving time after 2038-03-28.</font></tt>
<br>
<br><tt><font size=2>I know the tz database is trying to cover dates up
to 2037 (max signed integer seconds). Also, rules used in far future are
not really useful. But users like us really need to make a certain assumption
for far future dates.</font></tt>
<br>
<br><tt><font size=2>I'm actually not 100% sure if we can still use the
tz database for year 2038 and beyond, or if the tz database has no support
/ desire for make it work beyond 2038. My comments below is based on the
assumption that the tz database just set 2038 as the threshold for rule
coverage, but not trying to introduce the hard barrier.</font></tt>
<br>
<br><tt><font size=2>One thing I'm not comfortable is that the rules above
will result permanent daylight saving time. If the max line rule were written
like below -</font></tt>
<br>
<br><tt><font size=2>Rule        Morocco  
     2026        2037
       -        Mar
        lastSun 2:00        1:00
       S</font></tt>
<br>
<br><tt><font size=2>it makes better sense to me. The rule above indicates
the last transition is on 2037-10-11, then it will stay in standard time
beyond 2038. This is perfectly equivalent to what 2013g defined until 2038.
Only the difference is 2038-03-28 (out of signed 32bit integer seconds)
and beyond.</font></tt>
<br>
<br><tt><font size=2>I would like to ask the tz database coordinators to
select rule line more friendly for users using the database for 2038 and
beyond.</font></tt>
<br>
<br><tt><font size=2>Thanks,</font></tt>
<br><tt><font size=2>Yoshito</font></tt>
<br>