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 8325322Sgordonto tz@iana.org for use in the future. In your email, please give 9325322Sgordonreliable sources that reviewers can check. 10309577Sglebius 11325322Sgordon----- 12325322Sgordon 13325322SgordonDevelopers can contribute technical changes to the source code and 14325322Sgordondata as follows. 15325322Sgordon 16309577SglebiusTo email small changes, please run a POSIX shell command like 17309577Sglebius'diff -u old/europe new/europe >myfix.patch', and attach 18309577Sglebiusmyfix.patch to the email. 19309577Sglebius 20325322SgordonFor more-elaborate changes, please read the theory.html file and browse 21325322Sgordonthe mailing list archives <https://mm.icann.org/pipermail/tz/> for 22325322Sgordonexamples of patches that tend to work well. Additions to 23309577Sglebiusdata should contain commentary citing reliable sources as 24325322Sgordonjustification. Citations should use https: URLs if available. 25309577Sglebius 26309577SglebiusPlease submit changes against either the latest release in 27325322Sgordon<https://www.iana.org/time-zones> or the master branch of the development 28331986Sgordonrepository. The latter is preferred. If you use Git the following 29331986Sgordonworkflow may be helpful: 30309577Sglebius 31325322Sgordon * Copy the development repository. 32309577Sglebius 33309577Sglebius git clone https://github.com/eggert/tz.git 34309577Sglebius cd tz 35309577Sglebius 36309577Sglebius * Get current with the master branch. 37309577Sglebius 38309577Sglebius git checkout master 39309577Sglebius git pull 40309577Sglebius 41309577Sglebius * Switch to a new branch for the changes. Choose a different 42309577Sglebius branch name for each change set. 43309577Sglebius 44309577Sglebius git checkout -b mybranch 45309577Sglebius 46331986Sgordon * Sleuth by using 'git blame'. For example, when fixing data for 47331986Sgordon Africa/Sao_Tome, if the command 'git blame africa' outputs a line 48331986Sgordon '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone 49331986Sgordon Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should 50331986Sgordon provide some justification for the 'Zone Africa/Sao_Tome' line. 51331986Sgordon 52309577Sglebius * Edit source files. Include commentary that justifies the 53309577Sglebius changes by citing reliable sources. 54309577Sglebius 55309577Sglebius * Debug the changes, e.g.: 56309577Sglebius 57309577Sglebius make check 58309577Sglebius make install 59309577Sglebius ./zdump -v America/Los_Angeles 60309577Sglebius 61309577Sglebius * For each separable change, commit it in the new branch, e.g.: 62309577Sglebius 63309577Sglebius git add northamerica 64309577Sglebius git commit 65309577Sglebius 66309577Sglebius See recent 'git log' output for the commit-message style. 67309577Sglebius 68309577Sglebius * Create patch files 0001-*, 0002-*, ... 69309577Sglebius 70309577Sglebius git format-patch master 71309577Sglebius 72309577Sglebius * After reviewing the patch files, send the patches to tz@iana.org 73309577Sglebius for others to review. 74309577Sglebius 75309577Sglebius git send-email master 76309577Sglebius 77331986Sgordon For an archived example of such an email, see 78331986Sgordon <https://mm.icann.org/pipermail/tz/2018-February/026122.html>. 79331986Sgordon 80309577Sglebius * Start anew by getting current with the master branch again 81309577Sglebius (the second step above). 82309577Sglebius 83309577SglebiusPlease do not create issues or pull requests on GitHub, as the 84309577Sglebiusproper procedure for proposing and distributing patches is via 85309577Sglebiusemail as illustrated above. 86309577Sglebius 87309577Sglebius----- 88309577Sglebius 89309577SglebiusThis file is in the public domain. 90