1309576SglebiusContributing to the tz code and data
2309576Sglebius
3309576SglebiusThe time zone database is by no means authoritative: governments
4309576Sglebiuschange timekeeping rules erratically and sometimes with little
5309576Sglebiuswarning, the data entries do not cover all of civil time before
6309576Sglebius1970, and undoubtedly errors remain in the code and data.  Feel
7309576Sglebiusfree to fill gaps or fix mistakes, and please email improvements
8309576Sglebiusto tz@iana.org for use in the future.
9309576Sglebius
10309576SglebiusTo email small changes, please run a POSIX shell command like
11309576Sglebius'diff -u old/europe new/europe >myfix.patch', and attach
12309576Sglebiusmyfix.patch to the email.
13309576Sglebius
14309576SglebiusFor more-elaborate changes, please read the Theory file and browse
15309576Sglebiusthe mailing list archives <http://mm.icann.org/pipermail/tz/> for
16309576Sglebiusexamples of patches that tend to work well.  Ideally, additions to
17309576Sglebiusdata should contain commentary citing reliable sources as
18309576Sglebiusjustification.
19309576Sglebius
20309576SglebiusPlease submit changes against either the latest release in
21309576Sglebius<ftp://ftp.iana.org/tz/> or the master branch of the experimental
22309576SglebiusGit repository.  If you use Git the following workflow may be helpful:
23309576Sglebius
24309576Sglebius  * Copy the experimental repository.
25309576Sglebius
26309576Sglebius      git clone https://github.com/eggert/tz.git
27309576Sglebius      cd tz
28309576Sglebius
29309576Sglebius  * Get current with the master branch.
30309576Sglebius
31309576Sglebius      git checkout master
32309576Sglebius      git pull
33309576Sglebius
34309576Sglebius  * Switch to a new branch for the changes.  Choose a different
35309576Sglebius    branch name for each change set.
36309576Sglebius
37309576Sglebius      git checkout -b mybranch
38309576Sglebius
39309576Sglebius  * Edit source files.  Include commentary that justifies the
40309576Sglebius    changes by citing reliable sources.
41309576Sglebius
42309576Sglebius  * Debug the changes, e.g.:
43309576Sglebius
44309576Sglebius      make check
45309576Sglebius      make install
46309576Sglebius      ./zdump -v America/Los_Angeles
47309576Sglebius
48309576Sglebius  * For each separable change, commit it in the new branch, e.g.:
49309576Sglebius
50309576Sglebius      git add northamerica
51309576Sglebius      git commit
52309576Sglebius
53309576Sglebius    See recent 'git log' output for the commit-message style.
54309576Sglebius
55309576Sglebius  * Create patch files 0001-*, 0002-*, ...
56309576Sglebius
57309576Sglebius      git format-patch master
58309576Sglebius
59309576Sglebius  * After reviewing the patch files, send the patches to tz@iana.org
60309576Sglebius    for others to review.
61309576Sglebius
62309576Sglebius      git send-email master
63309576Sglebius
64309576Sglebius  * Start anew by getting current with the master branch again
65309576Sglebius    (the second step above).
66309576Sglebius
67309576SglebiusPlease do not create issues or pull requests on GitHub, as the
68309576Sglebiusproper procedure for proposing and distributing patches is via
69309576Sglebiusemail as illustrated above.
70309576Sglebius
71309576Sglebius-----
72309576Sglebius
73309576SglebiusThis file is in the public domain.
74