CONTRIBUTING revision 1.1
11.1SchristosContributing to the tz code and data 21.1Schristos 31.1SchristosThe time zone database is by no means authoritative: governments 41.1Schristoschange timekeeping rules erratically and sometimes with little 51.1Schristoswarning, the data entries do not cover all of civil time before 61.1Schristos1970, and undoubtedly errors remain in the code and data. Feel 71.1Schristosfree to fill gaps or fix mistakes, and please email improvements 81.1Schristosto tz@iana.org for use in the future. 91.1Schristos 101.1SchristosTo email small changes, please run a POSIX shell command like 111.1Schristos'diff -u old/europe new/europe >myfix.patch', and attach 121.1Schristosmyfix.patch to the email. 131.1Schristos 141.1SchristosFor more-elaborate changes, please read the Theory file and browse 151.1Schristosthe mailing list archives <http://mm.icann.org/pipermail/tz/> for 161.1Schristosexamples of patches that tend to work well. Ideally, additions to 171.1Schristosdata should contain commentary citing reliable sources as 181.1Schristosjustification. 191.1Schristos 201.1SchristosPlease submit changes against either the latest release in 211.1Schristos<ftp://ftp.iana.org/tz/> or the master branch of the experimental 221.1SchristosGit repository. If you use Git the following workflow may be helpful: 231.1Schristos 241.1Schristos * Copy the experimental repository. 251.1Schristos 261.1Schristos git clone https://github.com/eggert/tz.git 271.1Schristos cd tz 281.1Schristos 291.1Schristos * Get current with the master branch. 301.1Schristos 311.1Schristos git checkout master 321.1Schristos git pull 331.1Schristos 341.1Schristos * Switch to a new branch for the changes. Choose a different 351.1Schristos branch name for each change set. 361.1Schristos 371.1Schristos git checkout -b mybranch 381.1Schristos 391.1Schristos * Edit source files. Include commentary that justifies the 401.1Schristos changes by citing reliable sources. 411.1Schristos 421.1Schristos * Debug the changes, e.g.: 431.1Schristos 441.1Schristos make check 451.1Schristos make install 461.1Schristos ./zdump -v America/Los_Angeles 471.1Schristos 481.1Schristos * For each separable change, commit it in the new branch, e.g.: 491.1Schristos 501.1Schristos git add northamerica 511.1Schristos git commit 521.1Schristos 531.1Schristos See recent 'git log' output for the commit-message style. 541.1Schristos 551.1Schristos * Create patch files 0001-*, 0002-*, ... 561.1Schristos 571.1Schristos git format-patch master 581.1Schristos 591.1Schristos * After reviewing the patch files, send the patches to tz@iana.org 601.1Schristos for others to review. 611.1Schristos 621.1Schristos git send-email master 631.1Schristos 641.1Schristos * Start anew by getting current with the master branch again 651.1Schristos (the second step above). 661.1Schristos 671.1SchristosPlease do not create issues or pull requests on GitHub, as the 681.1Schristosproper procedure for proposing and distributing patches is via 691.1Schristosemail as illustrated above. 70