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