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