1309568SglebiusContributing to the tz code and data
2309568Sglebius
3309568SglebiusThe time zone database is by no means authoritative: governments
4309568Sglebiuschange timekeeping rules erratically and sometimes with little
5309568Sglebiuswarning, the data entries do not cover all of civil time before
6309568Sglebius1970, and undoubtedly errors remain in the code and data.  Feel
7309568Sglebiusfree to fill gaps or fix mistakes, and please email improvements
8309568Sglebiusto tz@iana.org for use in the future.
9309568Sglebius
10309568SglebiusTo email small changes, please run a POSIX shell command like
11309568Sglebius'diff -u old/europe new/europe >myfix.patch', and attach
12309568Sglebiusmyfix.patch to the email.
13309568Sglebius
14309568SglebiusFor more-elaborate changes, please read the Theory file and browse
15309568Sglebiusthe mailing list archives <http://mm.icann.org/pipermail/tz/> for
16309568Sglebiusexamples of patches that tend to work well.  Ideally, additions to
17309568Sglebiusdata should contain commentary citing reliable sources as
18309568Sglebiusjustification.
19309568Sglebius
20309568SglebiusPlease submit changes against either the latest release in
21309568Sglebius<ftp://ftp.iana.org/tz/> or the master branch of the experimental
22309568SglebiusGit repository.  If you use Git the following workflow may be helpful:
23309568Sglebius
24309568Sglebius  * Copy the experimental repository.
25309568Sglebius
26309568Sglebius      git clone https://github.com/eggert/tz.git
27309568Sglebius      cd tz
28309568Sglebius
29309568Sglebius  * Get current with the master branch.
30309568Sglebius
31309568Sglebius      git checkout master
32309568Sglebius      git pull
33309568Sglebius
34309568Sglebius  * Switch to a new branch for the changes.  Choose a different
35309568Sglebius    branch name for each change set.
36309568Sglebius
37309568Sglebius      git checkout -b mybranch
38309568Sglebius
39309568Sglebius  * Edit source files.  Include commentary that justifies the
40309568Sglebius    changes by citing reliable sources.
41309568Sglebius
42309568Sglebius  * Debug the changes, e.g.:
43309568Sglebius
44309568Sglebius      make check
45309568Sglebius      make install
46309568Sglebius      ./zdump -v America/Los_Angeles
47309568Sglebius
48309568Sglebius  * For each separable change, commit it in the new branch, e.g.:
49309568Sglebius
50309568Sglebius      git add northamerica
51309568Sglebius      git commit
52309568Sglebius
53309568Sglebius    See recent 'git log' output for the commit-message style.
54309568Sglebius
55309568Sglebius  * Create patch files 0001-*, 0002-*, ...
56309568Sglebius
57309568Sglebius      git format-patch master
58309568Sglebius
59309568Sglebius  * After reviewing the patch files, send the patches to tz@iana.org
60309568Sglebius    for others to review.
61309568Sglebius
62309568Sglebius      git send-email master
63309568Sglebius
64309568Sglebius  * Start anew by getting current with the master branch again
65309568Sglebius    (the second step above).
66309568Sglebius
67309568SglebiusPlease do not create issues or pull requests on GitHub, as the
68309568Sglebiusproper procedure for proposing and distributing patches is via
69309568Sglebiusemail as illustrated above.
70309568Sglebius
71309568Sglebius-----
72309568Sglebius
73309568SglebiusThis file is in the public domain.
74