CONTRIBUTING revision 309577
1309577SglebiusContributing to the tz code and data
2309577Sglebius
3309577SglebiusThe time zone database is by no means authoritative: governments
4309577Sglebiuschange timekeeping rules erratically and sometimes with little
5309577Sglebiuswarning, the data entries do not cover all of civil time before
6309577Sglebius1970, and undoubtedly errors remain in the code and data.  Feel
7309577Sglebiusfree to fill gaps or fix mistakes, and please email improvements
8309577Sglebiusto tz@iana.org for use in the future.
9309577Sglebius
10309577SglebiusTo email small changes, please run a POSIX shell command like
11309577Sglebius'diff -u old/europe new/europe >myfix.patch', and attach
12309577Sglebiusmyfix.patch to the email.
13309577Sglebius
14309577SglebiusFor more-elaborate changes, please read the Theory file and browse
15309577Sglebiusthe mailing list archives <http://mm.icann.org/pipermail/tz/> for
16309577Sglebiusexamples of patches that tend to work well.  Ideally, additions to
17309577Sglebiusdata should contain commentary citing reliable sources as
18309577Sglebiusjustification.
19309577Sglebius
20309577SglebiusPlease submit changes against either the latest release in
21309577Sglebius<ftp://ftp.iana.org/tz/> or the master branch of the experimental
22309577SglebiusGit repository.  If you use Git the following workflow may be helpful:
23309577Sglebius
24309577Sglebius  * Copy the experimental repository.
25309577Sglebius
26309577Sglebius      git clone https://github.com/eggert/tz.git
27309577Sglebius      cd tz
28309577Sglebius
29309577Sglebius  * Get current with the master branch.
30309577Sglebius
31309577Sglebius      git checkout master
32309577Sglebius      git pull
33309577Sglebius
34309577Sglebius  * Switch to a new branch for the changes.  Choose a different
35309577Sglebius    branch name for each change set.
36309577Sglebius
37309577Sglebius      git checkout -b mybranch
38309577Sglebius
39309577Sglebius  * Edit source files.  Include commentary that justifies the
40309577Sglebius    changes by citing reliable sources.
41309577Sglebius
42309577Sglebius  * Debug the changes, e.g.:
43309577Sglebius
44309577Sglebius      make check
45309577Sglebius      make install
46309577Sglebius      ./zdump -v America/Los_Angeles
47309577Sglebius
48309577Sglebius  * For each separable change, commit it in the new branch, e.g.:
49309577Sglebius
50309577Sglebius      git add northamerica
51309577Sglebius      git commit
52309577Sglebius
53309577Sglebius    See recent 'git log' output for the commit-message style.
54309577Sglebius
55309577Sglebius  * Create patch files 0001-*, 0002-*, ...
56309577Sglebius
57309577Sglebius      git format-patch master
58309577Sglebius
59309577Sglebius  * After reviewing the patch files, send the patches to tz@iana.org
60309577Sglebius    for others to review.
61309577Sglebius
62309577Sglebius      git send-email master
63309577Sglebius
64309577Sglebius  * Start anew by getting current with the master branch again
65309577Sglebius    (the second step above).
66309577Sglebius
67309577SglebiusPlease do not create issues or pull requests on GitHub, as the
68309577Sglebiusproper procedure for proposing and distributing patches is via
69309577Sglebiusemail as illustrated above.
70309577Sglebius
71309577Sglebius-----
72309577Sglebius
73309577SglebiusThis file is in the public domain.
74