CONTRIBUTING revision 1.2 1 1.1 christos Contributing to the tz code and data
2 1.1 christos
3 1.1 christos The time zone database is by no means authoritative: governments
4 1.1 christos change timekeeping rules erratically and sometimes with little
5 1.1 christos warning, the data entries do not cover all of civil time before
6 1.1 christos 1970, and undoubtedly errors remain in the code and data. Feel
7 1.1 christos free to fill gaps or fix mistakes, and please email improvements
8 1.1 christos to tz (a] iana.org for use in the future.
9 1.1 christos
10 1.1 christos To email small changes, please run a POSIX shell command like
11 1.1 christos 'diff -u old/europe new/europe >myfix.patch', and attach
12 1.1 christos myfix.patch to the email.
13 1.1 christos
14 1.1 christos For more-elaborate changes, please read the Theory file and browse
15 1.1 christos the mailing list archives <http://mm.icann.org/pipermail/tz/> for
16 1.1 christos examples of patches that tend to work well. Ideally, additions to
17 1.1 christos data should contain commentary citing reliable sources as
18 1.1 christos justification.
19 1.1 christos
20 1.1 christos Please submit changes against either the latest release in
21 1.2 christos <ftp://ftp.iana.org/tz/> or the master branch of the development
22 1.2 christos repository. If you use Git the following workflow may be helpful:
23 1.1 christos
24 1.2 christos * Copy the development repository.
25 1.1 christos
26 1.1 christos git clone https://github.com/eggert/tz.git
27 1.1 christos cd tz
28 1.1 christos
29 1.1 christos * Get current with the master branch.
30 1.1 christos
31 1.1 christos git checkout master
32 1.1 christos git pull
33 1.1 christos
34 1.1 christos * Switch to a new branch for the changes. Choose a different
35 1.1 christos branch name for each change set.
36 1.1 christos
37 1.1 christos git checkout -b mybranch
38 1.1 christos
39 1.1 christos * Edit source files. Include commentary that justifies the
40 1.1 christos changes by citing reliable sources.
41 1.1 christos
42 1.1 christos * Debug the changes, e.g.:
43 1.1 christos
44 1.1 christos make check
45 1.1 christos make install
46 1.1 christos ./zdump -v America/Los_Angeles
47 1.1 christos
48 1.1 christos * For each separable change, commit it in the new branch, e.g.:
49 1.1 christos
50 1.1 christos git add northamerica
51 1.1 christos git commit
52 1.1 christos
53 1.1 christos See recent 'git log' output for the commit-message style.
54 1.1 christos
55 1.1 christos * Create patch files 0001-*, 0002-*, ...
56 1.1 christos
57 1.1 christos git format-patch master
58 1.1 christos
59 1.1 christos * After reviewing the patch files, send the patches to tz (a] iana.org
60 1.1 christos for others to review.
61 1.1 christos
62 1.1 christos git send-email master
63 1.1 christos
64 1.1 christos * Start anew by getting current with the master branch again
65 1.1 christos (the second step above).
66 1.1 christos
67 1.1 christos Please do not create issues or pull requests on GitHub, as the
68 1.1 christos proper procedure for proposing and distributing patches is via
69 1.1 christos email as illustrated above.
70