File: NOTES

package info (click to toggle)
libdate-manip-perl 6.98-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 14,928 kB
  • sloc: perl: 222,846; sh: 54; ansic: 26; makefile: 8
file content (192 lines) | stat: -rw-r--r-- 6,878 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
The files in this directory are for primary use by me, the author
of Date::Manip to prepare a new release.

There is no reason for an end user to need to do this. However, it
is documented for the sake of completeness, and to remind me of the
steps I need to do.

It's also available in case someone ever chooses to fork the
module (though I hope that won't be necessary).

#########################################################################
Update the windows zones.

(cd internal; ./windows.compare)

Make the changes in data.alias.pl .

#########################################################################
Get the newest tzdata package.

The tzdata/tzcode archives are obtained from

   ftp://ftp.iana.org/tz/

In order to create the appropriate Date::Manip modules, run the
following commands:

   export CC='gcc -std=c99'
   ./internal/tzdata -f           : to download the packages
   ./internal/tzdata -b           : to build the package

Some timezones store information about time changes quite a ways in advance.  We
need to make sure that we're storing enough information to get to a 'lastrule'.

Run the following:

   cd tzdata
   grep Rule africa antarctica asia australasia europe northamerica \
             southamerica | \
      awk '{print $3}' | sort -u | egrep '^[1-9]' | sort -n | tail -1
   cd ..

Make sure that the value for $keep_years (in internal/data.misc.pl) is greater
than (MAX_YEAR - CURR_YEAR) where MAX_YEAR is the output from the line above and
CURR_YEAR is the current year.

   ./internal/tzdata -l           : to get a list of all the zones that need modules
                                    *** see NOTE 4 below ***
   ./internal/tzdata -d           : to dump all zones
   ./internal/tzdata -m           : to create the individual zone modules
                                    *** see NOTE 2 below ***
   ./internal/tzdata -o           : to create the individual offset modules
                                    *** see NOTE 3 below ***
   ./internal/tzdata -z           : to create the main Zone module
                                    *** see NOTE 3 below ***

Run the following to double check every timezone in zoneinfo against the
Date::Manip version:

   ./internal/dumps

Run the two tzdata tests:

   (cd t; ./runtests tzdata)

Then clean up:

   ./internal/tzdata -c


NOTE 1: although the tzdata script runs on my computer, it is quite possible
that it will not run on other systems due to differences in what tools are
available.

Since the tzdata script is designed only to create the modules which are
then distributed as part of Date::Manip, there is no reason for anyone other
than me to run the above commands. If you DO choose to run them, please do
not report problems due to differences in operating systems, or packages that
are installed on your system. If you discover a bug in tzdata, I am interested
in knowing about it however.

NOTE 2: If you get a LAST RULE in Jan/Dec line, check it out.  A zone
is doing time changes in Jan or Dec.  Make sure it won't cause any
problems.  Provided it's not early in the day of Jan 1 or late in the day
of Dec 31, it'll be fine.

Currently, the following warn (but have been cleared as safe):
    Pacific/Fiji

NOTE 3: These steps often require manual intervention described
below. After the intervention, rerun the command to make sure no
output is produced.

The old values of data are stored in the internal/data.* files. This is
so that I am explicitly notified of every change to the zoneinfo data
which could impact Date::Manip.  Any output reflects potential changes
so every entry should be checked to ensure that it acceptable. Then,
the output needs to be added to the appropriate data.* file, replacing
any previous value for the entry.  It is especially important that the entries
for 'important' values remain unchanged unless there is good reason
to change it.

If the '-o' option produces any output, the entries need to be verified and
added to the data.offset.pl file.

If the '-z' option produces any output, the entries need to be verified and
added to the data.alias.pl or data.abbrev.pl file.

After adding a new value, rerun the command to make sure there are no more
problems.

NOTE 4: If you see an error:
   [do_list] unknown alias [ZONE: Alias]
removed the key/value pair in data.alias.pl

#########################################################################
Clean up stuff that shouldn't be in the manifest

In internal/benchmarks directory
    rm -f nytprof.out parse-1.in
    rm -rf nytprof

#########################################################################
Before every release, spellcheck the documents:

   for i in `find lib -type f -name \*.pod | egrep -v 'Lang\/' |
             egrep -v Zones.pod` ;do
      pod2text $i > $i.txt
      ispell -p internal/module.isp $i.txt
      rm -f $i.txt $i.txt.bak
   done

   internal/langpod

   pod2text ./lib/Date/Manip/Lang/english.pod > english.txt
   ispell -p internal/module.isp english.txt
   rm -f english.txt english.txt.bak

#########################################################################
Update the copyright

   y=`date '+%Y'`
   for i in `find . -type f | egrep -v '.git' | xargs egrep -l 'Copyright \(c\) ....\-.... Sullivan Beck'` ;do
     sed -e "s,\(Copyright (c) ....\)\-.... \(Sullivan Beck\),\1-$y \2," $i > z
     mv z $i
   done
   chmod +x internal/tzdata internal/gen_dm5abbrevs examples/dm_* internal/langpod internal/windows.compare

#########################################################################
Switch the system timezone to America/Central and run the tests.

#########################################################################
Update the Changes5/Changes6 docs with the date.

../support/pod_to_changes > Changes

#########################################################################
Install the module. Then run the following:

   ./internal/gen_dm5abbrevs > lib/Date/Manip/DM5abbrevs.pm

#########################################################################
Make sure that the test suite covers everything

   . ../0
   cover -delete
   cover -test
       # make sure everything is 100%
   cover -delete
   make distclean

#########################################################################
Regenerate the MANIFEST and run the kwalitee tests

find . -name \*.swp

#########################################################################
Run the internal/leak.pl whenever a new version of perl is available to
see if the leak persists. When it's fixed, note this in the known problems
section.

A patch for this went in on Dec 13, 2011 when the following versions of
perl are active:
   5.16.0  FIXED
   5.15.6  FIXED
   5.14.2  maint
   5.12.4  maint
   5.10.1  unmaint

so look for it to be corrected in newer versions than this (not sure if
it'll be applied to the maintenance versions).