Blame internal/NOTES

Packit 95306a
The files in this directory are for primary use by me, the author
Packit 95306a
of Date::Manip to prepare a new release.
Packit 95306a
Packit 95306a
There is no reason for an end user to need to do this. However, it
Packit 95306a
is documented for the sake of completeness, and to remind me of the
Packit 95306a
steps I need to do.
Packit 95306a
Packit 95306a
It's also available in case someone ever chooses to fork the
Packit 95306a
module (though I hope that won't be necessary).
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Update the windows zones.  Useful information in determining timezone
Packit 95306a
mapping may be obtained at:
Packit 95306a
Packit 95306a
   http://support.microsoft.com/kb/914387
Packit 95306a
Packit 95306a
Go to:
Packit 95306a
Packit 95306a
   http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/zone_tzid.html
Packit 95306a
Packit 95306a
and copy the contents of the 'Mapping for: windows' table into a file 'windows.new'
Packit 95306a
and run the script:
Packit 95306a
Packit 95306a
   windows.compare
Packit 95306a
Packit 95306a
Currently, ignore the addition:
Packit 95306a
   "UTC"                             => "Etc/GMT",
Packit 95306a
Packit 95306a
and the suggestions:
Packit 95306a
   "Argentina Standard Time"         => "America/Buenos_Aires",
Packit 95306a
   "GTB Standard Time"               => "Europe/Bucharest",
Packit 95306a
   "India Standard Time"             => "Asia/Calcutta",
Packit 95306a
   "Nepal Standard Time"             => "Asia/Katmandu",
Packit 95306a
   "US Eastern Standard Time"        => "America/Indianapolis",
Packit 95306a
Packit 95306a
Make sure that new and changed zones refer to valid Olsen time zones. Make
Packit 95306a
the changes in data.alias.pl .
Packit 95306a
Packit 95306a
Then remove windows.new .
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Get the newest tzdata package.
Packit 95306a
Packit 95306a
The tzdata/tzcode archives are obtained from
Packit 95306a
Packit 95306a
   ftp://ftp.iana.org/tz/
Packit 95306a
Packit 95306a
In order to create the appropriate Date::Manip modules, run the
Packit 95306a
following commands:
Packit 95306a
Packit 95306a
   ./internal/tzdata -f           : to download the packages
Packit 95306a
   ./internal/tzdata -b           : to build the package
Packit 95306a
Packit 95306a
Some timezones store information about time changes quite a ways in advance.  We
Packit 95306a
need to make sure that we're storing enough information to get to a 'lastrule'.
Packit 95306a
Packit 95306a
Run the following:
Packit 95306a
Packit 95306a
   cd tzdata
Packit 95306a
   grep Rule africa antarctica asia australasia europe northamerica pacificnew \
Packit 95306a
             southamerica | \
Packit 95306a
      awk '{print $3}' | sort -u | egrep '^[1-9]' | sort -n | tail -1
Packit 95306a
   cd ..
Packit 95306a
Packit 95306a
Make sure that the value for $keep_years (in internal/data.misc.pl) is greater
Packit 95306a
than (MAX_YEAR - CURR_YEAR) where MAX_YEAR is the output from the line above and
Packit 95306a
CURR_YEAR is the current year.
Packit 95306a
Packit 95306a
   ./internal/tzdata -l           : to get a list of all the zones that need modules
Packit 95306a
   ./internal/tzdata -d           : to dump all zones
Packit 95306a
   ./internal/tzdata -m           : to create the individual zone modules
Packit 95306a
                                    *** see NOTE 2 below ***
Packit 95306a
   ./internal/tzdata -o           : to create the individual offset modules
Packit 95306a
                                    *** see NOTE 3 below ***
Packit 95306a
   ./internal/tzdata -z           : to create the main Zone module
Packit 95306a
                                    *** see NOTE 3 below ***
Packit 95306a
Packit 95306a
Run the following to double check every timezone in zoneinfo against the
Packit 95306a
Date::Manip version:
Packit 95306a
Packit 95306a
   ./internal/dumps
Packit 95306a
Packit 95306a
Run the two tzdata tests:
Packit 95306a
Packit 95306a
   (cd t; ./runtests tzdata)
Packit 95306a
Packit 95306a
Then clean up:
Packit 95306a
Packit 95306a
   ./internal/tzdata -c
Packit 95306a
Packit 95306a
Packit 95306a
NOTE 1: although the tzdata script runs on my computer, it is quite possible
Packit 95306a
that it will not run on other systems due to differences in what tools are
Packit 95306a
available.
Packit 95306a
Packit 95306a
Since the tzdata script is designed only to create the modules which are
Packit 95306a
then distributed as part of Date::Manip, there is no reason for anyone other
Packit 95306a
than me to run the above commands. If you DO choose to run them, please do
Packit 95306a
not report problems due to differences in operating systems, or packages that
Packit 95306a
are installed on your system. If you discover a bug in tzdata, I am interested
Packit 95306a
in knowing about it however.
Packit 95306a
Packit 95306a
NOTE 2: If you get a LAST RULE in Jan/Dec line, check it out.  A zone
Packit 95306a
is doing time changes in Jan or Dec.  Make sure it won't cause any
Packit 95306a
problems.  Provided it's not early in the day of Jan 1 or late in the day
Packit 95306a
of Dec 31, it'll be fine.
Packit 95306a
Packit 95306a
Currently, the following warn (but have been cleared as safe):
Packit 95306a
    Pacific/Fiji
Packit 95306a
    Pacific/Tongatapu
Packit 95306a
Packit 95306a
NOTE 3: These steps often require manual intervention described
Packit 95306a
below. After the intervention, rerun the command to make sure no
Packit 95306a
output is produced.
Packit 95306a
Packit 95306a
The old values of data are stored in the internal/data.* files. This is
Packit 95306a
so that I am explicitly notified of every change to the zoneinfo data
Packit 95306a
which could impact Date::Manip.  Any output reflects potential changes
Packit 95306a
so every entry should be checked to ensure that it acceptable. Then,
Packit 95306a
the output needs to be added to the appropriate data.* file, replacing
Packit 95306a
any previous value for the entry.  It is especially important that the first
Packit 95306a
line in each entry should remain unchanged unless there is good reason
Packit 95306a
to change it. The order of remaining lines may change to some extent.
Packit 95306a
Packit 95306a
If the '-o' option produces any output, the entries need to be added
Packit 95306a
to the data.offset.pl file.
Packit 95306a
Packit 95306a
If the '-z' option produces any output, the entries need to be added
Packit 95306a
to the data.alias.pl or data.abbrev.pl file.
Packit 95306a
Packit 95306a
After adding a new value, rerun the command to make sure there are no more
Packit 95306a
problems.
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Clean up stuff that shouldn't be in the manifest
Packit 95306a
Packit 95306a
In internal/benchmarks directory
Packit 95306a
    rm -f nytprof.out parse-1.in
Packit 95306a
    rm -rf nytprof
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Before every release, spellcheck the documents:
Packit 95306a
Packit 95306a
   for i in `find lib -type f -name \*.pod | egrep -v 'Lang\/' |
Packit 95306a
             egrep -v Zones.pod` ;do
Packit 95306a
      pod2text $i > $i.txt
Packit 95306a
      ispell -p internal/module.isp $i.txt
Packit 95306a
      rm -f $i.txt $i.txt.bak
Packit 95306a
   done
Packit 95306a
Packit 95306a
   internal/langpod
Packit 95306a
Packit 95306a
   pod2text ./lib/Date/Manip/Lang/english.pod > english.txt
Packit 95306a
   ispell -p internal/module.isp english.txt
Packit 95306a
   rm -f english.txt english.txt.bak
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Update the copyright
Packit 95306a
Packit 95306a
   y=`date '+%Y'`
Packit 95306a
   for i in `find . -type f | egrep -v '.git' | xargs egrep -l 'Copyright \(c\) ....\-.... Sullivan Beck'` ;do
Packit 95306a
     sed -e "s,\(Copyright (c) ....\)\-.... \(Sullivan Beck\),\1-$y \2," $i > z
Packit 95306a
     mv z $i
Packit 95306a
   done
Packit 95306a
   chmod +x internal/tzdata internal/gen_dm5abbrevs examples/dm_*
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Switch the system timezone to America/Central and run the tests.
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Update the Changes5/Changes6 docs with the date.
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Install the module. Then run the following:
Packit 95306a
Packit 95306a
   ./internal/gen_dm5abbrevs > lib/Date/Manip/DM5abbrevs.pm
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Make sure that the test suite covers everything
Packit 95306a
Packit 95306a
   . ../0
Packit 95306a
   cover -delete
Packit 95306a
   cover -test
Packit 95306a
       # make sure everything is 100%
Packit 95306a
   cover -delete
Packit 95306a
   make distclean
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Regenerate the MANIFEST and run the kwalitee tests
Packit 95306a
Packit 95306a
find . -name \*.swp
Packit 95306a
Packit 95306a
#########################################################################
Packit 95306a
Run the internal/leak.pl whenever a new version of perl is available to
Packit 95306a
see if the leak persists. When it's fixed, note this in the known problems
Packit 95306a
section.
Packit 95306a
Packit 95306a
A patch for this went in on Dec 13, 2011 when the following versions of
Packit 95306a
perl are active:
Packit 95306a
   5.16.0  FIXED
Packit 95306a
   5.15.6  FIXED
Packit 95306a
   5.14.2  maint
Packit 95306a
   5.12.4  maint
Packit 95306a
   5.10.1  unmaint
Packit 95306a
Packit 95306a
so look for it to be corrected in newer versions than this (not sure if
Packit 95306a
it'll be applied to the maintenance versions).
Packit 95306a