1# CONTRIBUTING 2 3Thank you for considering contributing to this distribution. This file 4contains instructions that will help you work with the source code. 5 6Please note that if you have any questions or difficulties, you can reach the 7maintainer(s) through the bug queue described later in this document 8(preferred), or by emailing the releaser directly. You are not required to 9follow any of the steps in this document to submit a patch or bug report; 10these are just recommendations, intended to help you (and help us help you 11faster). 12 13The distribution is managed with 14[Dist::Zilla](https://metacpan.org/release/Dist-Zilla). 15 16However, you can still compile and test the code with the 17`Makefile.PL` 18in the repository: 19 20 perl Makefile.PL 21 make 22 make test 23 24 25You may need to satisfy some dependencies. The easiest way to satisfy 26dependencies is to install the last release. This is available at 27https://metacpan.org/release/DateTime-TimeZone 28 29You can use [`cpanminus`](https://metacpan.org/pod/App::cpanminus) to do this 30without downloading the tarball first: 31 32 $> cpanm --reinstall --installdeps --with-recommends DateTime::TimeZone 33 34[`Dist::Zilla`](https://metacpan.org/pod/Dist::Zilla) is a very powerful 35authoring tool, but requires a number of author-specific plugins. If you would 36like to use it for contributing, install it from CPAN, then the following 37command to install the needed distros: 38 39 $> dzil authordeps --missing | cpanm 40 41There may also be additional requirements not needed by the dzil build which 42are needed for tests or other development: 43 44 $> dzil listdeps --author --missing | cpanm 45 46Or, you can use the 'dzil stale' command to install all requirements at once: 47 48 $> cpanm Dist::Zilla::App::Command::stale 49 $> dzil stale --all | cpanm 50 51You can also do this via cpanm directly: 52 53 $> cpanm --reinstall --installdeps --with-develop --with-recommends DateTime::TimeZone 54 55Once installed, here are some dzil commands you might try: 56 57 $> dzil build 58 $> dzil test 59 $> dzil test --release 60 $> dzil xtest 61 $> dzil listdeps --json 62 $> dzil build --notgz 63 64You can learn more about Dist::Zilla at http://dzil.org/. 65 66The code for this distribution is [hosted on GitHub](https://github.com/houseabsolute/DateTime-TimeZone). 67 68You can submit code changes by forking the repository, pushing your code 69changes to your clone, and then submitting a pull request. Please update the 70Changes file with a user-facing description of your changes as part of your 71work. See the GitHub documentation for [detailed instructions on pull 72requests](https://help.github.com/articles/creating-a-pull-request) 73 74If you have found a bug, but do not have an accompanying patch to fix it, you 75can submit an issue report [via the web](https://github.com/houseabsolute/DateTime-TimeZone/issues). 76 77## Continuous Integration 78 79All pull requests for this distribution will be automatically tested using 80[Azure Pipelines](https://dev.azure.com/houseabsolute/houseabsolute/_build). 81 82All CI results will be visible in the pull request on GitHub. Follow the 83appropriate links for details when tests fail. PRs cannot be merged until tests 84pass. 85 86## Precious 87 88This distribution uses [precious](https://github.com/houseabsolute/precious) 89to enforce a uniform coding style. This is tested as part of the author 90testing suite. You can install this and any other necessary non-Perl tools by 91running `./dev-bin/install-xt-tools.sh`. 92 93Then you can use `precious` to tidy and lint your code: 94 95 $> precious tidy -a 96 $> precious lint -a 97 98Please run `precious tidy -a` and `precious lint -a` before committing your 99changes and address any issues that it reports. 100 101You can also set up a git pre-commit hook that checks all changed files for 102linting issues by running `./git/setup.pl`. 103 104## Contributor Names 105 106If you send a patch or pull request, your name and email address will be 107included in the documentation as a contributor (using the attribution on the 108commit or patch), unless you specifically request for it not to be. If you 109wish to be listed under a different name or address, you should submit a pull 110request to the `.mailmap` file to contain the correct mapping. 111 112## Generated By 113 114This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.015 from a 115template file originating in Dist-Zilla-PluginBundle-DROLSKY-1.20. 116