Dist-Zilla-Plugin-Git-2.046/000700 000766 000024 00000000000 13443320014 015711 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/AUTHOR_PLEDGE000644 000766 000024 00000001051 13443320014 017665 0ustar00etherstaff000000 000000 # CPAN Covenant for Dist-Zilla-Plugin-Git I, Jerome Quelin, hereby give modules@perl.org permission to grant co-maintainership to Dist-Zilla-Plugin-Git, if all the following conditions are met: (1) I haven't released the module for a year or more (2) There are outstanding issues in the module's public bug tracker (3) Email to my CPAN email address hasn't been answered after a month (4) The requester wants to make worthwhile changes that will benefit CPAN In the event of my death, then the time-limits in (1) and (3) do not apply. Dist-Zilla-Plugin-Git-2.046/Changes000600 000766 000024 00000046302 13443320014 017213 0ustar00etherstaff000000 000000 Revision history for Dist::Zilla::Plugin::Git 2.046 2019-03-17 01:16:52Z - added %V format code for the version number with the leading 'v' stripped off, if it exists. - changed the default format strings to use 'v%V' rather than 'v%v' for better compatibility with v1.2.3 form version numbers. - convert from MooseX::Types to Types::Standard 2.045 2018-06-03 19:28:19Z - fix possible failure in 2.044: zilla->root is not a Path::Tiny with older Dist::Zilla versions 2.044 2018-06-03 01:37:38Z - fix for Dist::Zilla 7: ensure that the proper directory is used as the base for the repo root and .gitnxtver_cache. 2.043 2017-12-10 00:49:29Z - replace uses of File::HomeDir with a simple glob() 2.042 2017-05-12 16:29:18Z - remove spaces from config data dumped to META, which parses badly on older YAML decoders in the toolchain 2.041 2016-11-16 03:36:23Z - log the git version *properly* into metadata (thanks so much to Dan Book for noticing so quickly!) 2.040 2016-11-16 03:23:50Z - fix tests to no longer rely on . being in @INC - update tests to remove all uses of Test::Fatal::lives_ok - the git version used during the packaging is now logged into the metadata for the built distribution 2.039 2016-05-25 04:17:42Z - no changes since last release 2.038 2016-04-28 04:15:25Z (TRIAL RELEASE) - fix Makefile.PL for when git is not installed or too old 2.037 2016-04-24 23:14:59Z (TRIAL RELEASE) - remove remaining uses of List::MoreUtils (Karen Etheridge) - remove last vestiges of Path::Class, for Dist::Zilla v6 compatibility 2.036 2015-07-04 19:11:06+0200 Europe/Paris - keep dumped configs consistent between builds (Karen Etheridge - github#25) - use MooseX::Types in all modules (Karen Etheridge - github#25) 2.035 2015-06-06 21:50:20+0200 Europe/Paris - handle push.default=nothing by specifying current branch explicitly (christopher madsen, reported by Alastair McGowan-Douglas - github#24) 2.034 2015-05-23 17:41:32+0200 Europe/Paris - replace List::AllUtils with List::MoreUtils (christopher madsen) - don't "use List::MoreUtils" in tests (Karen Etheridge - github#23) 2.033 2015-04-04 21:05:13+0200 Europe/Paris - no functional changes (but note Git::GatherDir change in 2.032-TRIAL) - rewrite documentation to make it clear which plugins are part of @Git (christopher madsen, reported by Kent Fredric - RT#101911) 2.032 2015-03-28 21:38:59+0100 Europe/Paris (TRIAL RELEASE) - rewrite Git::GatherDir to handle non-default root properly. It now supports "~user/" as well as "~/". (christopher madsen, reported by Karen Etheridge - RT#101851) - clear GPG_* environment variables to make tests more robust (christopher madsen) 2.031 2015-03-21 21:56:38+0100 Europe/Paris - no functional changes - tests that check Git version parse versions like 1.9.5.msysgit.0 correctly 2.030 2015-02-28 20:43:24+0100 Europe/Paris - no functional changes - make tests more robust by setting GIT_CONFIG_NOSYSTEM (christopher madsen, reported by Dylan Cali - RT#102287) 2.029 2014-12-21 22:23:24+0100 Europe/Paris - don't "use Moose::Autobox" (Dist::Zilla doesn't use it anymore) (Karen Etheridge - github#22) 2.028 2014-11-30 05:48:59+0100 Europe/Paris - no functional changes - make tests more robust when GIT_* environment variables are set (christopher madsen) 2.027 2014-11-29 21:09:02+0100 Europe/Paris - unify string formatting code into Dist::Zilla::Role::Git::StringFormatter This allows you to use %c (the changelog entry) with Git::Tag. (christopher madsen, suggested by Doug Bell - RT#99990) 2.026 2014-11-22 17:35:45+0100 Europe/Paris - don't "use MooseX::AttributeShortcuts" (wasn't actually using its features) (christopher madsen, suggested by Karen Etheridge - RT#100498) 2.025 2014-10-11 19:05:56 Europe/Paris - add build_warnings option to Git::Check (christopher madsen, suggested by Karen Etheridge - RT#91057) 2.024 2014-09-13 21:21:42 Europe/Paris - add branch option to Git::Init (tuomas jormola - github#21) - Git::Init now logs when it makes the initial commit 2.023 2014-06-14 18:32:30 Europe/Paris - no functional changes - warn that Dist::Zilla::App::CommandHelper::ChainSmoking <= 1.04 is broken (Karen Etheridge - github#20) 2.022 2014-04-19 20:29:22 Europe/Paris - use MX:Path::Tiny Paths type to catch config issues at startup (Kent fredric - github#18 & christopher madsen) - prune files using the prune_file method (Karen Etheridge - github#19) 2.021 2014-04-12 06:01:53 Europe/Paris - add support for MetaConfig (Karen Etheridge - github#17) - fix tests to work on Windows (christopher madsen) 2.020 2014-02-15 20:22:29 Europe/Paris - convert from Path::Class to Path::Tiny (Kent fredric - github#16) - better documentation for allow_dirty_match (christopher madsen, requested by Karen Etheridge) 2.019 2013-11-23 20:49:27 Europe/Paris - fix #90537: wide character in print with ::Commit With Dist::Zilla 5, Git::Commit now writes the commit message in UTF-8 (christopher madsen, reported by Kent fredric) 2.018 2013-11-02 23:24:33 Europe/Paris (TRIAL RELEASE) - use the Config::Git plugin for shared configuration (brendan byrd) You don't have to use Dist::Zilla::Plugin::Config::Git unless you want to, but you do have to install it. 2.017 2013-10-26 19:57:59 Europe/Paris - remove use of deprecated Class::MOP function (Karen Etheridge) - make Git::CommitBuild compatible with Dist::Zilla 5 (Kent fredric, Karen Etheridge, & christopher madsen) 2.016 2013-10-19 18:27:32 Europe/Paris - fix exclude_filename to not match partial paths (Karen Etheridge) If you really intended to match a partial path, use exclude_match instead. - documentation typo fixed in Git::NextVersion (David Steinbrunner) 2.015 2013-07-06 21:14:09 Europe/Paris - bail out of Build.PL unless git 1.5.4 or later is found (christopher madsen) - prevent warnings about chdir(undef) in tests (christopher madsen) 2.014 2013-06-22 17:50:26 Europe/Paris - fix RT#86251 - version-by-branch.t fails with Git 1.8.3 The output of "git rev-list" changed slightly, and this broke Git::NextVersion when using version_by_branch=1. (christopher madsen, reported by zak elep) 2.013 2013-04-13 20:25:39 Europe/Paris - fix RT#84491 - Git::GatherDir does not handle symlinks Symlinks to directories used to make it crash with a cryptic error. It now skips them with a warning, and this is documented. (christopher madsen, reported by Karen Etheridge) - mention Git::GatherDir in Git (christopher madsen, reported by kevin dawson) 2.012 2013-03-27 00:41:08 Europe/Paris - add commit option to Git::Init (tatsuhiko miyagawa) 2.011 2013-03-23 16:19:52 Europe/Paris - fix compatibility with Git::Wrapper 0.028_96 (Don't pass Path::Class objects to Git::Wrapper) (christopher madsen) 2.010 2013-03-16 16:34:22 Europe/Paris - fix RT#83891 - Git::CommitBuild commits non-build files Git::CommitBuild now writes a fresh copy of the built tree to commit, instead of using one that may have been modified by other plugins (Kent fredric & christopher madsen) 2.009 2013-02-08 06:03:33 Europe/Paris - add allow_dirty_match option to Git::Check and Git::Commit (Graham Knop) - change version-by-branch.t to use HEAD~1 instead of HEAD^ Should fix test failure on Windows. (christopher madsen) - Test::Fatal 0.006 or better has been required since 2.007, but that wasn't explicit (christopher madsen, reported by Jonathan Leto) 2.008 2013-01-31 04:06:00 Europe/Paris - fix bug introduced in Git::Push 2.007 that broke remotes with additional parameters (christopher madsen) 2.007 2013-01-26 18:51:24 Europe/Paris - fix RT#82873 - Git::Push should check the remote exists New remotes_must_exist option defaults to true. (christopher madsen, suggested by Olivier Mengué) - switch from Test::Exception to Test::Fatal (christopher madsen) - load some dependencies only when needed (RT#82956) (christopher madsen, suggested by Olivier Mengué) 2.006 2012-12-29 23:17:39 Europe/Paris - document that the include_untracked option of Git::GatherDir requires Git 1.5.4, but has certain issues before Git 1.6.5.2. Adjust tests to skip when necessary. (christopher madsen) - set push.default matching in test config (christopher madsen) Otherwise Git for Windows 1.8.0 hangs in push-multi.t (thanks to christian walde for reporting the issue) 2.005 2012-12-08 22:03:15 Europe/Paris - avoid creating named type constraints (Chris Weyl & christopher madsen) 2.004 2012-12-01 19:58:59 Europe/Paris - improve Git::Commit's parsing of the Changes file (christopher madsen) Blank lines following the version line are no longer included in the commit message. It can now find the current version even if followed by a -TRIAL indicator. It now reads the Changes file that was shipped with the dist, not the one currently on disk. - fix include_untracked option of Git::GatherDir to work with Git 1.5.4.3 (christopher madsen) 2.003 2012-11-19 01:30:29 Europe/Paris - add multiple_inheritance option to Git::CommitBuild (Yanick Champoux) - change version-extraction.t to catch the bug in RT#81061 (christopher madsen with help from Matthew Horsfall) 2.002 2012-11-09 20:59:37 Europe/Paris - fix RT#81061 - Git::NextVersion parsing all versions as 0 (christopher madsen) - add debug-level logging to Git::NextVersion (christopher madsen) 2.001 2012-10-07 23:03:42 Europe/Paris - fix tests to work on Perl 5.12 and older (christopher madsen) 2.000 2012-10-07 06:33:29 Europe/Paris - Despite the version number, this is *not* a major release, just a new numbering scheme. Git::NextVersion now generates the version number. - fix tests to work on windows (christopher madsen) - add t::Util to consolidate common test functions (christopher madsen) 1.122770 2012-10-03 04:28:36 Europe/Paris - fix RT#76703 - add version_by_branch option to Git::NextVersion (christopher madsen) - Git::NextVersion now aborts release if version is duplicated (christopher madsen) - add include_untracked option to Git::GatherDir (christopher madsen) - add untracked_files option to Git::Check (christopher madsen) - Dist::Zilla::Role::Git::Repo now provides the git method (christopher madsen) 1.122530 2012-09-09 03:56:01 Europe/Paris - Git::CommitBuild requires Path::Class 0.22 to get dir->basename (christopher madsen) - Git::GatherDir requires Dist::Zilla 4.200016 to get exclude_filename and exclude_match in GatherDir (christopher madsen) - fix tests to use "git add -f" instead of "git add --force" for compatibility with older versions of Git (christopher madsen) - add 000-report-git-version.t for debugging (christopher madsen) 1.122460 2012-09-02 02:35:25 Europe/Paris - fix RT#78898 - allow_dirty should not be a regex (christopher madsen) This was an unintended side-effect of the fix for gh#19 in 1.113220 add tests to check.t so it doesn't recur 1.121820 2012-06-30 05:36:52 Europe/Paris - require File::Path 2.07 to get make_path (thanks for failing reports, CPAN Testers!) 1.121811 2012-06-29 17:25:42 Europe/Paris - fix an interpolation error that broke CommitBuild 1.121810 2012-06-29 03:01:01 Europe/Paris - uniq the list of files returned by `git ls-files` 1.121800 2012-06-28 04:03:06 Europe/Paris - Require a newer Git::Wrapper for better portability 1.121770 2012-06-25 16:47:30 Europe/Paris - CommitBuild: add missing module 1.121750 2012-06-23 19:03:47 Europe/Paris - CommitBuild: Add build to git directly, bypassing the index (chris weyl) 1.121010 2012-04-10 16:47:39 Europe/Paris - updated Git::GatherDir plugin to support everything DZ's own GatherDir does 1.120970 2012-04-06 08:56:03 Europe/Paris - new plugin GatherDir (geoffrey broadwell, ricardo signes) 1.120860 2012-03-26 12:18:38 Europe/Paris - fix tag-signed.t test on windows (Olivier Mengué) 1.120370 2012-02-06 09:32:58 Europe/Paris - split version-tags finding logic into own attribute (chris weyl) 1.113560 2011-12-22 09:47:39 Europe/Paris - make test pass with Archive::Tar:Wrapper (Randy Stauner) - clean up commit message (Randy Stauner) 1.113220 2011-11-18 09:12:51 Europe/Paris - fix gh#19 - allow to specify alternate repository root (Mike Friedman) 1.112510 2011-09-08 13:45:01 Europe/Paris - fix RT#70805 - remove unneeded tmp directory in tarball 1.112500 2011-09-07 08:49:06 Europe/Paris - fix RT#70742 - tests fail if gpg isn't installed (Mike Doherty) 1.112440 2011-09-01 13:26:02 Europe/Paris - fix gh#16 - unset git env variables for tag_signed.t 1.112380 2011-08-26 10:41:50 Europe/Paris - fix RT##55647 - support signed tags (Mike Doherty) - moved all test corpus to corpus/ - renamed tests to remove leading number 1.112070 2011-07-26 08:46:42 Europe/Paris - fix gh#13 - supplying default git config 1.112060 2011-07-25 10:25:29 Europe/Paris - fix RT#66705 - localization of HOME in tests - fix RT#69616 & RT#69701 - make dzp-git work with Git::Wrapper 0.015 1.111590 2011-06-08 09:43:35 Europe/Paris - mocks HOME to avoid test failures (David Golden) 1.111460 2011-05-26 14:37:08 Europe/Paris - fix RT#68474 - Git::NextVersion assumes all tags are version-related (rob@hoelz.ro) 1.110500 2011-02-19 12:43:19 Europe/Paris - add 'add_files_in' to Commit so you can commit an entire dir (Apocalypse) If you need the same concept for Check please let us know! 1.110480 2011-02-17 18:03:06 Europe/Paris - CommitBuild support for release_message (nigel metheringham) - Also supports %v & %t format tags, more appropriate for message on commit build of the released package (nigel metheringham) 1.110330 2011-02-02 10:36:33 Europe/Paris - fix RT#62484 - add a link to Git::NextVersion in main documentation 1.103520 2010-12-18 09:45:57 Europe/Paris - fix Commit so %t actually works (christopher madsen) 1.103500 2010-12-16 11:44:32 Europe/Paris - add config & remote options to Init (christopher madsen) 1.103470 2010-12-13 17:32:36 Europe/Paris - add time_zone option to Tag & Commit (christopher madsen) It now defaults to your local time. Previous versions always used UTC. - Tag & Commit accept %t to indicate trial release status (christopher madsen) - NextVersion resets $/ to guard against misbehaving plugins (alan young) 1.102810 2010-10-08 18:01:32 Europe/Paris - add Git::NextVersion adapted from BumpVersionFromGit (daGolden) 1.102430 2010-08-31 17:12:24 Europe/Paris - fix RT#60740 - allow retrieval of applied tag in git (Matt Follett) 1.102380 2010-08-26 09:39:33 Europe/Paris - fix hang on windows (alexandr ciornii) 1.102090 2010-07-28 14:12:20 Europe/Paris - initialize a working git config in all tests 1.102040 2010-07-23 10:45:23 Europe/Paris - fix RT#59587 - cache buildroot to commit on master, not release branch (yanick champoux) 1.102020 2010-07-21 09:00:46 Europe/Paris - fix RT#59586 - there should be no release branch by default for Git::CommitBuild warning: this changes behaviour of Git::CommitBuild 1.102010 2010-07-20 11:00:36 Europe/Paris - fix RT#59505 - support for unstable git versions in push test skips 1.101801 2010-06-29 19:00:13 Europe/Paris - fix RT#56485 - skip push tests for old git versions 1.101800 2010-06-29 18:36:17 Europe/Paris - Git::CommitBuild - new release_branch option to commit result after a release (yanick champoux) - Git::Tag - tag can be applied to a different branch (yanick champoux) - fix RT#58876 - pod description out of date 1.101680 2010-06-17 17:17:07 Europe/Paris - fix RT#58431 - remove Git.pm prereq, use Git::Wrapper (yanick champoux) 1.101650 2010-06-14 16:08:41 Europe/Paris - basic aftermint plugin to git init while dzil new (jesse luehrs) - build commits have their original branch as parent (yanick champoux) 1.101330 2010-05-13 19:27:39 Europe/Paris - Git::Commit recognizes another changelog format (David Golden) 1.101270 2010-05-07 16:56:27 Europe/Paris - fix Brian's name in this file (sorry Brian!) - make CommitBuild log error when build commit fails (michael schout) 1.101230 2010-05-03 17:10:17 Europe/Paris - support for committing results of build in a separate branch (Brian Phillips) - fix test error appearing in weird git configs / setups 1.100970 2010-04-07 08:54:46 Europe/Paris - simplify multi-value args for @Git (christopher madsen) - Require Dist::Zilla 2 (1.100900 needed DZ2, but didn't say so) 1.100960 2010-04-06 16:59:50 Europe/Paris - allow pushing to a different branch (Graham Barr) - allow multi-value args for @git (Graham Barr) - switch to dist-zilla-tester framework for tests (Ricardo Signes) 1.100900 2010-03-31 10:04:49 Europe/Paris - use a method modifier to set mvp_multivalue_args in Role::Git::DirtyFiles (This is required by Dist::Zilla 2.) (christopher madsen) 1.100760 2010-03-17 10:16:56 Europe/Paris - add a BeforeRelease check in Tag to prevent re-releases (christopher madsen) - Commit and Push now pass Git's output to log_debug (christopher madsen) 1.100750 2010-03-16 16:25:56 Europe/Paris - actually use commit_msg (christopher madsen) - Push now logs before pushing (christopher madsen) 1.100741 2010-03-15 18:48:31 Europe/Paris - documentation fix for new push_to param 1.100740 2010-03-15 17:28:12 Europe/Paris - WARNING: parameter "filename" renamed to "changelog" - let commit message include whitespace to next unindented line (David Golden) - set up remote tracking branch during push testing (David Golden) - remove unnecessary 'filename' arg from Push (David Golden) - add 'push_to' argument to Push for multi-repo pushes (David Golden) - give back user possibility to create lightweight tag, default remains annotated tags (christopher madsen) - allow user to change commit message (christopher madsen) - allow user to specify files allowed to be dirty for check & commit (christopher madsen) - refactored allow_dirty in DZ:Role:Git:DirtyFiles (christopher madsen) 1.100690 2010-03-10 13:20:37 Europe/Paris - fix tests to work even when no global git config exists - refactored commit message generation (christopher madsen) 1.100681 2010-03-09 17:26:14 Europe/Paris - bumping minimum dzil version requirement 1.100680 2010-03-09 17:07:45 Europe/Paris - using annotated tags instead of lightweight tags (RT#55352) - minor pod update 1.100660 2010-03-07 13:41:39 Europe/Paris - fix tests to work with git 1.7.0 - fix tests to work with current Dist::Zilla (Ricardo Signes) - provide shorter plugin names to bundle contents (Ricardo Signes) 1.100430 2010-02-12 13:11:39 Europe/Paris - WARNING: no more Makefile.PL supplied, only a Build.PL - using Path::Class in the tests 1.093410 2009-12-07 09:13:07 Europe/Paris - require File::Path 2.07 for remove_tree 1.093300 2009-11-26 11:02:22 Europe/Paris - new param tag_format for DZP:Git:Tag (Ricardo Signes) 1.093260 2009-11-22 11:35:00 Europe/Paris - using internal release command instead of spawning external dzil 1.093250 2009-11-21 18:35:55 Europe/Paris - split plugin in DZP::Git::* (Check, Commit, Tag, Push) - providing a plugin bundle for all git plugins 1.093240 2009-11-20 18:36:28 Europe/Paris - original release - git checks before release: index clean, working copy too, no untracked files - git actions after release: commit changelog, tag, push Dist-Zilla-Plugin-Git-2.046/CONTRIBUTING000644 000766 000024 00000010407 13443320014 017557 0ustar00etherstaff000000 000000 CONTRIBUTING Thank you for considering contributing to this distribution. This file contains instructions that will help you work with the source code. PLEASE NOTE that if you have any questions or difficulties, you can reach the maintainer(s) through the bug queue described later in this document (preferred), or by emailing the releaser directly. You are not required to follow any of the steps in this document to submit a patch or bug report; these are just recommendations, intended to help you (and help us help you faster). This distribution has a TODO file in the repository; you may want to check there to see if your issue or patch idea is mentioned. The distribution is managed with Dist::Zilla (https://metacpan.org/release/Dist-Zilla). This means than many of the usual files you might expect are not in the repository, but are generated at release time (e.g. Makefile.PL). However, you can run tests directly using the 'prove' tool: $ prove -l $ prove -lv t/some_test_file.t $ prove -lvr t/ In most cases, 'prove' is entirely sufficient for you to test any patches you have. You may need to satisfy some dependencies. The easiest way to satisfy dependencies is to install the last release -- this is available at https://metacpan.org/release/Dist-Zilla-Plugin-Git If you use cpanminus, you can do it without downloading the tarball first: $ cpanm --reinstall --installdeps --with-recommends Dist::Zilla::Plugin::Git Dist::Zilla is a very powerful authoring tool, but requires a number of author-specific plugins. If you would like to use it for contributing, install it from CPAN, then run one of the following commands, depending on your CPAN client: $ cpan `dzil authordeps --missing` or $ dzil authordeps --missing | cpanm You should then also install any additional requirements not needed by the dzil build but may be needed by tests or other development: $ cpan `dzil listdeps --author --missing` or $ dzil listdeps --author --missing | cpanm Or, you can use the 'dzil stale' command to install all requirements at once: $ cpan Dist::Zilla::App::Command::stale $ cpan `dzil stale --all` or $ cpanm Dist::Zilla::App::Command::stale $ dzil stale --all | cpanm You can also do this via cpanm directly: $ cpanm --reinstall --installdeps --with-develop --with-recommends Dist::Zilla::Plugin::Git Once installed, here are some dzil commands you might try: $ dzil build $ dzil test $ dzil test --release $ dzil xtest $ dzil listdeps --json $ dzil build --notgz You can learn more about Dist::Zilla at http://dzil.org/. The code for this distribution is hosted at GitHub. The repository is: https://github.com/karenetheridge/Dist-Zilla-Plugin-Git You can submit code changes by forking the repository, pushing your code changes to your clone, and then submitting a pull request. Please include a suitable end-user-oriented entry in the Changes file describing your change. Detailed instructions for doing that is available here: https://help.github.com/articles/creating-a-pull-request All pull requests for this distribution will be automatically tested on Linux by Travis at: https://travis-ci.com/karenetheridge/Dist-Zilla-Plugin-Git Results will be visible in the pull request on GitHub. Follow the appropriate links for details when tests fail. Changes will not be mergeable until all tests pass. If you have found a bug, but do not have an accompanying patch to fix it, you can submit an issue report here: https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Git or via email: bug-Dist-Zilla-Plugin-Git@rt.cpan.org There is also a mailing list available for users of this distribution, at http://dzil.org/#mailing-list There is also an irc channel available for users of this distribution, at irc://irc.perl.org/#distzilla If you send me a patch or pull request, your name and email address will be included in the documentation as a contributor (using the attribution on the commit or patch), unless you specifically request for it not to be. If you wish to be listed under a different name or address, you should submit a pull request to the .mailmap file to contain the correct mapping. This file was generated via Dist::Zilla::Plugin::GenerateFile::FromShareDir 0.014 from a template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.147. Dist-Zilla-Plugin-Git-2.046/corpus/000700 000766 000024 00000000000 13443320014 017224 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/dist.ini000600 000766 000024 00000002425 13443320014 017362 0ustar00etherstaff000000 000000 ; be kind to Emacs users -*-conf-windows-*- name = Dist-Zilla-Plugin-Git author = Jerome Quelin license = Perl_5 copyright_holder = Jerome Quelin copyright_year = 2009 ; During development, you may want to comment out Bootstrap::lib. ; Otherwise, bugs in your new code can keep "dzil test" from running. [Bootstrap::lib] [@Author::ETHER] :version = 0.119 authority = cpan:JQUELIN Test::MinimumVersion.max_target_perl = 5.010 installer = none ; see below -remove = Test::NoTabs -remove = Test::PodSpelling -remove = Test::Pod::No404s ; git-scm.com thinks we are a bot +copy_file_from_release = AUTHOR_PLEDGE StaticInstall.dry_run = 0 ; authordep Types::Standard ; authordep Types::Path::Tiny [MakeMaker::Awesome] :version = 0.35 header_file = Makefile_git.PL [Prereqs / ConfigureRequires] version = 0 Text::ParseWords = 0 [Prereqs] Dist::Zilla = 2.100880 ; Need mvp_multivalue_args in Plugin role [Prepender] [Covenant] [Encoding] encoding = bytes match = ^corpus/ ; -- static meta-information [MetaResources] x_IRC = irc://irc.perl.org/#distzilla x_MailingList = http://dzil.org/#mailing-list [Breaks] Dist::Zilla::App::CommandHelper::ChainSmoking = <= 1.04 [Test::CheckBreaks] :version = 0.017 conflicts_module = Moose::Conflicts conflicts_module = Module::Runtime::Conflicts Dist-Zilla-Plugin-Git-2.046/INSTALL000644 000766 000024 00000004426 13443320014 016762 0ustar00etherstaff000000 000000 This is the Perl distribution Dist-Zilla-Plugin-Git. Installing Dist-Zilla-Plugin-Git is straightforward. ## Installation with cpanm If you have cpanm, you only need one line: % cpanm Dist::Zilla::Plugin::Git If it does not have permission to install modules to the current perl, cpanm will automatically set up and install to a local::lib in your home directory. See the local::lib documentation (https://metacpan.org/pod/local::lib) for details on enabling it in your environment. ## Installing with the CPAN shell Alternatively, if your CPAN shell is set up, you should just be able to do: % cpan Dist::Zilla::Plugin::Git ## Manual installation As a last resort, you can manually install it. Download the tarball, untar it, install configure prerequisites (see below), then build it: % perl Makefile.PL % make && make test Then install it: % make install On Windows platforms, you should use `dmake` or `nmake`, instead of `make`. If your perl is system-managed, you can create a local::lib in your home directory to install modules to. For details, see the local::lib documentation: https://metacpan.org/pod/local::lib The prerequisites of this distribution will also have to be installed manually. The prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated by running the manual build process described above. ## Configure Prerequisites This distribution requires other modules to be installed before this distribution's installer can be run. They can be found under the "configure_requires" key of META.yml or the "{prereqs}{configure}{requires}" key of META.json. ## Other Prerequisites This distribution may require additional modules to be installed after running Makefile.PL. Look for prerequisites in the following phases: * to run make, PHASE = build * to use the module code itself, PHASE = runtime * to run tests, PHASE = test They can all be found in the "PHASE_requires" key of MYMETA.yml or the "{prereqs}{PHASE}{requires}" key of MYMETA.json. ## Documentation Dist-Zilla-Plugin-Git documentation is available as POD. You can run `perldoc` from a shell to read the documentation: % perldoc Dist::Zilla::Plugin::Git For more information on installing Perl modules via CPAN, please see: https://www.cpan.org/modules/INSTALL.html Dist-Zilla-Plugin-Git-2.046/lib/000700 000766 000024 00000000000 13443320014 016457 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/LICENCE000644 000766 000024 00000043660 13443320014 016721 0ustar00etherstaff000000 000000 This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2009 by Jerome Quelin. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2009 by Jerome Quelin. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End Dist-Zilla-Plugin-Git-2.046/Makefile.PL000644 000766 000024 00000013526 13443320014 017704 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # This Makefile.PL for Dist-Zilla-Plugin-Git was generated by # Dist::Zilla::Plugin::MakeMaker::Awesome 0.47. # Don't edit it but the dist.ini and plugins used to construct it. use strict; use warnings; use 5.010; use ExtUtils::MakeMaker; # this section comes from Makefile.git.PL and is inserted into Makefile.PL # Git 1.5.4 introduced the --exclude-standard option to git ls-files, # which Git::Check needs to work properly. use version; my $need_version = version->parse('1.5.4'); eval { my $git_version = `git --version` or die "Unable to execute git\n"; $git_version =~ /git \s+ version \s* ( \d+ (?: \.\d+ )+ )( [-.]rc\d+)?/x or die "Unable to determine git version\n"; my $rc = $2 || ''; $git_version = version->parse("$1"); die "git $need_version or later required, you have $git_version$rc\n" if $git_version < $need_version or $git_version == $need_version and $rc; 1; } or do { print $@; if (parse_args()->{FORCE_INSTALL}) { print "FORCE_INSTALL specified, attempting to install anyway.\n"; } else { print <<"END MESSAGE"; \nDist::Zilla::Plugin::Git requires git $need_version or later in your PATH, and it wasn't found. If you want to install anyway, run PERL_MM_OPT=FORCE_INSTALL $^X Makefile.PL END MESSAGE exit 0; # Indicate missing non-Perl prerequisite } # end else not FORCE_INSTALL }; # end do when Git prerequisite is not met sub parse_args { require ExtUtils::MakeMaker; require Text::ParseWords; ExtUtils::MakeMaker::parse_args( my $tmp = {}, Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''), @ARGV, ); return $tmp->{ARGS} || {}; } my %WriteMakefileArgs = ( "ABSTRACT" => "Update your git repository after release", "AUTHOR" => "Jerome Quelin", "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0, "Text::ParseWords" => 0, "version" => 0 }, "DISTNAME" => "Dist-Zilla-Plugin-Git", "LICENSE" => "perl", "MIN_PERL_VERSION" => "5.010", "NAME" => "Dist::Zilla::Plugin::Git", "PREREQ_PM" => { "Cwd" => 0, "DateTime" => 0, "Dist::Zilla" => 4, "Dist::Zilla::Plugin::GatherDir" => "4.200016", "Dist::Zilla::Role::AfterBuild" => 0, "Dist::Zilla::Role::AfterMint" => 0, "Dist::Zilla::Role::AfterRelease" => 0, "Dist::Zilla::Role::BeforeRelease" => 0, "Dist::Zilla::Role::FilePruner" => 0, "Dist::Zilla::Role::GitConfig" => 0, "Dist::Zilla::Role::PluginBundle" => 0, "Dist::Zilla::Role::VersionProvider" => 0, "File::Spec::Functions" => 0, "File::Temp" => 0, "File::chdir" => 0, "Git::Wrapper" => "0.021", "IPC::Open3" => 0, "IPC::System::Simple" => 0, "List::Util" => "1.45", "Module::Runtime" => 0, "Moose" => 0, "Moose::Role" => 0, "MooseX::Has::Sugar" => 0, "Path::Tiny" => "0.048", "String::Formatter" => 0, "Try::Tiny" => 0, "Type::Utils" => 0, "Types::Path::Tiny" => 0, "Types::Standard" => 0, "Version::Next" => 0, "constant" => 0, "namespace::autoclean" => "0.09", "strict" => 0, "version" => "0.80", "warnings" => 0 }, "TEST_REQUIRES" => { "CPAN::Meta::Check" => "0.011", "CPAN::Meta::Requirements" => 0, "Dist::Zilla::File::InMemory" => 0, "Dist::Zilla::Plugin::Config::Git" => 0, "Dist::Zilla::Role::Releaser" => 0, "Dist::Zilla::Tester" => 0, "Encode" => 0, "Exporter" => 0, "ExtUtils::MakeMaker" => 0, "File::Copy" => 0, "File::Copy::Recursive" => 0, "File::Path" => "2.07", "File::Spec" => 0, "File::Which" => 0, "File::pushd" => 0, "Log::Dispatchouli" => 0, "Test::DZil" => 0, "Test::Fatal" => 0, "Test::More" => "0.88", "lib" => 0, "utf8" => 0 }, "VERSION" => "2.046", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "CPAN::Meta::Check" => "0.011", "CPAN::Meta::Requirements" => 0, "Cwd" => 0, "DateTime" => 0, "Dist::Zilla" => 4, "Dist::Zilla::File::InMemory" => 0, "Dist::Zilla::Plugin::Config::Git" => 0, "Dist::Zilla::Plugin::GatherDir" => "4.200016", "Dist::Zilla::Role::AfterBuild" => 0, "Dist::Zilla::Role::AfterMint" => 0, "Dist::Zilla::Role::AfterRelease" => 0, "Dist::Zilla::Role::BeforeRelease" => 0, "Dist::Zilla::Role::FilePruner" => 0, "Dist::Zilla::Role::GitConfig" => 0, "Dist::Zilla::Role::PluginBundle" => 0, "Dist::Zilla::Role::Releaser" => 0, "Dist::Zilla::Role::VersionProvider" => 0, "Dist::Zilla::Tester" => 0, "Encode" => 0, "Exporter" => 0, "ExtUtils::MakeMaker" => 0, "File::Copy" => 0, "File::Copy::Recursive" => 0, "File::Path" => "2.07", "File::Spec" => 0, "File::Spec::Functions" => 0, "File::Temp" => 0, "File::Which" => 0, "File::chdir" => 0, "File::pushd" => 0, "Git::Wrapper" => "0.021", "IPC::Open3" => 0, "IPC::System::Simple" => 0, "List::Util" => "1.45", "Log::Dispatchouli" => 0, "Module::Runtime" => 0, "Moose" => 0, "Moose::Role" => 0, "MooseX::Has::Sugar" => 0, "Path::Tiny" => "0.048", "String::Formatter" => 0, "Test::DZil" => 0, "Test::Fatal" => 0, "Test::More" => "0.88", "Try::Tiny" => 0, "Type::Utils" => 0, "Types::Path::Tiny" => 0, "Types::Standard" => 0, "Version::Next" => 0, "constant" => 0, "lib" => 0, "namespace::autoclean" => "0.09", "strict" => 0, "utf8" => 0, "version" => "0.80", "warnings" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION('6.63_03') } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); Dist-Zilla-Plugin-Git-2.046/Makefile_git.PL000644 000766 000024 00000003173 13443320014 020544 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # this section comes from Makefile.git.PL and is inserted into Makefile.PL # Git 1.5.4 introduced the --exclude-standard option to git ls-files, # which Git::Check needs to work properly. use version; my $need_version = version->parse('1.5.4'); eval { my $git_version = `git --version` or die "Unable to execute git\n"; $git_version =~ /git \s+ version \s* ( \d+ (?: \.\d+ )+ )( [-.]rc\d+)?/x or die "Unable to determine git version\n"; my $rc = $2 || ''; $git_version = version->parse("$1"); die "git $need_version or later required, you have $git_version$rc\n" if $git_version < $need_version or $git_version == $need_version and $rc; 1; } or do { print $@; if (parse_args()->{FORCE_INSTALL}) { print "FORCE_INSTALL specified, attempting to install anyway.\n"; } else { print <<"END MESSAGE"; \nDist::Zilla::Plugin::Git requires git $need_version or later in your PATH, and it wasn't found. If you want to install anyway, run PERL_MM_OPT=FORCE_INSTALL $^X Makefile.PL END MESSAGE exit 0; # Indicate missing non-Perl prerequisite } # end else not FORCE_INSTALL }; # end do when Git prerequisite is not met sub parse_args { require ExtUtils::MakeMaker; require Text::ParseWords; ExtUtils::MakeMaker::parse_args( my $tmp = {}, Text::ParseWords::shellwords($ENV{PERL_MM_OPT} || ''), @ARGV, ); return $tmp->{ARGS} || {}; } Dist-Zilla-Plugin-Git-2.046/MANIFEST000644 000766 000024 00000004664 13443320014 017066 0ustar00etherstaff000000 000000 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. AUTHOR_PLEDGE CONTRIBUTING Changes INSTALL LICENCE MANIFEST MANIFEST.SKIP META.json META.yml Makefile.PL Makefile_git.PL README corpus/check/Changes corpus/check/foobar corpus/commit-build-custom/Changes corpus/commit-build-custom/dist.ini corpus/commit-build-src-as-parent/Changes corpus/commit-build-src-as-parent/dist.ini corpus/commit-build/Changes corpus/commit-build/dist.ini corpus/commit-dirtydir/Changes corpus/commit-dirtydir/dist.ini corpus/commit-ws/Changes corpus/commit-ws/dist.ini corpus/commit/Changes corpus/commit/dist.ini corpus/dzp-git.pub corpus/dzp-git.sec corpus/gatherdir/lib/DZT/Sample.pm corpus/push-gitconfig/Changes corpus/push-gitconfig/dist.ini corpus/push-multi/Changes corpus/push-multi/dist.ini corpus/push/Changes corpus/push/dist.ini corpus/repo-dir/Changes corpus/repo-dir/dist.ini corpus/tag-signed/Changes corpus/tag-signed/dist.ini corpus/tag/Changes corpus/tag/dist.ini corpus/version-default/Changes corpus/version-default/dist.ini corpus/version-default/foobar corpus/version-regexp/Changes corpus/version-regexp/dist.ini corpus/version-regexp/foobar dist.ini lib/Dist/Zilla/Plugin/Git.pm lib/Dist/Zilla/Plugin/Git/Check.pm lib/Dist/Zilla/Plugin/Git/Commit.pm lib/Dist/Zilla/Plugin/Git/CommitBuild.pm lib/Dist/Zilla/Plugin/Git/GatherDir.pm lib/Dist/Zilla/Plugin/Git/Init.pm lib/Dist/Zilla/Plugin/Git/NextVersion.pm lib/Dist/Zilla/Plugin/Git/Push.pm lib/Dist/Zilla/Plugin/Git/Tag.pm lib/Dist/Zilla/PluginBundle/Git.pm lib/Dist/Zilla/Role/Git/DirtyFiles.pm lib/Dist/Zilla/Role/Git/Repo.pm lib/Dist/Zilla/Role/Git/StringFormatter.pm t/00-report-prereqs.dd t/00-report-prereqs.t t/000-report-git-version.t t/check.t t/commit-build-custom.t t/commit-build-src-as-parent.t t/commit-build.t t/commit-dirtydir.t t/commit-message.t t/commit-utf8.t t/commit-ws.t t/commit.t t/gatherdir-multi.t t/gatherdir.t t/lib/Dist/Zilla/Plugin/MyTestArchiver.pm t/lib/Util.pm t/push-gitconfig.t t/push-multi.t t/push.t t/repo-dir.t t/tag-signed.t t/tag.t t/version-by-branch.t t/version-default.t t/version-extraction.t t/version-regexp.t t/zzz-check-breaks.t xt/author/00-compile.t xt/author/changes_has_content.t xt/author/clean-namespaces.t xt/author/eol.t xt/author/kwalitee.t xt/author/minimum-version.t xt/author/mojibake.t xt/author/pod-coverage.t xt/author/pod-syntax.t xt/author/portability.t xt/release/changes_has_content.t xt/release/cpan-changes.t xt/release/distmeta.t Dist-Zilla-Plugin-Git-2.046/MANIFEST.SKIP000644 000766 000024 00000000144 13443320014 017620 0ustar00etherstaff000000 000000 ~$ \$$ ^\# ^blib/ \bcjm_ ^pm_to_blib$ ^Dist-Zilla-Plugin-Git-\d ^_build\b ^Build$ ^Build.bat$ ^tmp/ Dist-Zilla-Plugin-Git-2.046/META.json000644 000766 000024 00000145267 13443320014 017363 0ustar00etherstaff000000 000000 { "abstract" : "Update your git repository after release", "author" : [ "Jerome Quelin" ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Dist-Zilla-Plugin-Git", "no_index" : { "directory" : [ "corpus", "t", "xt" ] }, "prereqs" : { "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0", "Text::ParseWords" : "0", "perl" : "5.010", "version" : "0" } }, "develop" : { "recommends" : { "Dist::Zilla::PluginBundle::Author::ETHER" : "0.147", "Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007" }, "requires" : { "Encode" : "0", "File::Spec" : "0", "IO::Handle" : "0", "IPC::Open3" : "0", "Pod::Coverage::TrustPod" : "0", "Test::CPAN::Changes" : "0.19", "Test::CPAN::Meta" : "0", "Test::CleanNamespaces" : "0.15", "Test::EOL" : "0", "Test::Kwalitee" : "1.21", "Test::MinimumVersion" : "0", "Test::Mojibake" : "0", "Test::More" : "0.96", "Test::Pod" : "1.41", "Test::Pod::Coverage" : "1.08", "Test::Portability::Files" : "0" } }, "runtime" : { "requires" : { "Cwd" : "0", "DateTime" : "0", "Dist::Zilla" : "4", "Dist::Zilla::Plugin::GatherDir" : "4.200016", "Dist::Zilla::Role::AfterBuild" : "0", "Dist::Zilla::Role::AfterMint" : "0", "Dist::Zilla::Role::AfterRelease" : "0", "Dist::Zilla::Role::BeforeRelease" : "0", "Dist::Zilla::Role::FilePruner" : "0", "Dist::Zilla::Role::GitConfig" : "0", "Dist::Zilla::Role::PluginBundle" : "0", "Dist::Zilla::Role::VersionProvider" : "0", "File::Spec::Functions" : "0", "File::Temp" : "0", "File::chdir" : "0", "Git::Wrapper" : "0.021", "IPC::Open3" : "0", "IPC::System::Simple" : "0", "List::Util" : "1.45", "Module::Runtime" : "0", "Moose" : "0", "Moose::Role" : "0", "MooseX::Has::Sugar" : "0", "Path::Tiny" : "0.048", "String::Formatter" : "0", "Try::Tiny" : "0", "Type::Utils" : "0", "Types::Path::Tiny" : "0", "Types::Standard" : "0", "Version::Next" : "0", "constant" : "0", "namespace::autoclean" : "0.09", "perl" : "5.010", "strict" : "0", "version" : "0.80", "warnings" : "0" } }, "test" : { "recommends" : { "CPAN::Meta" : "2.120900" }, "requires" : { "CPAN::Meta::Check" : "0.011", "CPAN::Meta::Requirements" : "0", "Dist::Zilla::File::InMemory" : "0", "Dist::Zilla::Plugin::Config::Git" : "0", "Dist::Zilla::Role::Releaser" : "0", "Dist::Zilla::Tester" : "0", "Encode" : "0", "Exporter" : "0", "ExtUtils::MakeMaker" : "0", "File::Copy" : "0", "File::Copy::Recursive" : "0", "File::Path" : "2.07", "File::Spec" : "0", "File::Which" : "0", "File::pushd" : "0", "Log::Dispatchouli" : "0", "Test::DZil" : "0", "Test::Fatal" : "0", "Test::More" : "0.88", "lib" : "0", "perl" : "5.010", "utf8" : "0" } }, "x_Dist_Zilla" : { "requires" : { "Dist::Zilla" : "5", "Dist::Zilla::Plugin::Authority" : "1.009", "Dist::Zilla::Plugin::AutoMetaResources" : "0", "Dist::Zilla::Plugin::AutoPrereqs" : "5.038", "Dist::Zilla::Plugin::Bootstrap::lib" : "0", "Dist::Zilla::Plugin::Breaks" : "0", "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : "0.004", "Dist::Zilla::Plugin::CheckIssues" : "0", "Dist::Zilla::Plugin::CheckMetaResources" : "0", "Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0.019", "Dist::Zilla::Plugin::CheckSelfDependency" : "0", "Dist::Zilla::Plugin::CheckStrictVersion" : "0", "Dist::Zilla::Plugin::ConfirmRelease" : "0", "Dist::Zilla::Plugin::CopyFilesFromRelease" : "0", "Dist::Zilla::Plugin::Covenant" : "0", "Dist::Zilla::Plugin::Encoding" : "0", "Dist::Zilla::Plugin::EnsureLatestPerl" : "0", "Dist::Zilla::Plugin::FileFinder::ByName" : "0", "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : "0", "Dist::Zilla::Plugin::Git::Check" : "0", "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch" : "0.004", "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts" : "0", "Dist::Zilla::Plugin::Git::Commit" : "2.020", "Dist::Zilla::Plugin::Git::Contributors" : "0.029", "Dist::Zilla::Plugin::Git::Describe" : "0.004", "Dist::Zilla::Plugin::Git::GatherDir" : "2.016", "Dist::Zilla::Plugin::Git::Push" : "0", "Dist::Zilla::Plugin::Git::Remote::Check" : "0", "Dist::Zilla::Plugin::Git::Tag" : "0", "Dist::Zilla::Plugin::GitHub::Update" : "0.40", "Dist::Zilla::Plugin::GithubMeta" : "0.54", "Dist::Zilla::Plugin::InstallGuide" : "1.200005", "Dist::Zilla::Plugin::Keywords" : "0.004", "Dist::Zilla::Plugin::License" : "5.038", "Dist::Zilla::Plugin::MakeMaker::Awesome" : "0.35", "Dist::Zilla::Plugin::Manifest" : "0", "Dist::Zilla::Plugin::MetaConfig" : "0", "Dist::Zilla::Plugin::MetaJSON" : "0", "Dist::Zilla::Plugin::MetaNoIndex" : "0", "Dist::Zilla::Plugin::MetaProvides::Package" : "1.15000002", "Dist::Zilla::Plugin::MetaResources" : "0", "Dist::Zilla::Plugin::MetaTests" : "0", "Dist::Zilla::Plugin::MetaYAML" : "0", "Dist::Zilla::Plugin::MinimumPerl" : "1.006", "Dist::Zilla::Plugin::MojibakeTests" : "0.8", "Dist::Zilla::Plugin::NextRelease" : "5.033", "Dist::Zilla::Plugin::PodCoverageTests" : "5.040", "Dist::Zilla::Plugin::PodSyntaxTests" : "5.040", "Dist::Zilla::Plugin::PodWeaver" : "4.005", "Dist::Zilla::Plugin::Prepender" : "0", "Dist::Zilla::Plugin::Prereqs" : "0", "Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0.006", "Dist::Zilla::Plugin::PromptIfStale" : "0", "Dist::Zilla::Plugin::Readme" : "0", "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.142180", "Dist::Zilla::Plugin::RewriteVersion::Transitional" : "0.004", "Dist::Zilla::Plugin::Run::AfterBuild" : "0.041", "Dist::Zilla::Plugin::Run::AfterRelease" : "0.038", "Dist::Zilla::Plugin::RunExtraTests" : "0.024", "Dist::Zilla::Plugin::StaticInstall" : "0.005", "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.012", "Dist::Zilla::Plugin::Test::ChangesHasContent" : "0", "Dist::Zilla::Plugin::Test::CheckBreaks" : "0.017", "Dist::Zilla::Plugin::Test::CleanNamespaces" : "0.006", "Dist::Zilla::Plugin::Test::Compile" : "2.039", "Dist::Zilla::Plugin::Test::EOL" : "0.17", "Dist::Zilla::Plugin::Test::Kwalitee" : "2.10", "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000008", "Dist::Zilla::Plugin::Test::Portability" : "2.000007", "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0.022", "Dist::Zilla::Plugin::TestRelease" : "0", "Dist::Zilla::Plugin::UploadToCPAN" : "0", "Dist::Zilla::Plugin::UseUnsafeInc" : "0", "Dist::Zilla::PluginBundle::Author::ETHER" : "0.119", "Dist::Zilla::PluginBundle::Git::VersionManager" : "0.007", "Software::License::Perl_5" : "0", "Types::Path::Tiny" : "0", "Types::Standard" : "0" } } }, "provides" : { "Dist::Zilla::Plugin::Git" : { "file" : "lib/Dist/Zilla/Plugin/Git.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::Check" : { "file" : "lib/Dist/Zilla/Plugin/Git/Check.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::Commit" : { "file" : "lib/Dist/Zilla/Plugin/Git/Commit.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::CommitBuild" : { "file" : "lib/Dist/Zilla/Plugin/Git/CommitBuild.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::GatherDir" : { "file" : "lib/Dist/Zilla/Plugin/Git/GatherDir.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::Init" : { "file" : "lib/Dist/Zilla/Plugin/Git/Init.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::NextVersion" : { "file" : "lib/Dist/Zilla/Plugin/Git/NextVersion.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::Push" : { "file" : "lib/Dist/Zilla/Plugin/Git/Push.pm", "version" : "2.046" }, "Dist::Zilla::Plugin::Git::Tag" : { "file" : "lib/Dist/Zilla/Plugin/Git/Tag.pm", "version" : "2.046" }, "Dist::Zilla::PluginBundle::Git" : { "file" : "lib/Dist/Zilla/PluginBundle/Git.pm", "version" : "2.046" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "file" : "lib/Dist/Zilla/Role/Git/DirtyFiles.pm", "version" : "2.046" }, "Dist::Zilla::Role::Git::Repo" : { "file" : "lib/Dist/Zilla/Role/Git/Repo.pm", "version" : "2.046" }, "Dist::Zilla::Role::Git::StringFormatter" : { "file" : "lib/Dist/Zilla/Role/Git/StringFormatter.pm", "version" : "2.046" } }, "release_status" : "stable", "resources" : { "bugtracker" : { "mailto" : "bug-Dist-Zilla-Plugin-Git@rt.cpan.org", "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Git" }, "homepage" : "https://github.com/karenetheridge/Dist-Zilla-Plugin-Git", "repository" : { "type" : "git", "url" : "https://github.com/karenetheridge/Dist-Zilla-Plugin-Git.git", "web" : "https://github.com/karenetheridge/Dist-Zilla-Plugin-Git" }, "x_IRC" : "irc://irc.perl.org/#distzilla", "x_MailingList" : "http://dzil.org/#mailing-list" }, "version" : "2.046", "x_Dist_Zilla" : { "perl" : { "version" : "5.029008" }, "plugins" : [ { "class" : "Dist::Zilla::Plugin::Bootstrap::lib", "config" : { "Dist::Zilla::Role::Bootstrap" : { "$Dist::Zilla::Role::Bootstrap::VERSION" : "1.001004", "distname" : "Dist-Zilla-Plugin-Git", "fallback" : 1, "try_built" : null, "try_built_method" : "mtime" } }, "name" : "Bootstrap::lib", "version" : "1.001002" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", "type" : "recommends" } }, "name" : "@Author::ETHER/pluginbundle version", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", "config" : { "Dist::Zilla::Plugin::PromptIfStale" : { "check_all_plugins" : 0, "check_all_prereqs" : 0, "modules" : [ "Dist::Zilla::PluginBundle::Author::ETHER" ], "phase" : "build", "run_under_travis" : 0, "skip" : [] } }, "name" : "@Author::ETHER/stale modules, build", "version" : "0.055" }, { "class" : "Dist::Zilla::Plugin::FileFinder::ByName", "name" : "@Author::ETHER/Examples", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::GatherDir", "config" : { "Dist::Zilla::Plugin::GatherDir" : { "exclude_filename" : [ "CONTRIBUTING", "INSTALL", "LICENCE", "README.pod", "TODO" ], "exclude_match" : [], "follow_symlinks" : 0, "include_dotfiles" : 0, "prefix" : "", "prune_directory" : [], "root" : "." }, "Dist::Zilla::Plugin::Git::GatherDir" : { "include_untracked" : 0 } }, "name" : "@Author::ETHER/Git::GatherDir", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::MetaYAML", "name" : "@Author::ETHER/MetaYAML", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaJSON", "name" : "@Author::ETHER/MetaJSON", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Readme", "name" : "@Author::ETHER/Readme", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Manifest", "name" : "@Author::ETHER/Manifest", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::License", "name" : "@Author::ETHER/License", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir", "config" : { "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : { "destination_filename" : "CONTRIBUTING", "dist" : "Dist-Zilla-PluginBundle-Author-ETHER", "encoding" : "UTF-8", "has_xs" : 0, "location" : "build", "source_filename" : "CONTRIBUTING" }, "Dist::Zilla::Role::RepoFileInjector" : { "allow_overwrite" : 1, "repo_root" : ".", "version" : "0.009" } }, "name" : "@Author::ETHER/generate CONTRIBUTING", "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::InstallGuide", "name" : "@Author::ETHER/InstallGuide", "version" : "1.200012" }, { "class" : "Dist::Zilla::Plugin::Test::Compile", "config" : { "Dist::Zilla::Plugin::Test::Compile" : { "bail_out_on_fail" : 1, "fail_on_warning" : "author", "fake_home" : 0, "filename" : "xt/author/00-compile.t", "module_finder" : [ ":InstallModules" ], "needs_display" : 0, "phase" : "develop", "script_finder" : [ ":PerlExecFiles", "@Author::ETHER/Examples" ], "skips" : [], "switch" : [] } }, "name" : "@Author::ETHER/Test::Compile", "version" : "2.058" }, { "class" : "Dist::Zilla::Plugin::Test::EOL", "config" : { "Dist::Zilla::Plugin::Test::EOL" : { "filename" : "xt/author/eol.t", "finder" : [ ":ExecFiles", ":ExtraTestFiles", ":InstallModules", ":TestFiles", "@Author::ETHER/Examples" ], "trailing_whitespace" : 1 } }, "name" : "@Author::ETHER/Test::EOL", "version" : "0.19" }, { "class" : "Dist::Zilla::Plugin::MetaTests", "name" : "@Author::ETHER/MetaTests", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Test::CPAN::Changes", "config" : { "Dist::Zilla::Plugin::Test::CPAN::Changes" : { "changelog" : "Changes" } }, "name" : "@Author::ETHER/Test::CPAN::Changes", "version" : "0.012" }, { "class" : "Dist::Zilla::Plugin::GenerateFile::FromShareDir", "config" : { "Dist::Zilla::Plugin::GenerateFile::FromShareDir" : { "destination_filename" : "xt/author/changes_has_content.t", "dist" : "Dist-Zilla-PluginBundle-Author-ETHER", "encoding" : "UTF-8", "location" : "build", "source_filename" : "changes_has_content.t" }, "Dist::Zilla::Role::RepoFileInjector" : { "allow_overwrite" : 1, "repo_root" : ".", "version" : "0.009" } }, "name" : "@Author::ETHER/generate xt/author/changes_has_content.t", "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Test::ChangesHasContent", "name" : "@Author::ETHER/Test::ChangesHasContent", "version" : "0.011" }, { "class" : "Dist::Zilla::Plugin::Test::MinimumVersion", "name" : "@Author::ETHER/Test::MinimumVersion", "version" : "2.000008" }, { "class" : "Dist::Zilla::Plugin::PodSyntaxTests", "name" : "@Author::ETHER/PodSyntaxTests", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::PodCoverageTests", "name" : "@Author::ETHER/PodCoverageTests", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Test::Kwalitee", "config" : { "Dist::Zilla::Plugin::Test::Kwalitee" : { "filename" : "xt/author/kwalitee.t", "skiptest" : [] } }, "name" : "@Author::ETHER/Test::Kwalitee", "version" : "2.12" }, { "class" : "Dist::Zilla::Plugin::MojibakeTests", "name" : "@Author::ETHER/MojibakeTests", "version" : "0.8" }, { "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", "name" : "@Author::ETHER/Test::ReportPrereqs", "version" : "0.027" }, { "class" : "Dist::Zilla::Plugin::Test::Portability", "config" : { "Dist::Zilla::Plugin::Test::Portability" : { "options" : "" } }, "name" : "@Author::ETHER/Test::Portability", "version" : "2.001000" }, { "class" : "Dist::Zilla::Plugin::Test::CleanNamespaces", "config" : { "Dist::Zilla::Plugin::Test::CleanNamespaces" : { "filename" : "xt/author/clean-namespaces.t", "skips" : [] } }, "name" : "@Author::ETHER/Test::CleanNamespaces", "version" : "0.006" }, { "class" : "Dist::Zilla::Plugin::Git::Describe", "name" : "@Author::ETHER/Git::Describe", "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::PodWeaver", "config" : { "Dist::Zilla::Plugin::PodWeaver" : { "config_plugins" : [ "@Author::ETHER" ], "finder" : [ ":InstallModules", ":ExecFiles" ], "plugins" : [ { "class" : "Pod::Weaver::Plugin::EnsurePod5", "name" : "@Author::ETHER/EnsurePod5", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::H1Nester", "name" : "@Author::ETHER/H1Nester", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::SingleEncoding", "name" : "@Author::ETHER/SingleEncoding", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::Transformer", "name" : "@Author::ETHER/List", "version" : "4.015" }, { "class" : "Pod::Weaver::Plugin::Transformer", "name" : "@Author::ETHER/Verbatim", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/header", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Name", "name" : "@Author::ETHER/Name", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Version", "name" : "@Author::ETHER/Version", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/prelude", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "SYNOPSIS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "DESCRIPTION", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Generic", "name" : "OVERVIEW", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "ATTRIBUTES", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "METHODS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "FUNCTIONS", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Collect", "name" : "TYPES", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Leftovers", "name" : "@Author::ETHER/Leftovers", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/postlude", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::GenerateSection", "name" : "@Author::ETHER/generate SUPPORT", "version" : "1.06" }, { "class" : "Pod::Weaver::Section::AllowOverride", "name" : "@Author::ETHER/allow override SUPPORT", "version" : "0.05" }, { "class" : "Pod::Weaver::Section::Authors", "name" : "@Author::ETHER/Authors", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::AllowOverride", "name" : "@Author::ETHER/allow override AUTHOR", "version" : "0.05" }, { "class" : "Pod::Weaver::Section::Contributors", "name" : "@Author::ETHER/Contributors", "version" : "0.009" }, { "class" : "Pod::Weaver::Section::Legal", "name" : "@Author::ETHER/Legal", "version" : "4.015" }, { "class" : "Pod::Weaver::Section::Region", "name" : "@Author::ETHER/footer", "version" : "4.015" } ] } }, "name" : "@Author::ETHER/PodWeaver", "version" : "4.008" }, { "class" : "Dist::Zilla::Plugin::GithubMeta", "name" : "@Author::ETHER/GithubMeta", "version" : "0.58" }, { "class" : "Dist::Zilla::Plugin::AutoMetaResources", "name" : "@Author::ETHER/AutoMetaResources", "version" : "1.21" }, { "class" : "Dist::Zilla::Plugin::Authority", "name" : "@Author::ETHER/Authority", "version" : "1.009" }, { "class" : "Dist::Zilla::Plugin::MetaNoIndex", "name" : "@Author::ETHER/MetaNoIndex", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Package", "config" : { "Dist::Zilla::Plugin::MetaProvides::Package" : { "finder" : [ ":InstallModules" ], "finder_objects" : [ { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", "version" : "6.012" } ], "include_underscores" : 0 }, "Dist::Zilla::Role::MetaProvider::Provider" : { "$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002004", "inherit_missing" : 0, "inherit_version" : 0, "meta_noindex" : 1 }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000034", "version" : "0.006" } }, "name" : "@Author::ETHER/MetaProvides::Package", "version" : "2.004003" }, { "class" : "Dist::Zilla::Plugin::MetaConfig", "name" : "@Author::ETHER/MetaConfig", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Keywords", "config" : { "Dist::Zilla::Plugin::Keywords" : { "keywords" : [] } }, "name" : "@Author::ETHER/Keywords", "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::UseUnsafeInc", "config" : { "Dist::Zilla::Plugin::UseUnsafeInc" : { "dot_in_INC" : 0 } }, "name" : "@Author::ETHER/UseUnsafeInc", "version" : "0.001" }, { "class" : "Dist::Zilla::Plugin::AutoPrereqs", "name" : "@Author::ETHER/AutoPrereqs", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps", "name" : "@Author::ETHER/Prereqs::AuthorDeps", "version" : "0.006" }, { "class" : "Dist::Zilla::Plugin::MinimumPerl", "name" : "@Author::ETHER/MinimumPerl", "version" : "1.006" }, { "class" : "Dist::Zilla::Plugin::Git::Contributors", "config" : { "Dist::Zilla::Plugin::Git::Contributors" : { "git_version" : "2.19.1", "include_authors" : 0, "include_releaser" : 1, "order_by" : "commits", "paths" : [] } }, "name" : "@Author::ETHER/Git::Contributors", "version" : "0.035" }, { "class" : "Dist::Zilla::Plugin::StaticInstall", "config" : { "Dist::Zilla::Plugin::StaticInstall" : { "dry_run" : 0, "mode" : "auto" } }, "name" : "@Author::ETHER/StaticInstall", "version" : "0.012" }, { "class" : "Dist::Zilla::Plugin::RunExtraTests", "config" : { "Dist::Zilla::Role::TestRunner" : { "default_jobs" : 9 } }, "name" : "@Author::ETHER/RunExtraTests", "version" : "0.029" }, { "class" : "Dist::Zilla::Plugin::CheckSelfDependency", "config" : { "Dist::Zilla::Plugin::CheckSelfDependency" : { "finder" : [ ":InstallModules" ] }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000034", "version" : "0.006" } }, "name" : "@Author::ETHER/CheckSelfDependency", "version" : "0.011" }, { "class" : "Dist::Zilla::Plugin::Run::AfterBuild", "config" : { "Dist::Zilla::Plugin::Run::Role::Runner" : { "fatal_errors" : 1, "quiet" : 1, "run" : [ "bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\"" ], "version" : "0.048" } }, "name" : "@Author::ETHER/.ackrc", "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::Run::AfterBuild", "config" : { "Dist::Zilla::Plugin::Run::Role::Runner" : { "eval" : [ "if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }" ], "fatal_errors" : 0, "quiet" : 1, "version" : "0.048" } }, "name" : "@Author::ETHER/.latest", "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::CheckStrictVersion", "name" : "@Author::ETHER/CheckStrictVersion", "version" : "0.001" }, { "class" : "Dist::Zilla::Plugin::CheckMetaResources", "name" : "@Author::ETHER/CheckMetaResources", "version" : "0.001" }, { "class" : "Dist::Zilla::Plugin::EnsureLatestPerl", "config" : { "Dist::Zilla::Plugin::EnsureLatestPerl" : { "Module::CoreList" : "5.20190220" } }, "name" : "@Author::ETHER/EnsureLatestPerl", "version" : "0.008" }, { "class" : "Dist::Zilla::Plugin::PromptIfStale", "config" : { "Dist::Zilla::Plugin::PromptIfStale" : { "check_all_plugins" : 1, "check_all_prereqs" : 1, "modules" : [], "phase" : "release", "run_under_travis" : 0, "skip" : [] } }, "name" : "@Author::ETHER/stale modules, release", "version" : "0.055" }, { "class" : "Dist::Zilla::Plugin::Git::Check", "config" : { "Dist::Zilla::Plugin::Git::Check" : { "untracked_files" : "die" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [], "allow_dirty_match" : [], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/initial check", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts", "config" : { "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::CheckFor::MergeConflicts", "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch", "config" : { "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::CheckFor::CorrectBranch", "version" : "0.014" }, { "class" : "Dist::Zilla::Plugin::Git::Remote::Check", "name" : "@Author::ETHER/Git::Remote::Check", "version" : "0.1.2" }, { "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed", "name" : "@Author::ETHER/CheckPrereqsIndexed", "version" : "0.020" }, { "class" : "Dist::Zilla::Plugin::TestRelease", "name" : "@Author::ETHER/TestRelease", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Check", "config" : { "Dist::Zilla::Plugin::Git::Check" : { "untracked_files" : "die" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [], "allow_dirty_match" : [], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/after tests", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::CheckIssues", "name" : "@Author::ETHER/CheckIssues", "version" : "0.010" }, { "class" : "Dist::Zilla::Plugin::UploadToCPAN", "name" : "@Author::ETHER/UploadToCPAN", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease", "config" : { "Dist::Zilla::Plugin::CopyFilesFromRelease" : { "filename" : [ "CONTRIBUTING", "INSTALL", "LICENCE", "LICENSE", "ppport.h" ], "match" : [] } }, "name" : "@Author::ETHER/copy generated files", "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", "config" : { "Dist::Zilla::Role::FileWatcher" : { "version" : "0.006" } }, "name" : "@Author::ETHER/ReadmeAnyFromPod", "version" : "0.163250" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "develop", "type" : "recommends" } }, "name" : "@Author::ETHER/@Git::VersionManager/pluginbundle version", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::RewriteVersion::Transitional", "config" : { "Dist::Zilla::Plugin::RewriteVersion" : { "add_tarball_name" : 0, "finders" : [ ":ExecFiles", ":InstallModules" ], "global" : 1, "skip_version_provider" : 0 }, "Dist::Zilla::Plugin::RewriteVersion::Transitional" : {} }, "name" : "@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional", "version" : "0.009" }, { "class" : "Dist::Zilla::Plugin::MetaProvides::Update", "name" : "@Author::ETHER/@Git::VersionManager/MetaProvides::Update", "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::CopyFilesFromRelease", "config" : { "Dist::Zilla::Plugin::CopyFilesFromRelease" : { "filename" : [ "Changes" ], "match" : [] } }, "name" : "@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease", "version" : "0.007" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [ "." ], "commit_msg" : "%N-%v%t%n%n%c" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ "CONTRIBUTING", "Changes", "INSTALL", "LICENCE", "README.pod" ], "allow_dirty_match" : [], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@Author::ETHER/@Git::VersionManager/release snapshot", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::Git::Tag", "config" : { "Dist::Zilla::Plugin::Git::Tag" : { "branch" : null, "changelog" : "Changes", "signed" : 0, "tag" : "v2.046", "tag_format" : "v%V", "tag_message" : "v%v%t" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@Author::ETHER/@Git::VersionManager/Git::Tag", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional", "config" : { "Dist::Zilla::Plugin::BumpVersionAfterRelease" : { "finders" : [ ":ExecFiles", ":InstallModules" ], "global" : 1, "munge_makefile_pl" : 1 }, "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional" : {} }, "name" : "@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional", "version" : "0.009" }, { "class" : "Dist::Zilla::Plugin::NextRelease", "name" : "@Author::ETHER/@Git::VersionManager/NextRelease", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Commit", "config" : { "Dist::Zilla::Plugin::Git::Commit" : { "add_files_in" : [], "commit_msg" : "increment $VERSION after %v release" }, "Dist::Zilla::Role::Git::DirtyFiles" : { "allow_dirty" : [ "Build.PL", "Changes", "Makefile.PL" ], "allow_dirty_match" : [ "(?^:^lib/.*\\.pm$)" ], "changelog" : "Changes" }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." }, "Dist::Zilla::Role::Git::StringFormatter" : { "time_zone" : "local" } }, "name" : "@Author::ETHER/@Git::VersionManager/post-release commit", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "x_Dist_Zilla", "type" : "requires" } }, "name" : "@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Git::Push", "config" : { "Dist::Zilla::Plugin::Git::Push" : { "push_to" : [ "origin" ], "remotes_must_exist" : 1 }, "Dist::Zilla::Role::Git::Repo" : { "git_version" : "2.19.1", "repo_root" : "." } }, "name" : "@Author::ETHER/Git::Push", "version" : "2.046" }, { "class" : "Dist::Zilla::Plugin::GitHub::Update", "config" : { "Dist::Zilla::Plugin::GitHub::Update" : { "metacpan" : 1 } }, "name" : "@Author::ETHER/GitHub::Update", "version" : "0.47" }, { "class" : "Dist::Zilla::Plugin::Run::AfterRelease", "config" : { "Dist::Zilla::Plugin::Run::Role::Runner" : { "fatal_errors" : 0, "quiet" : 0, "run" : [ "REDACTED" ], "version" : "0.048" } }, "name" : "@Author::ETHER/install release", "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::Run::AfterRelease", "config" : { "Dist::Zilla::Plugin::Run::Role::Runner" : { "eval" : [ "print \"release complete!\\xa\"" ], "fatal_errors" : 1, "quiet" : 1, "version" : "0.048" } }, "name" : "@Author::ETHER/release complete", "version" : "0.048" }, { "class" : "Dist::Zilla::Plugin::ConfirmRelease", "name" : "@Author::ETHER/ConfirmRelease", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "x_Dist_Zilla", "type" : "requires" } }, "name" : "@Author::ETHER/prereqs for @Author::ETHER", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MakeMaker::Awesome", "config" : { "Dist::Zilla::Plugin::MakeMaker" : { "make_path" : "make", "version" : "6.012" }, "Dist::Zilla::Role::TestRunner" : { "default_jobs" : 1, "version" : "6.012" } }, "name" : "MakeMaker::Awesome", "version" : "0.47" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "configure", "type" : "requires" } }, "name" : "ConfigureRequires", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Prereqs", "config" : { "Dist::Zilla::Plugin::Prereqs" : { "phase" : "runtime", "type" : "requires" } }, "name" : "Prereqs", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Prepender", "name" : "Prepender", "version" : "2.004" }, { "class" : "Dist::Zilla::Plugin::Covenant", "name" : "Covenant", "version" : "0.1.2" }, { "class" : "Dist::Zilla::Plugin::Encoding", "name" : "Encoding", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::MetaResources", "name" : "MetaResources", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::Breaks", "name" : "Breaks", "version" : "0.004" }, { "class" : "Dist::Zilla::Plugin::Test::CheckBreaks", "config" : { "Dist::Zilla::Plugin::Test::CheckBreaks" : { "conflicts_module" : [ "Module::Runtime::Conflicts", "Moose::Conflicts" ], "no_forced_deps" : 0 }, "Dist::Zilla::Role::ModuleMetadata" : { "Module::Metadata" : "1.000034", "version" : "0.006" } }, "name" : "Test::CheckBreaks", "version" : "0.019" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":InstallModules", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":IncModules", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":TestFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExtraTestFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ExecFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":PerlExecFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":ShareFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":MainModule", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":AllFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::FinderCode", "name" : ":NoFiles", "version" : "6.012" }, { "class" : "Dist::Zilla::Plugin::VerifyPhases", "name" : "@Author::ETHER/PHASE VERIFICATION", "version" : "0.016" } ], "zilla" : { "class" : "Dist::Zilla::Dist::Builder", "config" : { "is_trial" : 0 }, "version" : "6.012" } }, "x_author_pledge" : { "version" : 1 }, "x_authority" : "cpan:JQUELIN", "x_breaks" : { "Dist::Zilla::App::CommandHelper::ChainSmoking" : "<= 1.04" }, "x_contributors" : [ "Christopher J. Madsen ", "J\u00e9r\u00f4me Quelin ", "Karen Etheridge ", "Kent Fredric ", "Yanick Champoux ", "Ricardo Signes ", "Graham Knop ", "David Golden ", "Mike Friedman ", "Chris Weyl ", "Stephen R. Scaffidi ", "Randy Stauner ", "Graham Barr ", "Apocalypse ", "Mike Doherty ", "Nigel Metheringham ", "Olivier Mengu\u00e9 ", "Tatsuhiko Miyagawa ", "Tuomas Jormola ", "Alessandro Ghedini ", "Brian Phillips ", "David Steinbrunner ", "Geoffrey Broadwell ", "Harley Pig ", "Jesse Luehrs ", "Brendan Byrd ", "Alexandr Ciornii ", "Matt Follett ", "Michael Schout " ], "x_generated_by_perl" : "v5.29.8", "x_serialization_backend" : "Cpanel::JSON::XS version 4.09", "x_static_install" : 0, "x_use_unsafe_inc" : 0 } Dist-Zilla-Plugin-Git-2.046/META.yml000644 000766 000024 00000074365 13443320014 017213 0ustar00etherstaff000000 000000 --- abstract: 'Update your git repository after release' author: - 'Jerome Quelin' build_requires: CPAN::Meta::Check: '0.011' CPAN::Meta::Requirements: '0' Dist::Zilla::File::InMemory: '0' Dist::Zilla::Plugin::Config::Git: '0' Dist::Zilla::Role::Releaser: '0' Dist::Zilla::Tester: '0' Encode: '0' Exporter: '0' ExtUtils::MakeMaker: '0' File::Copy: '0' File::Copy::Recursive: '0' File::Path: '2.07' File::Spec: '0' File::Which: '0' File::pushd: '0' Log::Dispatchouli: '0' Test::DZil: '0' Test::Fatal: '0' Test::More: '0.88' lib: '0' perl: '5.010' utf8: '0' configure_requires: ExtUtils::MakeMaker: '0' Text::ParseWords: '0' perl: '5.010' version: '0' dynamic_config: 0 generated_by: 'Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Dist-Zilla-Plugin-Git no_index: directory: - corpus - t - xt provides: Dist::Zilla::Plugin::Git: file: lib/Dist/Zilla/Plugin/Git.pm version: '2.046' Dist::Zilla::Plugin::Git::Check: file: lib/Dist/Zilla/Plugin/Git/Check.pm version: '2.046' Dist::Zilla::Plugin::Git::Commit: file: lib/Dist/Zilla/Plugin/Git/Commit.pm version: '2.046' Dist::Zilla::Plugin::Git::CommitBuild: file: lib/Dist/Zilla/Plugin/Git/CommitBuild.pm version: '2.046' Dist::Zilla::Plugin::Git::GatherDir: file: lib/Dist/Zilla/Plugin/Git/GatherDir.pm version: '2.046' Dist::Zilla::Plugin::Git::Init: file: lib/Dist/Zilla/Plugin/Git/Init.pm version: '2.046' Dist::Zilla::Plugin::Git::NextVersion: file: lib/Dist/Zilla/Plugin/Git/NextVersion.pm version: '2.046' Dist::Zilla::Plugin::Git::Push: file: lib/Dist/Zilla/Plugin/Git/Push.pm version: '2.046' Dist::Zilla::Plugin::Git::Tag: file: lib/Dist/Zilla/Plugin/Git/Tag.pm version: '2.046' Dist::Zilla::PluginBundle::Git: file: lib/Dist/Zilla/PluginBundle/Git.pm version: '2.046' Dist::Zilla::Role::Git::DirtyFiles: file: lib/Dist/Zilla/Role/Git/DirtyFiles.pm version: '2.046' Dist::Zilla::Role::Git::Repo: file: lib/Dist/Zilla/Role/Git/Repo.pm version: '2.046' Dist::Zilla::Role::Git::StringFormatter: file: lib/Dist/Zilla/Role/Git/StringFormatter.pm version: '2.046' requires: Cwd: '0' DateTime: '0' Dist::Zilla: '4' Dist::Zilla::Plugin::GatherDir: '4.200016' Dist::Zilla::Role::AfterBuild: '0' Dist::Zilla::Role::AfterMint: '0' Dist::Zilla::Role::AfterRelease: '0' Dist::Zilla::Role::BeforeRelease: '0' Dist::Zilla::Role::FilePruner: '0' Dist::Zilla::Role::GitConfig: '0' Dist::Zilla::Role::PluginBundle: '0' Dist::Zilla::Role::VersionProvider: '0' File::Spec::Functions: '0' File::Temp: '0' File::chdir: '0' Git::Wrapper: '0.021' IPC::Open3: '0' IPC::System::Simple: '0' List::Util: '1.45' Module::Runtime: '0' Moose: '0' Moose::Role: '0' MooseX::Has::Sugar: '0' Path::Tiny: '0.048' String::Formatter: '0' Try::Tiny: '0' Type::Utils: '0' Types::Path::Tiny: '0' Types::Standard: '0' Version::Next: '0' constant: '0' namespace::autoclean: '0.09' perl: '5.010' strict: '0' version: '0.80' warnings: '0' resources: IRC: irc://irc.perl.org/#distzilla MailingList: http://dzil.org/#mailing-list bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Dist-Zilla-Plugin-Git homepage: https://github.com/karenetheridge/Dist-Zilla-Plugin-Git repository: https://github.com/karenetheridge/Dist-Zilla-Plugin-Git.git version: '2.046' x_Dist_Zilla: perl: version: '5.029008' plugins: - class: Dist::Zilla::Plugin::Bootstrap::lib config: Dist::Zilla::Role::Bootstrap: $Dist::Zilla::Role::Bootstrap::VERSION: '1.001004' distname: Dist-Zilla-Plugin-Git fallback: '1' try_built: ~ try_built_method: mtime name: Bootstrap::lib version: '1.001002' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop type: recommends name: '@Author::ETHER/pluginbundle version' version: '6.012' - class: Dist::Zilla::Plugin::PromptIfStale config: Dist::Zilla::Plugin::PromptIfStale: check_all_plugins: 0 check_all_prereqs: 0 modules: - Dist::Zilla::PluginBundle::Author::ETHER phase: build run_under_travis: 0 skip: [] name: '@Author::ETHER/stale modules, build' version: '0.055' - class: Dist::Zilla::Plugin::FileFinder::ByName name: '@Author::ETHER/Examples' version: '6.012' - class: Dist::Zilla::Plugin::Git::GatherDir config: Dist::Zilla::Plugin::GatherDir: exclude_filename: - CONTRIBUTING - INSTALL - LICENCE - README.pod - TODO exclude_match: [] follow_symlinks: 0 include_dotfiles: 0 prefix: '' prune_directory: [] root: . Dist::Zilla::Plugin::Git::GatherDir: include_untracked: 0 name: '@Author::ETHER/Git::GatherDir' version: '2.046' - class: Dist::Zilla::Plugin::MetaYAML name: '@Author::ETHER/MetaYAML' version: '6.012' - class: Dist::Zilla::Plugin::MetaJSON name: '@Author::ETHER/MetaJSON' version: '6.012' - class: Dist::Zilla::Plugin::Readme name: '@Author::ETHER/Readme' version: '6.012' - class: Dist::Zilla::Plugin::Manifest name: '@Author::ETHER/Manifest' version: '6.012' - class: Dist::Zilla::Plugin::License name: '@Author::ETHER/License' version: '6.012' - class: Dist::Zilla::Plugin::GenerateFile::FromShareDir config: Dist::Zilla::Plugin::GenerateFile::FromShareDir: destination_filename: CONTRIBUTING dist: Dist-Zilla-PluginBundle-Author-ETHER encoding: UTF-8 has_xs: 0 location: build source_filename: CONTRIBUTING Dist::Zilla::Role::RepoFileInjector: allow_overwrite: 1 repo_root: . version: '0.009' name: '@Author::ETHER/generate CONTRIBUTING' version: '0.014' - class: Dist::Zilla::Plugin::InstallGuide name: '@Author::ETHER/InstallGuide' version: '1.200012' - class: Dist::Zilla::Plugin::Test::Compile config: Dist::Zilla::Plugin::Test::Compile: bail_out_on_fail: '1' fail_on_warning: author fake_home: 0 filename: xt/author/00-compile.t module_finder: - ':InstallModules' needs_display: 0 phase: develop script_finder: - ':PerlExecFiles' - '@Author::ETHER/Examples' skips: [] switch: [] name: '@Author::ETHER/Test::Compile' version: '2.058' - class: Dist::Zilla::Plugin::Test::EOL config: Dist::Zilla::Plugin::Test::EOL: filename: xt/author/eol.t finder: - ':ExecFiles' - ':ExtraTestFiles' - ':InstallModules' - ':TestFiles' - '@Author::ETHER/Examples' trailing_whitespace: 1 name: '@Author::ETHER/Test::EOL' version: '0.19' - class: Dist::Zilla::Plugin::MetaTests name: '@Author::ETHER/MetaTests' version: '6.012' - class: Dist::Zilla::Plugin::Test::CPAN::Changes config: Dist::Zilla::Plugin::Test::CPAN::Changes: changelog: Changes name: '@Author::ETHER/Test::CPAN::Changes' version: '0.012' - class: Dist::Zilla::Plugin::GenerateFile::FromShareDir config: Dist::Zilla::Plugin::GenerateFile::FromShareDir: destination_filename: xt/author/changes_has_content.t dist: Dist-Zilla-PluginBundle-Author-ETHER encoding: UTF-8 location: build source_filename: changes_has_content.t Dist::Zilla::Role::RepoFileInjector: allow_overwrite: 1 repo_root: . version: '0.009' name: '@Author::ETHER/generate xt/author/changes_has_content.t' version: '0.014' - class: Dist::Zilla::Plugin::Test::ChangesHasContent name: '@Author::ETHER/Test::ChangesHasContent' version: '0.011' - class: Dist::Zilla::Plugin::Test::MinimumVersion name: '@Author::ETHER/Test::MinimumVersion' version: '2.000008' - class: Dist::Zilla::Plugin::PodSyntaxTests name: '@Author::ETHER/PodSyntaxTests' version: '6.012' - class: Dist::Zilla::Plugin::PodCoverageTests name: '@Author::ETHER/PodCoverageTests' version: '6.012' - class: Dist::Zilla::Plugin::Test::Kwalitee config: Dist::Zilla::Plugin::Test::Kwalitee: filename: xt/author/kwalitee.t skiptest: [] name: '@Author::ETHER/Test::Kwalitee' version: '2.12' - class: Dist::Zilla::Plugin::MojibakeTests name: '@Author::ETHER/MojibakeTests' version: '0.8' - class: Dist::Zilla::Plugin::Test::ReportPrereqs name: '@Author::ETHER/Test::ReportPrereqs' version: '0.027' - class: Dist::Zilla::Plugin::Test::Portability config: Dist::Zilla::Plugin::Test::Portability: options: '' name: '@Author::ETHER/Test::Portability' version: '2.001000' - class: Dist::Zilla::Plugin::Test::CleanNamespaces config: Dist::Zilla::Plugin::Test::CleanNamespaces: filename: xt/author/clean-namespaces.t skips: [] name: '@Author::ETHER/Test::CleanNamespaces' version: '0.006' - class: Dist::Zilla::Plugin::Git::Describe name: '@Author::ETHER/Git::Describe' version: '0.007' - class: Dist::Zilla::Plugin::PodWeaver config: Dist::Zilla::Plugin::PodWeaver: config_plugins: - '@Author::ETHER' finder: - ':InstallModules' - ':ExecFiles' plugins: - class: Pod::Weaver::Plugin::EnsurePod5 name: '@Author::ETHER/EnsurePod5' version: '4.015' - class: Pod::Weaver::Plugin::H1Nester name: '@Author::ETHER/H1Nester' version: '4.015' - class: Pod::Weaver::Plugin::SingleEncoding name: '@Author::ETHER/SingleEncoding' version: '4.015' - class: Pod::Weaver::Plugin::Transformer name: '@Author::ETHER/List' version: '4.015' - class: Pod::Weaver::Plugin::Transformer name: '@Author::ETHER/Verbatim' version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/header' version: '4.015' - class: Pod::Weaver::Section::Name name: '@Author::ETHER/Name' version: '4.015' - class: Pod::Weaver::Section::Version name: '@Author::ETHER/Version' version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/prelude' version: '4.015' - class: Pod::Weaver::Section::Generic name: SYNOPSIS version: '4.015' - class: Pod::Weaver::Section::Generic name: DESCRIPTION version: '4.015' - class: Pod::Weaver::Section::Generic name: OVERVIEW version: '4.015' - class: Pod::Weaver::Section::Collect name: ATTRIBUTES version: '4.015' - class: Pod::Weaver::Section::Collect name: METHODS version: '4.015' - class: Pod::Weaver::Section::Collect name: FUNCTIONS version: '4.015' - class: Pod::Weaver::Section::Collect name: TYPES version: '4.015' - class: Pod::Weaver::Section::Leftovers name: '@Author::ETHER/Leftovers' version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/postlude' version: '4.015' - class: Pod::Weaver::Section::GenerateSection name: '@Author::ETHER/generate SUPPORT' version: '1.06' - class: Pod::Weaver::Section::AllowOverride name: '@Author::ETHER/allow override SUPPORT' version: '0.05' - class: Pod::Weaver::Section::Authors name: '@Author::ETHER/Authors' version: '4.015' - class: Pod::Weaver::Section::AllowOverride name: '@Author::ETHER/allow override AUTHOR' version: '0.05' - class: Pod::Weaver::Section::Contributors name: '@Author::ETHER/Contributors' version: '0.009' - class: Pod::Weaver::Section::Legal name: '@Author::ETHER/Legal' version: '4.015' - class: Pod::Weaver::Section::Region name: '@Author::ETHER/footer' version: '4.015' name: '@Author::ETHER/PodWeaver' version: '4.008' - class: Dist::Zilla::Plugin::GithubMeta name: '@Author::ETHER/GithubMeta' version: '0.58' - class: Dist::Zilla::Plugin::AutoMetaResources name: '@Author::ETHER/AutoMetaResources' version: '1.21' - class: Dist::Zilla::Plugin::Authority name: '@Author::ETHER/Authority' version: '1.009' - class: Dist::Zilla::Plugin::MetaNoIndex name: '@Author::ETHER/MetaNoIndex' version: '6.012' - class: Dist::Zilla::Plugin::MetaProvides::Package config: Dist::Zilla::Plugin::MetaProvides::Package: finder: - ':InstallModules' finder_objects: - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' version: '6.012' include_underscores: 0 Dist::Zilla::Role::MetaProvider::Provider: $Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004' inherit_missing: '0' inherit_version: '0' meta_noindex: '1' Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000034' version: '0.006' name: '@Author::ETHER/MetaProvides::Package' version: '2.004003' - class: Dist::Zilla::Plugin::MetaConfig name: '@Author::ETHER/MetaConfig' version: '6.012' - class: Dist::Zilla::Plugin::Keywords config: Dist::Zilla::Plugin::Keywords: keywords: [] name: '@Author::ETHER/Keywords' version: '0.007' - class: Dist::Zilla::Plugin::UseUnsafeInc config: Dist::Zilla::Plugin::UseUnsafeInc: dot_in_INC: 0 name: '@Author::ETHER/UseUnsafeInc' version: '0.001' - class: Dist::Zilla::Plugin::AutoPrereqs name: '@Author::ETHER/AutoPrereqs' version: '6.012' - class: Dist::Zilla::Plugin::Prereqs::AuthorDeps name: '@Author::ETHER/Prereqs::AuthorDeps' version: '0.006' - class: Dist::Zilla::Plugin::MinimumPerl name: '@Author::ETHER/MinimumPerl' version: '1.006' - class: Dist::Zilla::Plugin::Git::Contributors config: Dist::Zilla::Plugin::Git::Contributors: git_version: 2.19.1 include_authors: 0 include_releaser: 1 order_by: commits paths: [] name: '@Author::ETHER/Git::Contributors' version: '0.035' - class: Dist::Zilla::Plugin::StaticInstall config: Dist::Zilla::Plugin::StaticInstall: dry_run: 0 mode: auto name: '@Author::ETHER/StaticInstall' version: '0.012' - class: Dist::Zilla::Plugin::RunExtraTests config: Dist::Zilla::Role::TestRunner: default_jobs: 9 name: '@Author::ETHER/RunExtraTests' version: '0.029' - class: Dist::Zilla::Plugin::CheckSelfDependency config: Dist::Zilla::Plugin::CheckSelfDependency: finder: - ':InstallModules' Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000034' version: '0.006' name: '@Author::ETHER/CheckSelfDependency' version: '0.011' - class: Dist::Zilla::Plugin::Run::AfterBuild config: Dist::Zilla::Plugin::Run::Role::Runner: fatal_errors: 1 quiet: 1 run: - "bash -c \"test -e .ackrc && grep -q -- '--ignore-dir=.latest' .ackrc || echo '--ignore-dir=.latest' >> .ackrc; if [[ `dirname '%d'` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi\"" version: '0.048' name: '@Author::ETHER/.ackrc' version: '0.048' - class: Dist::Zilla::Plugin::Run::AfterBuild config: Dist::Zilla::Plugin::Run::Role::Runner: eval: - "if ('%d' =~ /^%n-[.[:xdigit:]]+$/) { unlink '.latest'; symlink '%d', '.latest'; }" fatal_errors: 0 quiet: 1 version: '0.048' name: '@Author::ETHER/.latest' version: '0.048' - class: Dist::Zilla::Plugin::CheckStrictVersion name: '@Author::ETHER/CheckStrictVersion' version: '0.001' - class: Dist::Zilla::Plugin::CheckMetaResources name: '@Author::ETHER/CheckMetaResources' version: '0.001' - class: Dist::Zilla::Plugin::EnsureLatestPerl config: Dist::Zilla::Plugin::EnsureLatestPerl: Module::CoreList: '5.20190220' name: '@Author::ETHER/EnsureLatestPerl' version: '0.008' - class: Dist::Zilla::Plugin::PromptIfStale config: Dist::Zilla::Plugin::PromptIfStale: check_all_plugins: 1 check_all_prereqs: 1 modules: [] phase: release run_under_travis: 0 skip: [] name: '@Author::ETHER/stale modules, release' version: '0.055' - class: Dist::Zilla::Plugin::Git::Check config: Dist::Zilla::Plugin::Git::Check: untracked_files: die Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: [] allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . name: '@Author::ETHER/initial check' version: '2.046' - class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts config: Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::CheckFor::MergeConflicts' version: '0.014' - class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch config: Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::CheckFor::CorrectBranch' version: '0.014' - class: Dist::Zilla::Plugin::Git::Remote::Check name: '@Author::ETHER/Git::Remote::Check' version: 0.1.2 - class: Dist::Zilla::Plugin::CheckPrereqsIndexed name: '@Author::ETHER/CheckPrereqsIndexed' version: '0.020' - class: Dist::Zilla::Plugin::TestRelease name: '@Author::ETHER/TestRelease' version: '6.012' - class: Dist::Zilla::Plugin::Git::Check config: Dist::Zilla::Plugin::Git::Check: untracked_files: die Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: [] allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . name: '@Author::ETHER/after tests' version: '2.046' - class: Dist::Zilla::Plugin::CheckIssues name: '@Author::ETHER/CheckIssues' version: '0.010' - class: Dist::Zilla::Plugin::UploadToCPAN name: '@Author::ETHER/UploadToCPAN' version: '6.012' - class: Dist::Zilla::Plugin::CopyFilesFromRelease config: Dist::Zilla::Plugin::CopyFilesFromRelease: filename: - CONTRIBUTING - INSTALL - LICENCE - LICENSE - ppport.h match: [] name: '@Author::ETHER/copy generated files' version: '0.007' - class: Dist::Zilla::Plugin::ReadmeAnyFromPod config: Dist::Zilla::Role::FileWatcher: version: '0.006' name: '@Author::ETHER/ReadmeAnyFromPod' version: '0.163250' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: develop type: recommends name: '@Author::ETHER/@Git::VersionManager/pluginbundle version' version: '6.012' - class: Dist::Zilla::Plugin::RewriteVersion::Transitional config: Dist::Zilla::Plugin::RewriteVersion: add_tarball_name: 0 finders: - ':ExecFiles' - ':InstallModules' global: 1 skip_version_provider: 0 Dist::Zilla::Plugin::RewriteVersion::Transitional: {} name: '@Author::ETHER/@Git::VersionManager/RewriteVersion::Transitional' version: '0.009' - class: Dist::Zilla::Plugin::MetaProvides::Update name: '@Author::ETHER/@Git::VersionManager/MetaProvides::Update' version: '0.007' - class: Dist::Zilla::Plugin::CopyFilesFromRelease config: Dist::Zilla::Plugin::CopyFilesFromRelease: filename: - Changes match: [] name: '@Author::ETHER/@Git::VersionManager/CopyFilesFromRelease' version: '0.007' - class: Dist::Zilla::Plugin::Git::Commit config: Dist::Zilla::Plugin::Git::Commit: add_files_in: - . commit_msg: '%N-%v%t%n%n%c' Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - CONTRIBUTING - Changes - INSTALL - LICENCE - README.pod allow_dirty_match: [] changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::ETHER/@Git::VersionManager/release snapshot' version: '2.046' - class: Dist::Zilla::Plugin::Git::Tag config: Dist::Zilla::Plugin::Git::Tag: branch: ~ changelog: Changes signed: 0 tag: v2.046 tag_format: v%V tag_message: v%v%t Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::ETHER/@Git::VersionManager/Git::Tag' version: '2.046' - class: Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional config: Dist::Zilla::Plugin::BumpVersionAfterRelease: finders: - ':ExecFiles' - ':InstallModules' global: 1 munge_makefile_pl: 1 Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional: {} name: '@Author::ETHER/@Git::VersionManager/BumpVersionAfterRelease::Transitional' version: '0.009' - class: Dist::Zilla::Plugin::NextRelease name: '@Author::ETHER/@Git::VersionManager/NextRelease' version: '6.012' - class: Dist::Zilla::Plugin::Git::Commit config: Dist::Zilla::Plugin::Git::Commit: add_files_in: [] commit_msg: 'increment $VERSION after %v release' Dist::Zilla::Role::Git::DirtyFiles: allow_dirty: - Build.PL - Changes - Makefile.PL allow_dirty_match: - (?^:^lib/.*\.pm$) changelog: Changes Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . Dist::Zilla::Role::Git::StringFormatter: time_zone: local name: '@Author::ETHER/@Git::VersionManager/post-release commit' version: '2.046' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: x_Dist_Zilla type: requires name: '@Author::ETHER/@Git::VersionManager/prereqs for @Git::VersionManager' version: '6.012' - class: Dist::Zilla::Plugin::Git::Push config: Dist::Zilla::Plugin::Git::Push: push_to: - origin remotes_must_exist: 1 Dist::Zilla::Role::Git::Repo: git_version: 2.19.1 repo_root: . name: '@Author::ETHER/Git::Push' version: '2.046' - class: Dist::Zilla::Plugin::GitHub::Update config: Dist::Zilla::Plugin::GitHub::Update: metacpan: 1 name: '@Author::ETHER/GitHub::Update' version: '0.47' - class: Dist::Zilla::Plugin::Run::AfterRelease config: Dist::Zilla::Plugin::Run::Role::Runner: fatal_errors: 0 quiet: 0 run: - REDACTED version: '0.048' name: '@Author::ETHER/install release' version: '0.048' - class: Dist::Zilla::Plugin::Run::AfterRelease config: Dist::Zilla::Plugin::Run::Role::Runner: eval: - 'print "release complete!\xa"' fatal_errors: 1 quiet: 1 version: '0.048' name: '@Author::ETHER/release complete' version: '0.048' - class: Dist::Zilla::Plugin::ConfirmRelease name: '@Author::ETHER/ConfirmRelease' version: '6.012' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: x_Dist_Zilla type: requires name: '@Author::ETHER/prereqs for @Author::ETHER' version: '6.012' - class: Dist::Zilla::Plugin::MakeMaker::Awesome config: Dist::Zilla::Plugin::MakeMaker: make_path: make version: '6.012' Dist::Zilla::Role::TestRunner: default_jobs: 1 version: '6.012' name: MakeMaker::Awesome version: '0.47' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: configure type: requires name: ConfigureRequires version: '6.012' - class: Dist::Zilla::Plugin::Prereqs config: Dist::Zilla::Plugin::Prereqs: phase: runtime type: requires name: Prereqs version: '6.012' - class: Dist::Zilla::Plugin::Prepender name: Prepender version: '2.004' - class: Dist::Zilla::Plugin::Covenant name: Covenant version: 0.1.2 - class: Dist::Zilla::Plugin::Encoding name: Encoding version: '6.012' - class: Dist::Zilla::Plugin::MetaResources name: MetaResources version: '6.012' - class: Dist::Zilla::Plugin::Breaks name: Breaks version: '0.004' - class: Dist::Zilla::Plugin::Test::CheckBreaks config: Dist::Zilla::Plugin::Test::CheckBreaks: conflicts_module: - Module::Runtime::Conflicts - Moose::Conflicts no_forced_deps: 0 Dist::Zilla::Role::ModuleMetadata: Module::Metadata: '1.000034' version: '0.006' name: Test::CheckBreaks version: '0.019' - class: Dist::Zilla::Plugin::FinderCode name: ':InstallModules' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':IncModules' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':TestFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ExtraTestFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ExecFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':PerlExecFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':ShareFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':MainModule' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':AllFiles' version: '6.012' - class: Dist::Zilla::Plugin::FinderCode name: ':NoFiles' version: '6.012' - class: Dist::Zilla::Plugin::VerifyPhases name: '@Author::ETHER/PHASE VERIFICATION' version: '0.016' zilla: class: Dist::Zilla::Dist::Builder config: is_trial: '0' version: '6.012' x_author_pledge: version: 1 x_authority: cpan:JQUELIN x_breaks: Dist::Zilla::App::CommandHelper::ChainSmoking: '<= 1.04' x_contributors: - 'Christopher J. Madsen ' - 'Jérôme Quelin ' - 'Karen Etheridge ' - 'Kent Fredric ' - 'Yanick Champoux ' - 'Ricardo Signes ' - 'Graham Knop ' - 'David Golden ' - 'Mike Friedman ' - 'Chris Weyl ' - 'Stephen R. Scaffidi ' - 'Randy Stauner ' - 'Graham Barr ' - 'Apocalypse ' - 'Mike Doherty ' - 'Nigel Metheringham ' - 'Olivier Mengué ' - 'Tatsuhiko Miyagawa ' - 'Tuomas Jormola ' - 'Alessandro Ghedini ' - 'Brian Phillips ' - 'David Steinbrunner ' - 'Geoffrey Broadwell ' - 'Harley Pig ' - 'Jesse Luehrs ' - 'Brendan Byrd ' - 'Alexandr Ciornii ' - 'Matt Follett ' - 'Michael Schout ' x_generated_by_perl: v5.29.8 x_serialization_backend: 'YAML::Tiny version 1.73' x_static_install: 0 x_use_unsafe_inc: 0 Dist-Zilla-Plugin-Git-2.046/README000644 000766 000024 00000000600 13443320014 016577 0ustar00etherstaff000000 000000 This archive contains the distribution Dist-Zilla-Plugin-Git, version 2.046: Update your git repository after release This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. This README file was generated by Dist::Zilla::Plugin::Readme v6.012. Dist-Zilla-Plugin-Git-2.046/t/000700 000766 000024 00000000000 13443320014 016154 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/xt/000700 000766 000024 00000000000 13443320014 016344 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/xt/author/000700 000766 000024 00000000000 13443320014 017646 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/xt/release/000700 000766 000024 00000000000 13443320014 017764 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/xt/release/changes_has_content.t000644 000766 000024 00000002101 13443320014 024152 0ustar00etherstaff000000 000000 use Test::More tests => 2; note 'Checking Changes'; my $changes_file = 'Changes'; my $newver = '2.046'; my $trial_token = '-TRIAL'; my $encoding = 'UTF-8'; SKIP: { ok(-e $changes_file, "$changes_file file exists") or skip 'Changes is missing', 1; ok(_get_changes($newver), "$changes_file has content for $newver"); } done_testing; sub _get_changes { my $newver = shift; # parse changelog to find commit message open(my $fh, '<', $changes_file) or die "cannot open $changes_file: $!"; my $changelog = join('', <$fh>); if ($encoding) { require Encode; $changelog = Encode::decode($encoding, $changelog, Encode::FB_CROAK()); } close $fh; my @content = grep { /^$newver(?:$trial_token)?(?:\s+|$)/ ... /^\S/ } # from newver to un-indented split /\n/, $changelog; shift @content; # drop the version line # drop unindented last line and trailing blank lines pop @content while ( @content && $content[-1] =~ /^(?:\S|\s*$)/ ); # return number of non-blank lines return scalar @content; } Dist-Zilla-Plugin-Git-2.046/xt/release/cpan-changes.t000644 000766 000024 00000000344 13443320014 022513 0ustar00etherstaff000000 000000 use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::CPAN::Changes 0.012 use Test::More 0.96 tests => 1; use Test::CPAN::Changes; subtest 'changes_ok' => sub { changes_file_ok('Changes'); }; Dist-Zilla-Plugin-Git-2.046/xt/release/distmeta.t000644 000766 000024 00000000562 13443320014 022000 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # This file was automatically generated by Dist::Zilla::Plugin::MetaTests. use Test::CPAN::Meta; meta_yaml_ok(); Dist-Zilla-Plugin-Git-2.046/xt/author/00-compile.t000644 000766 000024 00000003514 13443320014 021715 0ustar00etherstaff000000 000000 use 5.006; use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058 use Test::More 0.94; plan tests => 14; my @module_files = ( 'Dist/Zilla/Plugin/Git.pm', 'Dist/Zilla/Plugin/Git/Check.pm', 'Dist/Zilla/Plugin/Git/Commit.pm', 'Dist/Zilla/Plugin/Git/CommitBuild.pm', 'Dist/Zilla/Plugin/Git/GatherDir.pm', 'Dist/Zilla/Plugin/Git/Init.pm', 'Dist/Zilla/Plugin/Git/NextVersion.pm', 'Dist/Zilla/Plugin/Git/Push.pm', 'Dist/Zilla/Plugin/Git/Tag.pm', 'Dist/Zilla/PluginBundle/Git.pm', 'Dist/Zilla/Role/Git/DirtyFiles.pm', 'Dist/Zilla/Role/Git/Repo.pm', 'Dist/Zilla/Role/Git/StringFormatter.pm' ); # no fake home requested my @switches = ( -d 'blib' ? '-Mblib' : '-Ilib', ); use File::Spec; use IPC::Open3; use IO::Handle; open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!"; my @warnings; for my $lib (@module_files) { # see L my $stderr = IO::Handle->new; diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} } $^X, @switches, '-e', "require q[$lib]")) if $ENV{PERL_COMPILE_TEST_DEBUG}; my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]"); binmode $stderr, ':crlf' if $^O eq 'MSWin32'; my @_warnings = <$stderr>; waitpid($pid, 0); is($?, 0, "$lib loaded ok"); shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/ and not eval { +require blib; blib->VERSION('1.01') }; if (@_warnings) { warn @_warnings; push @warnings, @_warnings; } } is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain(\@warnings); BAIL_OUT("Compilation problems") if !Test::More->builder->is_passing; Dist-Zilla-Plugin-Git-2.046/xt/author/changes_has_content.t000644 000766 000024 00000001032 13443320014 024036 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::More; plan skip_all => 'xt/release/changes_has_content.t is missing' if not -e 'xt/release/changes_has_content.t'; # skip for master branch, only for travis if (($ENV{TRAVIS_PULL_REQUEST} || '') eq 'false') { chomp(my $branch_name = ($ENV{TRAVIS_BRANCH} || `git rev-parse --abbrev-ref HEAD`)); $TODO = 'Changes need not have content for this release yet if this is only the master branch' if ($branch_name || '') eq 'master'; } do './xt/release/changes_has_content.t'; die $@ if $@; Dist-Zilla-Plugin-Git-2.046/xt/author/clean-namespaces.t000644 000766 000024 00000000361 13443320014 023244 0ustar00etherstaff000000 000000 use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::CleanNamespaces 0.006 use Test::More 0.94; use Test::CleanNamespaces 0.15; subtest all_namespaces_clean => sub { all_namespaces_clean() }; done_testing; Dist-Zilla-Plugin-Git-2.046/xt/author/eol.t000644 000766 000024 00000003551 13443320014 020630 0ustar00etherstaff000000 000000 use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::EOL 0.19 use Test::More 0.88; use Test::EOL; my @files = ( 'lib/Dist/Zilla/Plugin/Git.pm', 'lib/Dist/Zilla/Plugin/Git/Check.pm', 'lib/Dist/Zilla/Plugin/Git/Commit.pm', 'lib/Dist/Zilla/Plugin/Git/CommitBuild.pm', 'lib/Dist/Zilla/Plugin/Git/GatherDir.pm', 'lib/Dist/Zilla/Plugin/Git/Init.pm', 'lib/Dist/Zilla/Plugin/Git/NextVersion.pm', 'lib/Dist/Zilla/Plugin/Git/Push.pm', 'lib/Dist/Zilla/Plugin/Git/Tag.pm', 'lib/Dist/Zilla/PluginBundle/Git.pm', 'lib/Dist/Zilla/Role/Git/DirtyFiles.pm', 'lib/Dist/Zilla/Role/Git/Repo.pm', 'lib/Dist/Zilla/Role/Git/StringFormatter.pm', 't/00-report-prereqs.dd', 't/00-report-prereqs.t', 't/000-report-git-version.t', 't/check.t', 't/commit-build-custom.t', 't/commit-build-src-as-parent.t', 't/commit-build.t', 't/commit-dirtydir.t', 't/commit-message.t', 't/commit-utf8.t', 't/commit-ws.t', 't/commit.t', 't/gatherdir-multi.t', 't/gatherdir.t', 't/lib/Dist/Zilla/Plugin/MyTestArchiver.pm', 't/lib/Util.pm', 't/push-gitconfig.t', 't/push-multi.t', 't/push.t', 't/repo-dir.t', 't/tag-signed.t', 't/tag.t', 't/version-by-branch.t', 't/version-default.t', 't/version-extraction.t', 't/version-regexp.t', 't/zzz-check-breaks.t', 'xt/author/00-compile.t', 'xt/author/changes_has_content.t', 'xt/author/clean-namespaces.t', 'xt/author/eol.t', 'xt/author/kwalitee.t', 'xt/author/minimum-version.t', 'xt/author/mojibake.t', 'xt/author/pod-coverage.t', 'xt/author/pod-syntax.t', 'xt/author/portability.t', 'xt/release/changes_has_content.t', 'xt/release/cpan-changes.t', 'xt/release/distmeta.t' ); eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files; done_testing; Dist-Zilla-Plugin-Git-2.046/xt/author/kwalitee.t000644 000766 000024 00000000275 13443320014 021656 0ustar00etherstaff000000 000000 # this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.12 use strict; use warnings; use Test::More 0.88; use Test::Kwalitee 1.21 'kwalitee_ok'; kwalitee_ok(); done_testing; Dist-Zilla-Plugin-Git-2.046/xt/author/minimum-version.t000644 000766 000024 00000000520 13443320014 023200 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use Test::More; use Test::MinimumVersion; all_minimum_version_ok( qq{5.010} ); Dist-Zilla-Plugin-Git-2.046/xt/author/mojibake.t000644 000766 000024 00000000541 13443320014 021626 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use strict; use warnings qw(all); use Test::More; use Test::Mojibake; all_files_encoding_ok(); Dist-Zilla-Plugin-Git-2.046/xt/author/pod-coverage.t000644 000766 000024 00000000724 13443320014 022423 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests. use Test::Pod::Coverage 1.08; use Pod::Coverage::TrustPod; all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' }); Dist-Zilla-Plugin-Git-2.046/xt/author/pod-syntax.t000644 000766 000024 00000000642 13443320014 022155 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); Dist-Zilla-Plugin-Git-2.046/xt/author/portability.t000644 000766 000024 00000000267 13443320014 022414 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::More; eval 'use Test::Portability::Files'; plan skip_all => 'Test::Portability::Files required for testing portability' if $@; run_tests(); Dist-Zilla-Plugin-Git-2.046/t/00-report-prereqs.dd000644 000766 000024 00000031535 13443320014 021715 0ustar00etherstaff000000 000000 do { my $x = { 'configure' => { 'requires' => { 'ExtUtils::MakeMaker' => '0', 'Text::ParseWords' => '0', 'perl' => '5.010', 'version' => '0' } }, 'develop' => { 'recommends' => { 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.147', 'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007' }, 'requires' => { 'Encode' => '0', 'File::Spec' => '0', 'IO::Handle' => '0', 'IPC::Open3' => '0', 'Pod::Coverage::TrustPod' => '0', 'Test::CPAN::Changes' => '0.19', 'Test::CPAN::Meta' => '0', 'Test::CleanNamespaces' => '0.15', 'Test::EOL' => '0', 'Test::Kwalitee' => '1.21', 'Test::MinimumVersion' => '0', 'Test::Mojibake' => '0', 'Test::More' => '0.96', 'Test::Pod' => '1.41', 'Test::Pod::Coverage' => '1.08', 'Test::Portability::Files' => '0' } }, 'runtime' => { 'requires' => { 'Cwd' => '0', 'DateTime' => '0', 'Dist::Zilla' => '4', 'Dist::Zilla::Plugin::GatherDir' => '4.200016', 'Dist::Zilla::Role::AfterBuild' => '0', 'Dist::Zilla::Role::AfterMint' => '0', 'Dist::Zilla::Role::AfterRelease' => '0', 'Dist::Zilla::Role::BeforeRelease' => '0', 'Dist::Zilla::Role::FilePruner' => '0', 'Dist::Zilla::Role::GitConfig' => '0', 'Dist::Zilla::Role::PluginBundle' => '0', 'Dist::Zilla::Role::VersionProvider' => '0', 'File::Spec::Functions' => '0', 'File::Temp' => '0', 'File::chdir' => '0', 'Git::Wrapper' => '0.021', 'IPC::Open3' => '0', 'IPC::System::Simple' => '0', 'List::Util' => '1.45', 'Module::Runtime' => '0', 'Moose' => '0', 'Moose::Role' => '0', 'MooseX::Has::Sugar' => '0', 'Path::Tiny' => '0.048', 'String::Formatter' => '0', 'Try::Tiny' => '0', 'Type::Utils' => '0', 'Types::Path::Tiny' => '0', 'Types::Standard' => '0', 'Version::Next' => '0', 'constant' => '0', 'namespace::autoclean' => '0.09', 'perl' => '5.010', 'strict' => '0', 'version' => '0.80', 'warnings' => '0' } }, 'test' => { 'recommends' => { 'CPAN::Meta' => '2.120900' }, 'requires' => { 'CPAN::Meta::Check' => '0.011', 'CPAN::Meta::Requirements' => '0', 'Dist::Zilla::File::InMemory' => '0', 'Dist::Zilla::Plugin::Config::Git' => '0', 'Dist::Zilla::Role::Releaser' => '0', 'Dist::Zilla::Tester' => '0', 'Encode' => '0', 'Exporter' => '0', 'ExtUtils::MakeMaker' => '0', 'File::Copy' => '0', 'File::Copy::Recursive' => '0', 'File::Path' => '2.07', 'File::Spec' => '0', 'File::Which' => '0', 'File::pushd' => '0', 'Log::Dispatchouli' => '0', 'Test::DZil' => '0', 'Test::Fatal' => '0', 'Test::More' => '0.88', 'lib' => '0', 'perl' => '5.010', 'utf8' => '0' } }, 'x_Dist_Zilla' => { 'requires' => { 'Dist::Zilla' => '5', 'Dist::Zilla::Plugin::Authority' => '1.009', 'Dist::Zilla::Plugin::AutoMetaResources' => '0', 'Dist::Zilla::Plugin::AutoPrereqs' => '5.038', 'Dist::Zilla::Plugin::Bootstrap::lib' => '0', 'Dist::Zilla::Plugin::Breaks' => '0', 'Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional' => '0.004', 'Dist::Zilla::Plugin::CheckIssues' => '0', 'Dist::Zilla::Plugin::CheckMetaResources' => '0', 'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0.019', 'Dist::Zilla::Plugin::CheckSelfDependency' => '0', 'Dist::Zilla::Plugin::CheckStrictVersion' => '0', 'Dist::Zilla::Plugin::ConfirmRelease' => '0', 'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0', 'Dist::Zilla::Plugin::Covenant' => '0', 'Dist::Zilla::Plugin::Encoding' => '0', 'Dist::Zilla::Plugin::EnsureLatestPerl' => '0', 'Dist::Zilla::Plugin::FileFinder::ByName' => '0', 'Dist::Zilla::Plugin::GenerateFile::FromShareDir' => '0', 'Dist::Zilla::Plugin::Git::Check' => '0', 'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004', 'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0', 'Dist::Zilla::Plugin::Git::Commit' => '2.020', 'Dist::Zilla::Plugin::Git::Contributors' => '0.029', 'Dist::Zilla::Plugin::Git::Describe' => '0.004', 'Dist::Zilla::Plugin::Git::GatherDir' => '2.016', 'Dist::Zilla::Plugin::Git::Push' => '0', 'Dist::Zilla::Plugin::Git::Remote::Check' => '0', 'Dist::Zilla::Plugin::Git::Tag' => '0', 'Dist::Zilla::Plugin::GitHub::Update' => '0.40', 'Dist::Zilla::Plugin::GithubMeta' => '0.54', 'Dist::Zilla::Plugin::InstallGuide' => '1.200005', 'Dist::Zilla::Plugin::Keywords' => '0.004', 'Dist::Zilla::Plugin::License' => '5.038', 'Dist::Zilla::Plugin::MakeMaker::Awesome' => '0.35', 'Dist::Zilla::Plugin::Manifest' => '0', 'Dist::Zilla::Plugin::MetaConfig' => '0', 'Dist::Zilla::Plugin::MetaJSON' => '0', 'Dist::Zilla::Plugin::MetaNoIndex' => '0', 'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002', 'Dist::Zilla::Plugin::MetaResources' => '0', 'Dist::Zilla::Plugin::MetaTests' => '0', 'Dist::Zilla::Plugin::MetaYAML' => '0', 'Dist::Zilla::Plugin::MinimumPerl' => '1.006', 'Dist::Zilla::Plugin::MojibakeTests' => '0.8', 'Dist::Zilla::Plugin::NextRelease' => '5.033', 'Dist::Zilla::Plugin::PodCoverageTests' => '5.040', 'Dist::Zilla::Plugin::PodSyntaxTests' => '5.040', 'Dist::Zilla::Plugin::PodWeaver' => '4.005', 'Dist::Zilla::Plugin::Prepender' => '0', 'Dist::Zilla::Plugin::Prereqs' => '0', 'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0.006', 'Dist::Zilla::Plugin::PromptIfStale' => '0', 'Dist::Zilla::Plugin::Readme' => '0', 'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180', 'Dist::Zilla::Plugin::RewriteVersion::Transitional' => '0.004', 'Dist::Zilla::Plugin::Run::AfterBuild' => '0.041', 'Dist::Zilla::Plugin::Run::AfterRelease' => '0.038', 'Dist::Zilla::Plugin::RunExtraTests' => '0.024', 'Dist::Zilla::Plugin::StaticInstall' => '0.005', 'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.012', 'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0', 'Dist::Zilla::Plugin::Test::CheckBreaks' => '0.017', 'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0.006', 'Dist::Zilla::Plugin::Test::Compile' => '2.039', 'Dist::Zilla::Plugin::Test::EOL' => '0.17', 'Dist::Zilla::Plugin::Test::Kwalitee' => '2.10', 'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000008', 'Dist::Zilla::Plugin::Test::Portability' => '2.000007', 'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0.022', 'Dist::Zilla::Plugin::TestRelease' => '0', 'Dist::Zilla::Plugin::UploadToCPAN' => '0', 'Dist::Zilla::Plugin::UseUnsafeInc' => '0', 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.119', 'Dist::Zilla::PluginBundle::Git::VersionManager' => '0.007', 'Software::License::Perl_5' => '0', 'Types::Path::Tiny' => '0', 'Types::Standard' => '0' } } }; $x; }Dist-Zilla-Plugin-Git-2.046/t/00-report-prereqs.t000644 000766 000024 00000014155 13443320014 021570 0ustar00etherstaff000000 000000 #!perl # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use strict; use warnings; # This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.027 use Test::More tests => 1; use ExtUtils::MakeMaker; use File::Spec; # from $version::LAX my $lax_version_re = qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )? | (?:\.[0-9]+) (?:_[0-9]+)? ) | (?: v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )? | (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)? ) )/x; # hide optional CPAN::Meta modules from prereq scanner # and check if they are available my $cpan_meta = "CPAN::Meta"; my $cpan_meta_pre = "CPAN::Meta::Prereqs"; my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic # Verify requirements? my $DO_VERIFY_PREREQS = 1; sub _max { my $max = shift; $max = ( $_ > $max ) ? $_ : $max for @_; return $max; } sub _merge_prereqs { my ($collector, $prereqs) = @_; # CPAN::Meta::Prereqs object if (ref $collector eq $cpan_meta_pre) { return $collector->with_merged_prereqs( CPAN::Meta::Prereqs->new( $prereqs ) ); } # Raw hashrefs for my $phase ( keys %$prereqs ) { for my $type ( keys %{ $prereqs->{$phase} } ) { for my $module ( keys %{ $prereqs->{$phase}{$type} } ) { $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module}; } } } return $collector; } my @include = qw( Encode File::Temp JSON::PP Module::Runtime Pod::Coverage Sub::Name YAML autodie ); my @exclude = qw( ); # Add static prereqs to the included modules list my $static_prereqs = do './t/00-report-prereqs.dd'; # Merge all prereqs (either with ::Prereqs or a hashref) my $full_prereqs = _merge_prereqs( ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ), $static_prereqs ); # Add dynamic prereqs to the included modules list (if we can) my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; my $cpan_meta_error; if ( $source && $HAS_CPAN_META && (my $meta = eval { CPAN::Meta->load_file($source) } ) ) { $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs); } else { $cpan_meta_error = $@; # capture error from CPAN::Meta->load_file($source) $source = 'static metadata'; } my @full_reports; my @dep_errors; my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs; # Add static includes into a fake section for my $mod (@include) { $req_hash->{other}{modules}{$mod} = 0; } for my $phase ( qw(configure build test runtime develop other) ) { next unless $req_hash->{$phase}; next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING}); for my $type ( qw(requires recommends suggests conflicts modules) ) { next unless $req_hash->{$phase}{$type}; my $title = ucfirst($phase).' '.ucfirst($type); my @reports = [qw/Module Want Have/]; for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) { next if $mod eq 'perl'; next if grep { $_ eq $mod } @exclude; my $file = $mod; $file =~ s{::}{/}g; $file .= ".pm"; my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC; my $want = $req_hash->{$phase}{$type}{$mod}; $want = "undef" unless defined $want; $want = "any" if !$want && $want == 0; my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required"; if ($prefix) { my $have = MM->parse_version( File::Spec->catfile($prefix, $file) ); $have = "undef" unless defined $have; push @reports, [$mod, $want, $have]; if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) { if ( $have !~ /\A$lax_version_re\z/ ) { push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)"; } elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) { push @dep_errors, "$mod version '$have' is not in required range '$want'"; } } } else { push @reports, [$mod, $want, "missing"]; if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) { push @dep_errors, "$mod is not installed ($req_string)"; } } } if ( @reports ) { push @full_reports, "=== $title ===\n\n"; my $ml = _max( map { length $_->[0] } @reports ); my $wl = _max( map { length $_->[1] } @reports ); my $hl = _max( map { length $_->[2] } @reports ); if ($type eq 'modules') { splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl]; push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports; } else { splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl]; push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports; } push @full_reports, "\n"; } } } if ( @full_reports ) { diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports; } if ( $cpan_meta_error || @dep_errors ) { diag "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n"; } if ( $cpan_meta_error ) { my ($orig_source) = grep { -f } 'MYMETA.json', 'MYMETA.yml'; diag "\nCPAN::Meta->load_file('$orig_source') failed with: $cpan_meta_error\n"; } if ( @dep_errors ) { diag join("\n", "\nThe following REQUIRED prerequisites were not satisfied:\n", @dep_errors, "\n" ); } pass; # vim: ts=4 sts=4 sw=4 et: Dist-Zilla-Plugin-Git-2.046/t/000-report-git-version.t000644 000766 000024 00000000125 13443320014 022425 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::More tests => 1; diag(`git --version`); ok(1); Dist-Zilla-Plugin-Git-2.046/t/check.t000600 000766 000024 00000024674 13443320014 017435 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Test::DZil qw{ Builder simple_ini }; use File::pushd qw{ pushd }; use Path::Tiny 0.012 qw(path); # cwd use Test::More 0.88 tests => 50; # done_testing use Test::Fatal; use lib 't/lib'; use Util qw( clean_environment init_repo ); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; my ($zilla, $git, $pushd); sub new_tzil { undef $pushd; # Restore original directory, if necessary # build fake repository $zilla = Builder->from_config( { dist_root => 'corpus/check' }, { add_files => { 'source/dist.ini' => simple_ini( [ 'Git::Check' => { @_ } ], 'MetaConfig', 'FakeRelease', ), 'source/.gitignore' => "DZT-Sample-*\n", }, }, ); $pushd = pushd(path($zilla->tempdir)->child('source')); $git = init_repo( qw{ . .gitignore } ); } # end new_tzil #--------------------------------------------------------------------- # Test with default config: new_tzil(); # untracked files like( exception { $zilla->release }, qr/untracked files/, 'untracked files', ); our_messages_are(<<'', 'lists untracked files'); [Git::Check] branch master has some untracked files: [Git::Check] Changes [Git::Check] dist.ini [Git::Check] foobar # index not clean $git->add( qw{ dist.ini Changes foobar } ); like( exception { $zilla->release }, qr/some changes staged/, 'index not clean', ); our_messages_are(<<'', 'lists staged files'); [Git::Check] branch master has some changes staged for commit: [Git::Check] A Changes [Git::Check] A dist.ini [Git::Check] A foobar $git->commit( { message => 'initial commit' } ); # modified files append_to_file('foobar', 'Foo-*'); like( exception { $zilla->release }, qr/uncommitted files/, 'uncommitted files', ); our_messages_are(<<'', 'lists uncommitted files'); [Git::Check] branch master has some uncommitted files: [Git::Check] foobar $git->checkout( 'foobar' ); # changelog and dist.ini can be modified append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); is( exception { $zilla->release }, undef, 'Changes and dist.ini can be modified', ); our_messages_are(<<'', 'reports master in clean state'); [Git::Check] branch master is in a clean state # ensure dist.ini does not match dist_ini append_to_file('dist_ini', 'Hello'); $git->add( qw{ dist_ini } ); $git->commit( { message => 'add dist_ini' } ); append_to_file('dist_ini', 'World'); like( exception { $zilla->release }, qr/uncommitted files/, 'dist_ini must not be modified', ); our_messages_are(<<'', 'lists uncommitted dist_ini'); [Git::Check] branch master has some uncommitted files: [Git::Check] dist_ini #--------------------------------------------------------------------- # Test with no dirty files allowed at all: new_tzil(allow_dirty => ''); # untracked files like( exception { $zilla->release }, qr/untracked files/, 'untracked files with allow_dirty = ""', ); our_messages_are(<<'', 'lists untracked files'); [Git::Check] branch master has some untracked files: [Git::Check] Changes [Git::Check] dist.ini [Git::Check] foobar # index not clean $git->add( qw{ dist.ini Changes foobar } ); like( exception { $zilla->release }, qr/some changes staged/, 'index not clean with allow_dirty = ""', ); our_messages_are(<<'', 'lists staged files'); [Git::Check] branch master has some changes staged for commit: [Git::Check] A Changes [Git::Check] A dist.ini [Git::Check] A foobar $git->commit( { message => 'initial commit' } ); # modified files append_to_file('foobar', 'Foo-*'); like( exception { $zilla->release }, qr/uncommitted files/, 'uncommitted files with allow_dirty = ""', ); our_messages_are(<<'', 'lists uncommitted files'); [Git::Check] branch master has some uncommitted files: [Git::Check] foobar $git->checkout( 'foobar' ); # changelog cannot be modified append_to_file('Changes', "\n"); like( exception { $zilla->release }, qr/uncommitted files/, 'Changes must not be modified', ); our_messages_are(<<'', 'lists uncommitted Changes file'); [Git::Check] branch master has some uncommitted files: [Git::Check] Changes $git->checkout( 'Changes' ); # dist.ini cannot be modified append_to_file('dist.ini', "\n"); like( exception { $zilla->release }, qr/uncommitted files/, 'dist.ini must not be modified', ); our_messages_are(<<'', 'lists uncommitted dist.ini'); [Git::Check] branch master has some uncommitted files: [Git::Check] dist.ini $git->checkout( 'dist.ini' ); is( exception { $zilla->release }, undef, 'Changes and dist.ini are unmodified', ); our_messages_are(<<'', 'reports master in clean state'); [Git::Check] branch master is in a clean state #--------------------------------------------------------------------- # Test with some files allowed by regex: new_tzil(allow_dirty => '', allow_dirty_match => 'a'); # untracked files like( exception { $zilla->release }, qr/untracked files/, 'untracked files with allow_dirty_match = "a"', ); our_messages_are(<<'', 'lists untracked files'); [Git::Check] branch master has some untracked files: [Git::Check] Changes [Git::Check] dist.ini [Git::Check] foobar # index not clean $git->add( qw{ dist.ini Changes foobar } ); like( exception { $zilla->release }, qr/some changes staged/, 'index not clean with allow_dirty_match = "a"', ); our_messages_are(<<'', 'lists staged files'); [Git::Check] branch master has some changes staged for commit: [Git::Check] A Changes [Git::Check] A dist.ini [Git::Check] A foobar $git->commit( { message => 'initial commit' } ); # modified files append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); append_to_file('foobar', "\n"); like( exception { $zilla->release }, qr/uncommitted files/, 'uncommitted files with allow_dirty_match = "a"', ); our_messages_are(<<'', 'lists uncommitted files'); [Git::Check] branch master has some uncommitted files: [Git::Check] dist.ini $git->checkout( 'dist.ini' ); # files matching /a/ can be modified is( exception { $zilla->release }, undef, 'Changes foobar can be modified', ); our_messages_are(<<'', 'reports master in clean state'); [Git::Check] branch master is in a clean state #--------------------------------------------------------------------- # Test with untracked_files = warn: new_tzil(untracked_files => 'warn'); # untracked files is( exception { $zilla->release }, undef, 'untracked files are ok', ); our_messages_are(<<'', 'warns about untracked files'); [Git::Check] branch master has some untracked files: [Git::Check] Changes [Git::Check] dist.ini [Git::Check] foobar [Git::Check] branch master has 3 untracked files # index not clean $git->add( qw{ dist.ini Changes foobar } ); like( exception { $zilla->release }, qr/some changes staged/, 'index not clean', ); our_messages_are(<<'', 'lists staged files'); [Git::Check] branch master has some changes staged for commit: [Git::Check] A Changes [Git::Check] A dist.ini [Git::Check] A foobar $git->commit( { message => 'initial commit' } ); # modified files append_to_file('foobar', 'Foo-*'); like( exception { $zilla->release }, qr/uncommitted files/, 'uncommitted files', ); our_messages_are(<<'', 'lists uncommitted files'); [Git::Check] branch master has some uncommitted files: [Git::Check] foobar $git->checkout( 'foobar' ); # changelog and dist.ini can be modified append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); is( exception { $zilla->release }, undef, 'Changes and dist.ini can be modified', ); our_messages_are(<<'', 'reports master in clean state'); [Git::Check] branch master is in a clean state # ensure dist.ini does not match dist_ini append_to_file('dist_ini', 'Hello'); $git->add( qw{ dist_ini } ); $git->commit( { message => 'add dist_ini' } ); append_to_file('dist_ini', 'World'); like( exception { $zilla->release }, qr/uncommitted files/, 'dist_ini must not be modified', ); our_messages_are(<<'', 'lists dist_ini as uncommitted'); [Git::Check] branch master has some uncommitted files: [Git::Check] dist_ini #--------------------------------------------------------------------- # Test with untracked_files = ignore: new_tzil(untracked_files => 'ignore'); # untracked files is( exception { $zilla->release }, undef, 'untracked files are ok', ); our_messages_are(<<'', 'counts untracked files'); [Git::Check] branch master has 3 untracked files # index not clean $git->add( qw{ dist.ini Changes foobar } ); like( exception { $zilla->release }, qr/some changes staged/, 'index not clean', ); our_messages_are(<<'', 'lists staged files'); [Git::Check] branch master has some changes staged for commit: [Git::Check] A Changes [Git::Check] A dist.ini [Git::Check] A foobar $git->commit( { message => 'initial commit' } ); # modified files append_to_file('foobar', 'Foo-*'); like( exception { $zilla->release }, qr/uncommitted files/, 'uncommitted files', ); our_messages_are(<<'', 'lists foobar as uncommitted'); [Git::Check] branch master has some uncommitted files: [Git::Check] foobar $git->checkout( 'foobar' ); # changelog and dist.ini can be modified append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); is( exception { $zilla->release }, undef, 'Changes and dist.ini can be modified', ); our_messages_are(<<'', 'reports master in clean state'); [Git::Check] branch master is in a clean state # ensure dist.ini does not match dist_ini append_to_file('dist_ini', 'Hello'); $git->add( qw{ dist_ini } ); $git->commit( { message => 'add dist_ini' } ); append_to_file('dist_ini', 'World'); like( exception { $zilla->release }, qr/uncommitted files/, 'dist_ini must not be modified', ); our_messages_are(<<'', 'lists dist_ini as uncommitted'); [Git::Check] branch master has some uncommitted files: [Git::Check] dist_ini #--------------------------------------------------------------------- sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } #--------------------------------------------------------------------- sub our_messages_are { my ($expected, $name) = @_; my $got = join("\n", grep { /^\Q[Git::Check]\E/ } @{ $zilla->log_messages }); $got =~ s/\s*\z/\n/; local $Test::Builder::Level = $Test::Builder::Level + 1; is( $got, $expected, $name); $zilla->clear_log_events; } done_testing; Dist-Zilla-Plugin-Git-2.046/t/commit-build-custom.t000600 000766 000024 00000002440 13443320014 022240 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::pushd qw(pushd); use Path::Tiny qw(); use Test::More tests => 5; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; my $zilla = Dist::Zilla::Tester->from_config({ dist_root => Path::Tiny::path('corpus/commit-build-custom')->absolute, }); # build fake repository { my $dir = pushd(Path::Tiny::path($zilla->tempdir)->child('source')); my $git = init_repo( qw{ . dist.ini Changes } ); $git->branch(-m => 'dev'); $zilla->build; ok( eval { $git->rev_parse('-q', '--verify', 'refs/heads/build-dev') }, 'source repo has the "build-dev" branch') or diag explain $@, $git->branch; is( scalar $git->log('build-dev'), 1, 'one commit on the build-dev branch') or diag $git->branch; $zilla->release; ok( eval { $git->rev_parse('-q', '--verify', 'refs/heads/release') }, 'source repo has the "release" branch') or diag explain $@, $git->branch; my @logs = $git->log('release'); is( scalar(@logs), 1, 'one commit on the release branch') or diag $git->branch; like( $logs[0]->message, qr/^Release of 1\.23\b/, 'correct release commit log message generated'); } Dist-Zilla-Plugin-Git-2.046/t/commit-build-src-as-parent.t000600 000766 000024 00000005332 13443320014 023410 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use Path::Tiny qw(path); use Test::More tests => 8; use Try::Tiny qw(try); use lib 't/lib'; use Util qw( chdir_original_cwd clean_environment init_repo ); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; my $corpus_dir = path('corpus/commit-build-src-as-parent')->absolute; my $zilla = Dist::Zilla::Tester->from_config({ dist_root => $corpus_dir, }); # build fake repository chdir path( $zilla->tempdir )->child('source'); my $git = init_repo( qw{ . dist.ini Changes } ); $zilla->build; ok( $git->rev_parse('-q', '--verify', 'refs/heads/build/master'), 'source repo has the "build/master" branch') or diag $git->branch; is( scalar $git->log('build/master'), 2, 'two commit on the build/master branch') or diag $git->branch; is( scalar $git->ls_tree('build/master'), 2, 'two files in latest commit on the build/master branch') or diag $git->branch; my @log = $git->log('build/master'); like try {$log[1]->message} => qr/initial commit/, 'master is a parent'; like try {$log[0]->message} => qr/Build results of \w+ \(on master\)/, 'build commit'; chdir_original_cwd; my $zilla2 = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-build')->absolute, }); # build fake repository chdir path( $zilla2->tempdir )->child('source'); my $git2 = init_repo('.'); $git2->remote('add','origin', path( $zilla->tempdir )->child('source')->stringify); $git2->fetch; $git2->reset('--hard','origin/master'); $git2->checkout('-b', 'topic/1'); append_to_file('dist.ini', "\n"); $git2->commit('-a', '-m', 'commit on topic branch'); $zilla2->build; ok( $git2->rev_parse('-q', '--verify', 'refs/heads/build/topic/1'), 'source repo has the "build/topic/1" branch') or diag $git2->branch; chdir_original_cwd; my $zilla3 = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-build')->absolute, }); # build fake repository chdir path($zilla3->tempdir)->child('source'); my $git3 = init_repo('.'); $git3->remote('add','origin', path( $zilla->tempdir )->child('source')->stringify); $git3->fetch; $git3->branch('build/master', 'origin/build/master'); $git3->reset('--hard','origin/master'); append_to_file('dist.ini', "\n\n"); $git3->commit('-a', '-m', 'commit on master'); $zilla3->build; is( scalar $git3->log('build/master'), 3, 'three commits on the build/master branch') or diag $git3->branch; is( scalar $git->ls_tree('build/master'), 2, 'two files in latest commit on the build/master branch') or diag $git->branch; chdir_original_cwd; sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena(@lines); print $fh @_; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/commit-build.t000600 000766 000024 00000004712 13443320014 020734 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use Path::Tiny qw( path ); use Test::More tests => 6; use lib 't/lib'; use Util qw( chdir_original_cwd clean_environment init_repo ); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-build')->absolute, }); # build fake repository chdir path( $zilla->tempdir )->child('source'); my $git = init_repo( qw{ . dist.ini Changes } ); $zilla->build; ok( $git->rev_parse('-q', '--verify', 'refs/heads/build/master'), 'source repo has the "build/master" branch') or diag $git->branch; is( scalar $git->log('build/master'), 1, 'one commit on the build/master branch') or diag $git->branch; is( scalar $git->ls_tree('build/master'), 2, 'two files in latest commit on the build/master branch') or diag $git->branch; chdir_original_cwd; my $zilla2 = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-build')->absolute, }); # build fake repository chdir path( $zilla2->tempdir )->child('source'); my $git2 = init_repo('.'); $git2->remote('add','origin', path( $zilla->tempdir )->child('source')->stringify); $git2->fetch; $git2->reset('--hard','origin/master'); $git2->checkout('-b', 'topic/1'); append_to_file('dist.ini', "\n"); $git2->commit('-a', '-m', 'commit on topic branch'); $zilla2->build; ok( $git2->rev_parse('-q', '--verify', 'refs/heads/build/topic/1'), 'source repo has the "build/topic/1" branch') or diag $git2->branch; chdir_original_cwd; my $zilla3 = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-build')->absolute, }); # build fake repository chdir path($zilla3->tempdir)->child('source'); my $git3 = init_repo('.'); $git3->remote('add','origin', path($zilla->tempdir)->child('source')->stringify); $git3->fetch; $git3->branch('build/master', 'origin/build/master'); $git3->reset('--hard','origin/master'); append_to_file('dist.ini', "\n\n"); $git3->commit('-a', '-m', 'commit on master'); $zilla3->build; is( scalar $git3->log('build/master'), 2, 'two commits on the build/master branch') or diag $git3->branch; is( scalar $git->ls_tree('build/master'), 2, 'two files in latest commit on the build/master branch') or diag $git->branch; chdir_original_cwd; sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/commit-dirtydir.t000600 000766 000024 00000002702 13443320014 021464 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::pushd qw(pushd); use Path::Tiny 0.012 qw(path); # cwd use lib 't/lib'; use Test::More tests => 3; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-dirtydir')->absolute, }); { my $dir = pushd(path($zilla->tempdir)->child('source')); my $git = init_repo( qw{ . dist.ini Changes } ); # do a release, with changes and dist.ini updated append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); $zilla->release; # check if dist.ini and changelog have been committed my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit message taken from changelog' ); # check if we committed our tarball my @files = $git->ls_files( { cached => 1 } ); ok( ( grep { $_ =~ /releases/ } @files ), "We committed the tarball" ); # We should have no dirty files uncommitted # ignore the "DZP-git.9y5u" temp file, ha! @files = $git->ls_files( { others => 1, modified => 1, unmerged => 1 } ); ok( @files == 1, "No untracked files left" ); } sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/commit-message.t000644 000766 000024 00000011613 13443320014 021267 0ustar00etherstaff000000 000000 # Test the get_commit_message method in Git::Commit use 5.008; use strict; use warnings; use Test::More 0.88; # want done_testing plan tests => 20; use Dist::Zilla::File::InMemory (); use Dist::Zilla::Plugin::Git::Commit (); use Log::Dispatchouli (); #===================================================================== { package Mock_Zilla; use Moose; has version => qw(is ro); has files => qw(is ro), default => sub { [] }; sub isa { 1 } # just cheat and claim we're anything __PACKAGE__->meta->make_immutable; }; #===================================================================== # Utility functions #--------------------------------------------------------------------- sub is_log { my ($plugin, $expected) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; is_deeply([ map {; $_->{message} } @{ $plugin->logger->events } ], $expected); } # end is_log #--------------------------------------------------------------------- my $zilla; # must be global, because $plugin->zilla is a weakref sub new_plugin { my $version = shift; my $changes = pop @_; $zilla = Mock_Zilla->new(version => $version); if (defined $changes) { push @{ $zilla->files }, Dist::Zilla::File::InMemory->new( name => 'Changes', content => $changes, ); } Dist::Zilla::Plugin::Git::Commit->new( plugin_name => 'Git::Commit', zilla => $zilla, logger => Log::Dispatchouli->new_tester, @_ ); } # end new_plugin #===================================================================== { my $plugin = new_plugin('1.00'); is($plugin->get_commit_message, "v1.00\n\n", '1.00 without Changes file'); is_log($plugin, ['WARNING: Unable to find Changes']); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.00', <<'EOT'); This is the changelog for Foobar 1.00 2012-12-01 Some unspecified changes EOT is($plugin->get_commit_message, <<'EOM', '1.00 with blank line'); v1.00 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.00', <<'EOT'); This is the changelog for Foobar 1.00 2012-12-01 Some unspecified changes EOT is($plugin->get_commit_message, <<'EOM', '1.00 without blank line'); v1.00 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.01', <<'EOT'); This is the changelog for Foobar 1.01 2012-12-01 Some unspecified changes 1.00 2012-11-30 Some previous changes EOT is($plugin->get_commit_message, <<'EOM', '1.01 with changes'); v1.01 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.01', <<'EOT'); This is the changelog for Foobar 1.00 2012-12-01 Some unspecified changes EOT is($plugin->get_commit_message, "v1.01\n\n", '1.01 not in Changes'); is_log($plugin, ['WARNING: Unable to find 1.01 in Changes']); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.00', <<'EOT'); This is the changelog for Foobar 1.00-TRIAL 2012-12-01 Some unspecified changes EOT is($plugin->get_commit_message, <<'EOM', '1.00-TRIAL'); v1.00 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.00', <<'EOT'); This is the changelog for Foobar 1.00_TRIAL 2012-12-01 Some unspecified changes EOT is($plugin->get_commit_message, <<'EOM', '1.00_TRIAL'); v1.00 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.01', <<'EOT'); This is the changelog for Foobar 1.01 2012-12-01 1.00 2012-11-30 Some previous changes EOT is($plugin->get_commit_message, "v1.01\n\n", '1.01 with no changes'); is_log($plugin, ['WARNING: No changes listed under 1.01 in Changes']); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.01', <<'EOT'); This is the changelog for Foobar 1.01 2012-12-01 Some unspecified changes with extra blank line 1.00 2012-11-30 Some previous changes EOT is($plugin->get_commit_message, <<'EOM', '1.01 with extra blank line'); v1.01 Some unspecified changes with extra blank line EOM is_log($plugin, []); } #--------------------------------------------------------------------- { my $plugin = new_plugin('1.00', <<'EOT'); 1.00 2012-11-30 Some unspecified changes EOT is($plugin->get_commit_message, <<'EOM', '1.00 at BOF'); v1.00 Some unspecified changes EOM is_log($plugin, []); } #--------------------------------------------------------------------- done_testing; Dist-Zilla-Plugin-Git-2.046/t/commit-utf8.t000600 000766 000024 00000002762 13443320014 020526 0ustar00etherstaff000000 000000 use strict; use warnings; use utf8; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use Encode qw( decode ); use File::pushd qw(pushd); use Path::Tiny 0.012 qw(path); # cwd use Test::More; plan skip_all => "Dist::Zilla 5 required" if Dist::Zilla->VERSION < 5; plan tests => 1; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; # UTF-8 encoded strings: my $changes1 = 'Ævar Arnfjörð Bjarmason'; my $changes2 = 'ブログの情報'; my $changes3 = 'plain ASCII'; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit')->absolute, },{ add_files => { 'source/Changes' => <<"END CHANGES", Changes 1.23 2012-11-10 19:15:45 CET - $changes1 - $changes2 - $changes3 END CHANGES }, }); { my $dir = pushd(path($zilla->tempdir)->child('source')); my $git = init_repo( qw{ . dist.ini Changes } ); # do a release, with changes and dist.ini updated append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); $zilla->release; # check if dist.ini and changelog have been committed my ($log) = $git->log( 'HEAD' ); like( decode('UTF-8', $log->message), qr/v1.23\n[^a-z]*\Q$changes1\E[^a-z]*\Q$changes2\E[^a-z]*\Q$changes3\E/, 'commit message taken from changelog' ); } sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/commit-ws.t000600 000766 000024 00000002065 13443320014 020265 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::pushd qw(pushd); use Path::Tiny 0.012 qw(path); # cwd use Test::More tests => 1; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit-ws')->absolute, }); # build fake repository { my $dir = pushd(path( $zilla->tempdir )->child('source')); my $git = init_repo( qw{ . dist.ini Changes } ); # do a release, with changes and dist.ini updated append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); $zilla->release; # check if dist.ini and changelog have been committed my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit message taken from changelog' ); } sub append_to_file { my ($file, @lines) = @_; my $fh = path( $file )->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/commit.t000600 000766 000024 00000002063 13443320014 017634 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::pushd qw(pushd); use Path::Tiny 0.012 qw( path ); # ->cwd use Test::More tests => 1; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/commit')->absolute, }); { my $dir = pushd(path( $zilla->tempdir )->child('source')); my $git = init_repo( qw{ . dist.ini Changes } ); # do a release, with changes and dist.ini updated append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); $zilla->release; # check if dist.ini and changelog have been committed my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit message taken from changelog' ); } sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/gatherdir-multi.t000600 000766 000024 00000005326 13443320014 021452 0ustar00etherstaff000000 000000 # Test multiple instances of Git::GatherDir (including prefix) use strict; use warnings; use Dist::Zilla 1.093250; use Test::DZil; use Path::Tiny 0.012 qw( path ); use Test::More 0.88 tests => 8; # done_testing use lib 't/lib'; use Util; # Mock HOME to avoid ~/.gitexcludes from causing problems my $homedir = clean_environment; my $tzil = Builder->from_config( { dist_root => 'corpus/gatherdir' }, { add_files => { 'source/tracked' => "tracked\n", 'source/untracked' => "do not load untracked\n", 'source/subdir/tracked' => "subdir/tracked\n", 'source/dist.ini' => simple_ini( [ 'Git::GatherDir' ], [ 'Git::GatherDir', 'GatherRepo1', => { root => '../repo1', }], [ 'Git::GatherDir', 'GatherRepo2s', => { root => '../repo2/subdir', include_untracked => 1, }], [ 'Git::GatherDir', 'GatherRepo3s', => { root => '../repo3/subdir', prefix => 'r3', }], ), 'repo1/r1-tracked' => "r1-tracked\n", 'repo1/r1-untracked' => "do not load r1-untracked\n", 'repo1/subdir/r1s-tracked' => "subdir/r1s-tracked\n", 'repo1/subdir/r1s-untracked'=> "do not load subdir/r1s-untracked\n", 'repo2/r2r-tracked' => "do not load r2r-tracked\n", 'repo2/r2r-untracked' => "do not load r2r-untracked\n", 'repo2/subdir/r2-tracked' => "r2-tracked\n", 'repo2/subdir/r2-untracked' => "r2-untracked\n", 'repo3/r3r-tracked' => "do not load r3r-tracked\n", 'repo3/r3r-untracked' => "do not load r3r-untracked\n", 'repo3/subdir/r3-tracked' => "r3/r3-tracked\n", 'repo3/subdir/r3-untracked' => "do not load r3/r3-untracked\n", }, }, ); my $base = path($tzil->tempdir); my $git = init_repo( $base->child('source')->stringify, qw(dist.ini lib subdir tracked) ); init_repo( $base->child('repo1')->stringify, qw(r1-tracked subdir/r1s-tracked) ); init_repo( $base->child('repo2')->stringify, qw(r2r-tracked subdir/r2-tracked) ); init_repo( $base->child('repo3')->stringify, qw(r3r-tracked subdir/r3-tracked) ); $tzil->build; my $files = $tzil->files; my @expected_files = qw( dist.ini lib/DZT/Sample.pm r1-tracked r2-tracked r2-untracked r3/r3-tracked subdir/r1s-tracked subdir/tracked tracked ); # diag($_) for @{ $tzil->log_messages }; is_deeply( [ sort map {; $_->name } @$files ], \@expected_files, "the right files were gathered", ); my %content = map {; $_->name => $_->content } @$files; for my $fn (@expected_files) { next unless $fn =~ /track/; is($content{$fn}, "$fn\n", "content of $fn"); } done_testing; Dist-Zilla-Plugin-Git-2.046/t/gatherdir.t000600 000766 000024 00000004725 13443320014 020324 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Test::DZil; use Path::Tiny 0.012 qw( path ); use Test::More tests => 5; use lib 't/lib'; use Util; # Mock HOME to avoid ~/.gitexcludes from causing problems my $homedir = clean_environment; my $cwd = Path::Tiny->cwd(); for my $test ( { name => 'default', config => simple_ini('Git::GatherDir'), files => [ qw(lib/DZT/Sample.pm share/tracked tracked) ], }, { name => 'include_dotfiles', config => simple_ini([ 'Git::GatherDir', { include_dotfiles => 1 } ]), files => [ qw(.gitignore .tracked lib/DZT/Sample.pm share/tracked tracked) ], }, { name => 'include_untracked', min_git=> '1.5.4', config => simple_ini([ 'Git::GatherDir', { include_untracked => 1 } ]), files => [ qw(dist.ini lib/DZT/Sample.pm share/tracked tracked untracked) ], }, { name => 'include both', min_git=> '1.6.5.2', config => simple_ini([ 'Git::GatherDir', { include_dotfiles => 1, include_untracked => 1 } ]), files => [ qw(.gitignore .tracked .untracked dist.ini lib/DZT/Sample.pm share/tracked tracked untracked) ], }, { name => 'exclude_filename', config => simple_ini([ 'Git::GatherDir', { exclude_filename => 'tracked' } ]), files => [ qw(lib/DZT/Sample.pm share/tracked) ], }, ) { SKIP: { skip_unless_git_version($test->{min_git}, 1) if $test->{min_git}; my $tzil = Builder->from_config( { dist_root => $cwd->child('corpus/gatherdir')->absolute }, { add_files => { 'source/ignored' => "This is ignored.\n", 'source/untracked' => "This is not tracked.\n", 'source/tracked' => "This is tracked.\n", 'source/share/tracked' => "This is tracked, in a subdir.\n", 'source/.tracked' => "This is a tracked dotfile.\n", 'source/.ignored' => "This is an ignored dotfile.\n", 'source/.untracked' => "This is an untracked dotfile.\n", 'source/.gitignore' => "*ignore*\n", 'source/dist.ini' => $test->{config}, }, }, ); my $git = init_repo( path($tzil->tempdir)->child('source')->stringify, qw(lib share tracked .tracked .gitignore) ); $tzil->build; is_deeply( [ sort map {; $_->name } @{ $tzil->files } ], $test->{files}, "the right files were gathered with $test->{name}", ); } # end SKIP } # end for my $test Dist-Zilla-Plugin-Git-2.046/t/lib/000700 000766 000024 00000000000 13443320014 016722 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/t/push-gitconfig.t000600 000766 000024 00000003705 13443320014 021276 0ustar00etherstaff000000 000000 use strict; use warnings; use Git::Wrapper; use Path::Tiny qw(path); use Test::More 0.88; # done_testing use Test::Fatal qw(exception); use lib 't/lib'; use Util; eval { require Dist::Zilla::Plugin::Config::Git }; plan skip_all => 'Dist::Zilla::Plugin::Config::Git not installed' if $@ and $@ !~ /^Can't locate /; # rt#56485 - skip test to avoid failures for old git versions skip_unless_git_version('1.7.0'); plan tests => 7; init_test(corpus => 'push-gitconfig'); $git->add( qw{ dist.ini Changes } ); $git->commit( { message => 'initial commit' } ); # create a clone, and use it to set up 'genesis' my $clone = $base_dir->child('clone'); $git->clone( { quiet=>1, 'no-checkout'=>1, bare=>1 }, "$git_dir", "$clone" ); $git->remote('add', 'genesis', "$clone"); $git->config('branch.master.remote', 'genesis'); $git->config('branch.master.merge', 'refs/heads/master'); # do the release append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); new_zilla_from_repo; $zilla->release; # Check log zilla_log_is('Git::Push', <<''); [Git::Push] pushing to genesis master:master # check if everything was pushed $git = Git::Wrapper->new( "$clone" ); my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit pushed' ); # check if tag has been correctly created my @tags = $git->tag; is( scalar(@tags), 1, 'one tag pushed' ); is( $tags[0], 'v1.23', 'new tag created after new version' ); # try a release with a bogus remote append_to_file('dist.ini', <<'END dist.ini'); push_to = bogus unmodified END dist.ini new_zilla_from_repo; my $exception = exception { $zilla->release }; like($exception, qr/^\Q[Git::Push] These remotes do not exist: bogus\E/, 'Caught bogus remote'); zilla_log_is('Git::Push', <<''); [Git::Push] These remotes do not exist: bogus is_deeply($zilla->plugin_named('Git::Push')->push_to, [ 'bogus unmodified' ], "git_config->push_to is overridden"); done_testing; Dist-Zilla-Plugin-Git-2.046/t/push-multi.t000600 000766 000024 00000003033 13443320014 020451 0ustar00etherstaff000000 000000 use strict; use warnings; use Git::Wrapper; use Path::Tiny qw(path); use Test::More 0.88; # done_testing use lib 't/lib'; use Util; # rt#56485 - skip test to avoid failures for old git versions skip_unless_git_version('1.7.0'); plan tests => 7; init_test(corpus => 'push-multi'); $git->add( qw{ dist.ini Changes } ); $git->commit( { message => 'initial commit' } ); # create a clone, and use it to set up origin my $clone1 = $base_dir->child('clone1'); my $clone2 = $base_dir->child('clone2'); $git->clone( { quiet=>1, 'no-checkout'=>1, bare=>1 }, "$git_dir", "$clone1" ); $git->clone( { quiet=>1, 'no-checkout'=>1, bare=>1 }, "$git_dir", "$clone2" ); $git->remote('add', 'origin', "$clone1"); $git->remote('add', 'another', "$clone2"); $git->config('branch.master.remote', 'origin'); $git->config('branch.master.merge', 'refs/heads/master'); # do the release append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); new_zilla_from_repo; $zilla->release; # Check log zilla_log_is('Git::Push', <<''); [Git::Push] pushing to origin [Git::Push] pushing to another for my $c ( $clone1, $clone2 ) { # check if everything was pushed my $git = Git::Wrapper->new( "$c" ); my $cName = $c->basename; my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, "commit pushed to $cName" ); # check if tag has been correctly created my @tags = $git->tag; is( scalar(@tags), 1, "one tag pushed to $cName" ); is( $tags[0], 'v1.23', "found v1.23 tag in $cName" ); } done_testing; Dist-Zilla-Plugin-Git-2.046/t/push.t000600 000766 000024 00000003454 13443320014 017330 0ustar00etherstaff000000 000000 use strict; use warnings; use Git::Wrapper; use Test::More 0.88; # done_testing use Test::Fatal qw(exception); use lib 't/lib'; use Util; # rt#56485 - skip test to avoid failures for old git versions skip_unless_git_version('1.7.0'); plan tests => 7; init_test(corpus => 'push'); $git->add( qw{ dist.ini Changes } ); $git->commit( { message => 'initial commit' } ); # create a clone, and use it to set up origin my $clone = $base_dir->child('clone'); $git->clone( { quiet=>1, 'no-checkout'=>1, bare=>1 }, "$git_dir", "$clone" ); $git->remote('add', 'origin', "$clone"); $git->config('branch.master.remote', 'origin'); $git->config('branch.master.merge', 'refs/heads/master'); $git->config('push.default', 'nothing'); # do the release append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); new_zilla_from_repo; $zilla->release; # Check log zilla_log_is('Git::Push', <<''); [Git::Push] pushing to origin # check if everything was pushed $git = Git::Wrapper->new( "$clone" ); my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit pushed' ); # check if tag has been correctly created my @tags = $git->tag; is( scalar(@tags), 1, 'one tag pushed' ); is( $tags[0], 'v1.23', 'new tag created after new version' ); # try a release with a bogus remote append_to_file('dist.ini', <<'END dist.ini'); push_to = origin push_to = bogus unmodified END dist.ini new_zilla_from_repo; my $exception = exception { $zilla->release }; like($exception, qr/^\Q[Git::Push] These remotes do not exist: bogus\E/, 'Caught bogus remote'); zilla_log_is('Git::Push', <<''); [Git::Push] These remotes do not exist: bogus is_deeply($zilla->plugin_named('Git::Push')->push_to, [ 'origin', 'bogus unmodified' ], "push_to is not modified"); done_testing; Dist-Zilla-Plugin-Git-2.046/t/repo-dir.t000600 000766 000024 00000002647 13443320014 020075 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use Path::Tiny 0.012 qw(path); # cwd use File::Copy 'move'; use Test::More tests => 1; use lib 't/lib'; use Util qw(chdir_original_cwd clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/repo-dir')->absolute, }); chdir path($zilla->tempdir)->child( 'source' ); my $git = init_repo('.'); mkdir 'dist'; # move corpus files to subdir of git repo move 'dist.ini', 'dist/dist.ini'; move 'Changes', 'dist/Changes'; # do a release in a subdir; the git repo is one level up chdir 'dist'; $git->add( qw{ dist.ini Changes } ); $git->commit( { message => 'initial commit' } ); append_to_file('Changes', "\n"); append_to_file('dist.ini', "\n"); # create a new zilla with dist root in the right place my $zilla2 = Dist::Zilla::Dist::Builder->from_config( { chrome => Dist::Zilla::Chrome::Test->new } ); $zilla2->release; # check if dist.ini and changelog have been committed my ($log) = $git->log( 'HEAD' ); like( $log->message, qr/v1.23\n[^a-z]*foo[^a-z]*bar[^a-z]*baz/, 'commit message taken from changelog' ); chdir_original_cwd; sub append_to_file { my ($file, @lines) = @_; my $fh = path($file)->opena; print $fh @lines; close $fh; } Dist-Zilla-Plugin-Git-2.046/t/tag-signed.t000600 000766 000024 00000003661 13443320014 020373 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::Copy qw{ cp }; use File::Path 2.07 qw{ make_path }; # 2.07 required for make_path use File::pushd qw(pushd); use Path::Tiny 0.012 qw(path); # cwd use File::Which qw{ which }; use Test::More; use lib 't/lib'; use Util qw(clean_environment init_repo); which('gpg') ? plan tests => 8 : plan skip_all => q{gpg couldn't be located in $PATH; required for GPG-signed tags}; # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; cp 'corpus/dzp-git.pub', "$homedir/pubring.gpg"; cp 'corpus/dzp-git.sec', "$homedir/secring.gpg"; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/tag-signed')->absolute, }); { my $dir = pushd(path($zilla->tempdir)->child('source')); my $git = init_repo('.'); $git->config( 'user.signingkey' => '7D85ED44'); $git->add( qw{ dist.ini Changes } ); $git->commit( { message => 'initial commit' } ); # do the release $zilla->release; # check if tag has been correctly created my @tags = $git->tag; is( scalar(@tags), 1, 'one tag created' ); is( $tags[0], 'v1.23', 'new tag created after new version' ); is( $tags[0], $zilla->plugin_named('Git::Tag')->tag(), 'new tag matches the tag the plugin claims is the tag.'); # Check that it is a signed tag my $tag = join "\n", $git->show({pretty => 'short'}, 'v1.23'); $tag = substr($tag, 0, index($tag, "\ncommit ")); like( $tag, qr/^tag v1.23/m, 'Is it a real tag?' ); like( $tag, qr/^Tagger: dzp-git test /m, 'Is it a real tag?' ); like( $tag, qr/PGP SIGNATURE/m, 'Is it GPG-signed?' ); like( $tag, qr/^v1.23:\n\n - foo\n - bar\n - baz\n/m, 'Includes commit message?'); # attempting to release again should fail eval { $zilla->release }; like($@, qr/tag v1\.23 already exists/, 'prohibit duplicate tag'); } Dist-Zilla-Plugin-Git-2.046/t/tag.t000600 000766 000024 00000002765 13443320014 017130 0ustar00etherstaff000000 000000 use strict; use warnings; use Dist::Zilla 1.093250; use Dist::Zilla::Tester; use File::pushd qw(pushd); use Path::Tiny 0.012 qw( path ); # cwd use Test::More tests => 8; use lib 't/lib'; use Util qw(clean_environment init_repo); # Mock HOME to avoid ~/.gitexcludes from causing problems # and clear GIT_ environment variables my $homedir = clean_environment; # build fake repository my $zilla = Dist::Zilla::Tester->from_config({ dist_root => path('corpus/tag')->absolute, }); { my $dir = pushd(path($zilla->tempdir)->child('source')); my $git = init_repo(qw{ . dist.ini Changes } ); # do the release $zilla->release; # check if tag has been correctly created my @tags = $git->tag; is( scalar(@tags), 1, 'one tag created' ); is( $tags[0], 'v1.23', 'new tag created after new version' ); is( $tags[0], $zilla->plugin_named('Git::Tag')->tag(), 'new tag matches the tag the plugin claims is the tag.'); # Check that it is not a signed tag my $tag = join "\n", $git->show({pretty => 'short'}, 'v1.23'); $tag = substr($tag, 0, index($tag, "\ncommit ")); like( $tag, qr/^tag v1.23/m, 'Is it a real tag?' ); like( $tag, qr/^Tagger: dzp-git test /m, 'Is it a real tag?' ); unlike( $tag, qr/PGP SIGNATURE/m, 'Is it not GPG-signed?' ); like( $tag, qr/^v1.23:\n\n - foo\n - bar\n - baz\n\z/m, 'Includes commit message?'); # attempting to release again should fail eval { $zilla->release }; like($@, qr/tag v1\.23 already exists/, 'prohibit duplicate tag'); } Dist-Zilla-Plugin-Git-2.046/t/version-by-branch.t000600 000766 000024 00000011055 13443320014 021675 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::DZil qw(dist_ini); use Path::Tiny qw(path); use Test::More 0.88; # done_testing use Test::Fatal; use lib 't/lib'; use Util qw(:DEFAULT zilla_version); skip_unless_git_version('1.6.1'); # need --simplify-by-decoration plan tests => 31; init_test( add_files => { Changes => "Just getting started\n", 'dist.ini' => dist_ini( {qw( name Foo author foobar license Perl_5 abstract Test-Library copyright_holder foobar copyright_year 2009 )}, [ 'Git::NextVersion', { version_by_branch => 1 } ], 'FakeRelease', ), }, # end add_files ); #--------------------------------------------------------------------- ## shortcut for new tester object my $cache = '.gitnxtver_cache'; sub _new_zilla { my ($rev, $tag) = @_; my %test_config; if ($rev) { my ($sha) = $git->rev_parse($rev); $test_config{add_files}{"source/$cache"} = "$sha $tag\n"; } new_zilla_from_repo(\%test_config); } sub _zilla_version { _new_zilla(@_); zilla_version; } # Check the contents (or absence) of .gitnxtver_cache: sub head_last_ver { my ($last_ver) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; if (defined $last_ver) { my ($head) = $git->rev_parse('HEAD'); is(slurp_text_file("source/$cache"), "$head $last_ver\n", "cache file contains $last_ver"); } else { ok( !-f path($zilla->root)->child($cache), "no cache file created"); } } # end head_last_ver # with no tags and no initialization, should get default is( _zilla_version, "0.001", "works with no commits" ); head_last_ver(undef); $git->add("."); $git->commit({ message => 'import' }); # with no tags and no initialization, should get default is( _zilla_version, "0.001", "default is 0.001" ); head_last_ver(undef); # initialize it using V= { local $ENV{V} = "1.23"; is( _zilla_version, "1.23", "initialized with \$ENV{V}" ); head_last_ver(undef); } # add a tag that doesn't match the regex $git->tag("revert-me-later"); ok( (grep { /revert-me-later/ } $git->tag), "wrote revert-me-later tag" ); is( _zilla_version, "0.001", "default is 0.001" ); head_last_ver(undef); # tag 1.2.3 append_and_add(Changes => "1.2.3 now\n"); $git->commit({ message => 'committing 1.2.3'}); $git->tag("v1.2.3"); ok( (grep { /v1\.2\.3/ } $git->tag), "wrote v1.2.3 tag" ); is( _zilla_version, "1.2.4", "next version of 1.2.4 determined from last tag" ); head_last_ver("1.2.3"); # make a dev branch $git->checkout(qw(-b dev)); # tag first dev release 1.3.0 append_and_add(Changes => "1.3.0 dev release\n"); $git->commit({ message => 'committing 1.3.0'}); $git->tag("v1.3.0"); ok( (grep { /v1\.3\.0/ } $git->tag), "wrote v1.3.0 tag" ); is( _zilla_version, "1.3.1", "next version of 1.3.1 determined from 1.3.0 tag on dev" ); head_last_ver("1.3.0"); # go back to master branch $git->checkout(qw(master)); is( _zilla_version, "1.2.4", "next version of 1.2.4 determined from 1.2.3 tag on master" ); head_last_ver("1.2.3"); # tag stable 1.2.4 append_and_add(Changes => "1.2.4 stable release\n"); $git->commit({ message => 'committing 1.2.4 on master'}); $git->tag("v1.2.4"); ok( (grep { /v1\.2\.4/ } $git->tag), "wrote v1.2.4 tag" ); is( _zilla_version, "1.2.5", "next version of 1.2.5 determined from 1.2.4 tag on master" ); head_last_ver("1.2.4"); # go back to dev branch $git->checkout(qw(dev)); append_and_add(Changes => "1.3.1 in progress\n"); $git->commit({ message => 'committing 1.3.1 change'}); is( _zilla_version, "1.3.1", "next version of 1.3.1 determined from 1.3.0 tag on dev" ); head_last_ver("1.3.0"); # go back to master branch $git->checkout(qw(master)); append_and_add(Changes => "1.2.5 still in progress\n"); $git->commit({ message => 'committing 1.2.5 change to master'}); is( _zilla_version, "1.2.5", "next version of 1.2.5 determined from 1.2.4 tag on master" ); head_last_ver("1.2.4"); # see if it reads the cache is( _zilla_version(qw(HEAD 1.2.6)), "1.2.7", "using (fake) cached 1.2.6 tag" ); head_last_ver("1.2.6"); # see if it ignores a stale cache is( _zilla_version(qw(HEAD~1 1.2.6)), "1.2.5", "ignoring stale cached 1.2.6 tag" ); head_last_ver("1.2.4"); # see if it catches a duplicate version _new_zilla(qw(HEAD 1.2.3)); is( exception { $zilla->build }, undef, "builds with duplicate version", ); is( $zilla->version, "1.2.4", "version is duplicate" ); like( exception { $zilla->release }, qr/version 1\.2\.4 has already been tagged/, "don't release duplicate version", ); #keep_tempdir; done_testing; Dist-Zilla-Plugin-Git-2.046/t/version-default.t000600 000766 000024 00000002306 13443320014 021453 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::More 0.88 tests => 9; use lib 't/lib'; use Util qw(:DEFAULT zilla_version); init_test(corpus => 'version-default'); ## shortcut for new tester object sub new_zilla_version { new_zilla_from_repo; zilla_version; } ## Tests start here # with no tags and no initialization, should get default is( new_zilla_version, "0.001", "works with no commits" ); $git->add("."); $git->commit({ message => 'import' }); # with no tags and no initialization, should get default is( new_zilla_version, "0.001", "default is 0.001" ); # initialize it { local $ENV{V} = "1.23"; is( new_zilla_version, "1.23", "initialized with \$ENV{V}" ); } # add a tag that doesn't match the regex $git->tag("revert-me-later"); ok( (grep { /revert-me-later/ } $git->tag), "wrote revert-me-later tag" ); { is( new_zilla_version, "0.001", "default is 0.001" ); } # tag it $git->tag("v1.2.3"); ok( (grep { /v1\.2\.3/ } $git->tag), "wrote v1.2.3 tag" ); { is( new_zilla_version, "1.2.4", "initialized from last tag" ); } # tag it $git->tag("v1.23"); ok( (grep { /v1\.23/ } $git->tag), "wrote v1.23 tag" ); { is( new_zilla_version, "1.24", "initialized from last tag" ); } done_testing; Dist-Zilla-Plugin-Git-2.046/t/version-extraction.t000644 000766 000024 00000003041 13443320014 022214 0ustar00etherstaff000000 000000 # Test the _max_version_from_tags function of Git::NextVersion #--------------------------------------------------------------------- use strict; use warnings; use Test::More 0.88 tests => 10; # done_testing use Dist::Zilla::Plugin::Git::NextVersion (); #--------------------------------------------------------------------- sub t { my $name = "@_"; my $regexp = shift; my $expect = shift; undef $expect if $expect eq 'undef'; local $Test::Builder::Level = $Test::Builder::Level + 1; # This prevents RT#81061 from recurring (thanks, Matthew Horsfall): local $1; # ensure version.pm exhibits its buggy behavior with $1 is(Dist::Zilla::Plugin::Git::NextVersion::_max_version( Dist::Zilla::Plugin::Git::NextVersion::_versions_from_tags( $regexp, \@_ )), $expect, $name); } # end t #--------------------------------------------------------------------- t qw{(.+) 1.00 0.1 0.23 0.99 1.00 0.975 }; t qw{v(.+) 1.00 v0.1 v0.23 v0.99 v1.00 v0.975 }; t qw{v(.+) 1.00 invalid versions ok v1.00 v0.1 validate }; t qw{v(.+) undef }; t qw{v(.+) undef validate version verification }; t qw{v(.+) 2.010 validate version v2.010 verification v1.1234 }; # Don't use a regexp that extracts -TRIAL, but it shouldn't crash if you do: t qw{v(.+) 1.00 v1.00 v1.02-TRIAL v0.99 }; t qw{v([\d._]+) 1.02 v1.00 v1.02-TRIAL v0.99 }; # better regexp # Try versions with underscore: t qw{(.+) 1.00_01 0.1 0.23 0.99 1.00 0.975 1.00001 1.00_01 0.900_01 }; t qw{v(.+) 1.00_01 v0.1 v0.23 v1.00 v1.00001 v1.00_01 v0.900_01 }; done_testing; Dist-Zilla-Plugin-Git-2.046/t/version-regexp.t000600 000766 000024 00000001645 13443320014 021326 0ustar00etherstaff000000 000000 use strict; use warnings; use Test::More 0.88 tests => 6; use lib 't/lib'; use Util qw(:DEFAULT zilla_version); init_test(corpus => 'version-regexp'); ## shortcut for new tester object sub new_zilla_version { new_zilla_from_repo; zilla_version; } ## Tests start here $git->add("."); $git->commit({ message => 'import' }); # with no tags and no initialization, should get default is( new_zilla_version, "0.01", "default is 0.01" ); # set in dist.ini # initialize it { local $ENV{V} = "1.23"; is( new_zilla_version, "1.23", "initialized with \$ENV{V}" ); } # tag it $git->tag("release-v1.2.3"); ok( (grep { /release-v1\.2\.3/ } $git->tag), "wrote v1.2.3 tag" ); { is( new_zilla_version, "v1.2.4", "initialized from last tag" ); } # tag it $git->tag("release-1.23"); ok( (grep { /release-1\.23/ } $git->tag), "wrote v1.23 tag" ); { is( new_zilla_version, "1.24", "initialized from last tag" ); } done_testing; Dist-Zilla-Plugin-Git-2.046/t/zzz-check-breaks.t000644 000766 000024 00000002411 13443320014 021526 0ustar00etherstaff000000 000000 use strict; use warnings; # this test was generated with Dist::Zilla::Plugin::Test::CheckBreaks 0.019 use Test::More tests => 3; SKIP: { eval { +require Module::Runtime::Conflicts; Module::Runtime::Conflicts->check_conflicts }; skip('no Module::Runtime::Conflicts module found', 1) if not $INC{'Module/Runtime/Conflicts.pm'}; diag $@ if $@; pass 'conflicts checked via Module::Runtime::Conflicts'; } SKIP: { eval { +require Moose::Conflicts; Moose::Conflicts->check_conflicts }; skip('no Moose::Conflicts module found', 1) if not $INC{'Moose/Conflicts.pm'}; diag $@ if $@; pass 'conflicts checked via Moose::Conflicts'; } # this data duplicates x_breaks in META.json my $breaks = { "Dist::Zilla::App::CommandHelper::ChainSmoking" => "<= 1.04" }; use CPAN::Meta::Requirements; use CPAN::Meta::Check 0.011; my $reqs = CPAN::Meta::Requirements->new; $reqs->add_string_requirement($_, $breaks->{$_}) foreach keys %$breaks; our $result = CPAN::Meta::Check::check_requirements($reqs, 'conflicts'); if (my @breaks = grep { defined $result->{$_} } keys %$result) { diag 'Breakages found with Dist-Zilla-Plugin-Git:'; diag "$result->{$_}" for sort @breaks; diag "\n", 'You should now update these modules!'; } pass 'checked x_breaks data'; Dist-Zilla-Plugin-Git-2.046/t/lib/Dist/000700 000766 000024 00000000000 13443320014 017625 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/t/lib/Util.pm000600 000766 000024 00000017532 13443320014 020207 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # #--------------------------------------------------------------------- package Util; # # Copyright 2012 Christopher J. Madsen # # Author: Christopher J. Madsen # Created: 6 Oct 2012 # # This program is free software; you can redistribute it and/or modify # it under the same terms as Perl itself. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the # GNU General Public License or the Artistic License for more details. # # ABSTRACT: Utilities for testing Dist-Zilla-Plugin-Git #--------------------------------------------------------------------- use 5.010; use strict; use warnings; use Cwd qw(cwd); use File::Copy::Recursive qw(dircopy); use File::pushd qw(pushd tempd); use Git::Wrapper (); use Path::Tiny qw(path); use Test::DZil qw(Builder); use Test::More; use version 0.80 (); our ($base_dir, $base_dir_pushed, $dist_dir, $git_dir, $git, $zilla); use Exporter (); our @ISA = qw(Exporter); our @EXPORT = qw($base_dir $git_dir $git $zilla append_and_add append_to_file chdir_original_cwd clean_environment init_repo init_test keep_tempdir new_zilla_from_repo skip_unless_git_version slurp_text_file zilla_log_is); our @EXPORT_OK = qw($dist_dir zilla_version); my $original_cwd; BEGIN { # Change back to the original directory when shutting down, # to avoid problems with cleaning up tmpdirs. $original_cwd = path('.')->absolute; # we chdir around so make @INC absolute @INC = map {; ref($_) ? $_ : path($_)->absolute->stringify } @INC; } END { chdir $original_cwd if $original_cwd } { package Git::Wrapper; # adds --no-verify to all 'git commit' commands, to avoid triggering any # globally-configured pre-commit hooks. sub commit { return shift->RUN(commit => @_, { 'no-verify' => 1 }); } } #===================================================================== sub append_and_add { my $fn = $_[0]; &append_to_file; $git->add("$fn"); } # end append_and_add #--------------------------------------------------------------------- sub append_to_file { my $file = shift; my $fh = $git_dir->child($file)->opena_utf8; print $fh @_; close $fh; } #--------------------------------------------------------------------- sub chdir_original_cwd { chdir $original_cwd or die "Can't chdir $original_cwd: $!"; } #--------------------------------------------------------------------- # Internal function shared by clean_environment & init_test sub _clean_environment { my $homedir = shift; delete $ENV{V}; # In case we're being released with a manual version delete $ENV{$_} for grep /^G(?:IT|PG)_/i, keys %ENV; $ENV{HOME} = $ENV{GNUPGHOME} = $homedir; $ENV{GIT_CONFIG_NOSYSTEM} = 1; # Don't read /etc/gitconfig } # end _clean_environment #--------------------------------------------------------------------- # Create a mock home directory & clear the environment sub clean_environment { my $tempdir = Path::Tiny->tempdir( CLEANUP => 1 ); _clean_environment($tempdir->stringify); $tempdir; # Object must remain in scope until you're done } # end clean_environment #--------------------------------------------------------------------- sub init_test { my %opt = @_; $dist_dir = path('.')->absolute; # root of the distribution # Make a new directory so we don't affect the source repo: $base_dir_pushed = Path::Tiny->tempdir; $base_dir = $base_dir_pushed->absolute; # Mock HOME to keep user's global Git config from causing problems: my $homedir = $base_dir->child('home')->stringify; mkdir($homedir) or die "Failed to create $homedir: $!"; _clean_environment($homedir); # Create the test repo: $git_dir = $base_dir->child('repo'); $git_dir->mkpath; dircopy($dist_dir->child(corpus => $opt{corpus}), $git_dir) if defined $opt{corpus}; if (my $files = $opt{add_files}) { while (my ($name, $content) = each %$files) { my $fn = $git_dir->child($name); $fn->parent->mkpath; $fn->spew_utf8( $content ); } } # end if add_files $git = init_repo($git_dir); } # end init_test #--------------------------------------------------------------------- # Init a Git repo and set defaults. # Returns a Git::Wrapper for the new repo. # If @initial_files are supplied, also does add -f and commits. sub init_repo { my ($git_dir, @initial_files) = @_; { my $pushd = pushd($git_dir); system qw(git init --quiet) and die "Can't initialize repo in $git_dir"; } my $git = Git::Wrapper->new("$git_dir"); $git->config( 'push.default' => 'matching' ); # compatibility with Git 1.8 $git->config( 'user.name' => 'dzp-git test' ); $git->config( 'user.email' => 'dzp-git@test' ); # If core.autocrlf is true, then git add may hang on Windows. # This is probably a bug in Git::Wrapper, but a workaround is to set # autocrlf to false. It seems to be caused by these warning messages # (from git version 1.8.5.2.msysgit.0): # warning: LF will be replaced by CRLF in .gitignore. # The file will have its original line endings in your working directory. $git->config( 'core.autocrlf' => 'false' ); if (@initial_files) { # Don't use --force, because only -f works before git 1.5.6 $git->add(-f => @initial_files); $git->commit( { message => 'initial commit' } ); } $git; } # end init_repo #--------------------------------------------------------------------- sub keep_tempdir { $base_dir_pushed->preserve; print "Git files are in $git_dir\n"; } # end keep_tempdir #--------------------------------------------------------------------- sub new_zilla_from_repo { $zilla = Builder->from_config({dist_root => $git_dir}, @_); } # end zilla_from_repo #--------------------------------------------------------------------- our $git_version; sub skip_unless_git_version { my $need_version = shift; $git_version = version->parse( Git::Wrapper->new('.')->version =~ m[^( \d+ (?: \. \d+ )+ )]x ) unless defined $git_version; if ( $git_version < version->parse($need_version) ) { my $why = "git $need_version or later required, you have $git_version"; if (my $tests = shift) { skip $why, $tests } # skip some else { plan skip_all => $why } # skip all } # end if we don't have the required version } # end skip_unless_git_version #--------------------------------------------------------------------- sub slurp_text_file { my ($filename) = @_; return scalar do { local $/; # Don't use Path::Tiny's slurp_utf8 because it doesn't do # CRLF translation on Windows. if (open my $fh, '<:utf8', path( $zilla->tempdir )->child( $filename )) { <$fh>; } else { diag("Unable to open $filename: $!"); undef; } }; } # end slurp_text_file #--------------------------------------------------------------------- sub zilla_log_is { my ($matching, $expected, $name) = @_; $name //= "log messages for $matching"; $matching = qr /^\Q[$matching]\E/ unless ref $matching; my $got = join("\n", grep { /$matching/ } @{ $zilla->log_messages }); $got =~ s/\s*\z/\n/; local $Test::Builder::Level = $Test::Builder::Level + 1; is( $got, $expected, $name); $zilla->clear_log_events; } #--------------------------------------------------------------------- sub zilla_version { my $pushd = pushd($zilla->root); # Must be in the correct directory my $version = $zilla->version; return $version; } # end zilla_version #===================================================================== # Package Return Value: 1; __END__ Dist-Zilla-Plugin-Git-2.046/t/lib/Dist/Zilla/000700 000766 000024 00000000000 13443320014 020700 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/t/lib/Dist/Zilla/Plugin/000700 000766 000024 00000000000 13443320014 022136 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/t/lib/Dist/Zilla/Plugin/MyTestArchiver.pm000600 000766 000024 00000001410 13443320014 025403 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # # taken from DZP::ArchiveRelease, thanks CJM! package Dist::Zilla::Plugin::MyTestArchiver; use Moose; use Path::Tiny qw(path); use File::Copy (); with 'Dist::Zilla::Role::Releaser'; sub release { my ($self, $tgz) = @_; chmod(0444, $tgz); my $dir = 'releases'; mkdir $dir or $self->log_fatal( "Unable to create directory $dir: $!" ); my $dest = path( $dir )->child($tgz->basename); File::Copy::move($tgz, $dest) or $self->log_fatal( "Unable to move: $!" ); $self->log("Moved $tgz to $dest"); } 1; Dist-Zilla-Plugin-Git-2.046/lib/Dist/000700 000766 000024 00000000000 13443320014 017362 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/000700 000766 000024 00000000000 13443320014 020435 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/000700 000766 000024 00000000000 13443320014 021673 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/PluginBundle/000700 000766 000024 00000000000 13443320014 023025 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Role/000700 000766 000024 00000000000 13443320014 021336 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Role/Git/000700 000766 000024 00000000000 13443320014 022061 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Role/Git/DirtyFiles.pm000600 000766 000024 00000014606 13443320014 024506 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::Role::Git::DirtyFiles; # ABSTRACT: Provide the allow_dirty & changelog attributes our $VERSION = '2.046'; use Moose::Role; use Types::Standard qw{ Any ArrayRef Str RegexpRef }; use Type::Utils qw(coerce from as via subtype); use Types::Path::Tiny 'Path'; use namespace::autoclean; use Path::Tiny 0.048 qw(); # subsumes use Try::Tiny; requires qw(log_fatal repo_root zilla); # -- attributes #pod =attr allow_dirty #pod #pod A list of paths that are allowed to be dirty in the git checkout. #pod Defaults to C and the changelog (as defined per the #pod C attribute. #pod #pod If your C is not the default (C<.>), then these pathnames #pod are relative to Dist::Zilla's root directory, not the Git root directory. #pod #pod =attr allow_dirty_match #pod #pod A list of regular expressions that match paths allowed to be dirty in #pod the git checkout. This is combined with C. Defaults to #pod the empty list. #pod #pod The paths being matched are relative to the Git root directory, even #pod if your C is not the default (C<.>). #pod #pod =attr changelog #pod #pod The name of the changelog. Defaults to C. #pod #pod =cut { # We specifically allow the empty string to represent the empty list. # Otherwise, there'd be no way to specify an empty list in an INI file. my $type = subtype as ArrayRef[Path]; coerce $type, from ArrayRef, via { (ArrayRef[Path])->coerce( [ grep { length } @$_ ] ) }, from Any, via { length($_) ? (ArrayRef[Path])->coerce($_) : [] }; has allow_dirty => ( is => 'ro', lazy => 1, isa => $type, coerce => 1, builder => '_build_allow_dirty', ); } has changelog => ( is => 'ro', isa=>Str, default => 'Changes' ); { my $type = subtype as ArrayRef[RegexpRef]; coerce $type, from ArrayRef[Str], via { [map { qr/$_/ } @$_] }; has allow_dirty_match => ( is => 'ro', lazy => 1, coerce => 1, isa => $type, default => sub { [] }, ); } around mvp_multivalue_args => sub { my ($orig, $self) = @_; my @start = $self->$orig; return (@start, 'allow_dirty', 'allow_dirty_match'); }; # -- builders & initializers sub _build_allow_dirty { [ 'dist.ini', shift->changelog ] } around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { (map { $_ => [ sort @{ $self->$_ } ] } qw(allow_dirty allow_dirty_match)), changelog => $self->changelog, }; return $config; }; #pod =method list_dirty_files #pod #pod my @dirty = $plugin->list_dirty_files($git, $listAllowed); #pod #pod This returns a list of the modified or deleted files in C<$git>, #pod filtered against the C attribute. If C<$listAllowed> is #pod true, only allowed files are listed. If it's false, only files that #pod are not allowed to be dirty are listed. #pod #pod In scalar context, returns the number of dirty files. #pod #pod =cut sub list_dirty_files { my ($self, $git, $listAllowed) = @_; my $git_root = $self->repo_root; my @filenames = @{ $self->allow_dirty }; # Interpret allow_dirty relative to the dzil root, not git root nor cwd my $dzil_root = Path::Tiny::path($self->zilla->root)->absolute->realpath; $git_root = Path::Tiny::path($git_root) ->absolute($dzil_root) ->realpath; $self->log_fatal("Dzil root $dzil_root is not inside Git root $git_root") unless $git_root->subsumes($dzil_root); for my $fn (@filenames) { try { $fn = Path::Tiny::path($fn) ->absolute($dzil_root) ->realpath # process .. ->relative($git_root) ->stringify; }; } my $allowed = join '|', @{ $self->allow_dirty_match }, map { qr{^\Q$_\E$} } @filenames; $allowed = qr/(?!X)X/ if $allowed eq ''; # this cannot match anything return grep { /$allowed/ ? $listAllowed : !$listAllowed } $git->ls_files( { modified=>1, deleted=>1 } ); } # end list_dirty_files 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Role::Git::DirtyFiles - Provide the allow_dirty & changelog attributes =head1 VERSION version 2.046 =head1 DESCRIPTION This role is used within the git plugin to work with files that are dirty in the local git checkout. =head1 ATTRIBUTES =head2 allow_dirty A list of paths that are allowed to be dirty in the git checkout. Defaults to C and the changelog (as defined per the C attribute. If your C is not the default (C<.>), then these pathnames are relative to Dist::Zilla's root directory, not the Git root directory. =head2 allow_dirty_match A list of regular expressions that match paths allowed to be dirty in the git checkout. This is combined with C. Defaults to the empty list. The paths being matched are relative to the Git root directory, even if your C is not the default (C<.>). =head2 changelog The name of the changelog. Defaults to C. =head1 METHODS =head2 list_dirty_files my @dirty = $plugin->list_dirty_files($git, $listAllowed); This returns a list of the modified or deleted files in C<$git>, filtered against the C attribute. If C<$listAllowed> is true, only allowed files are listed. If it's false, only files that are not allowed to be dirty are listed. In scalar context, returns the number of dirty files. =for Pod::Coverage mvp_multivalue_args =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Role/Git/Repo.pm000600 000766 000024 00000007467 13443320014 023344 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # package Dist::Zilla::Role::Git::Repo; # ABSTRACT: Provide repository information for Git plugins our $VERSION = '2.046'; use Moose::Role; use Types::Standard qw(Str Maybe); use namespace::autoclean; has repo_root => ( is => 'ro', isa => Str, lazy => 1, builder => '_build_repo_root', ); sub _build_repo_root { my $self = shift; $self->zilla->root->stringify; } #pod =method current_git_branch #pod #pod $branch = $plugin->current_git_branch; #pod #pod The current branch in the repository, or C if the repository #pod has a detached HEAD. Note: This value is cached; it will not #pod be updated if the branch is changed during the run. #pod #pod =cut has current_git_branch => ( is => 'ro', isa => Maybe[Str], lazy => 1, builder => '_build_current_git_branch', init_arg => undef, # Not configurable ); sub _build_current_git_branch { my $self = shift; # Git 1.7+ allows "rev-parse --abbrev-ref HEAD", but we want to support 1.5.4 my ($branch) = $self->git->RUN(qw(symbolic-ref -q HEAD)); no warnings 'uninitialized'; undef $branch unless $branch =~ s!^refs/heads/!!; $branch; } # end _build_current_git_branch #pod =method git #pod #pod $git = $plugin->git; #pod #pod This method returns a Git::Wrapper object for the C #pod directory, constructing one if necessary. The object is shared #pod between all plugins that consume this role (if they have the same #pod C). #pod #pod =cut my %cached_wrapper; around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { repo_root => $self->repo_root, git_version => $self->git->version, }; return $config; }; sub git { my $root = shift->repo_root; $cached_wrapper{$root} ||= do { require Git::Wrapper; Git::Wrapper->new( $root ); }; } 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Role::Git::Repo - Provide repository information for Git plugins =head1 VERSION version 2.046 =head1 DESCRIPTION This role is used within the Git plugins to get information about the repository structure, and to create a Git::Wrapper object. =head1 ATTRIBUTES =head2 repo_root The repository root, either as a full path or relative to the distribution root. The default is the distribution root (C<$zilla->root>). =head1 METHODS =head2 current_git_branch $branch = $plugin->current_git_branch; The current branch in the repository, or C if the repository has a detached HEAD. Note: This value is cached; it will not be updated if the branch is changed during the run. =head2 git $git = $plugin->git; This method returns a Git::Wrapper object for the C directory, constructing one if necessary. The object is shared between all plugins that consume this role (if they have the same C). =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Role/Git/StringFormatter.pm000600 000766 000024 00000011625 13443320014 025560 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # package Dist::Zilla::Role::Git::StringFormatter; # ABSTRACT: Provide a String::Formatter for commit messages our $VERSION = '2.046'; use 5.008; use strict; use warnings; use namespace::autoclean; use List::Util qw{ first }; use Moose::Role; use MooseX::Has::Sugar; use Types::Standard qw{ Str }; requires qw(changelog log zilla); use String::Formatter method_stringf => { -as => '_format_string_sub', codes => { c => sub { $_[0]->_get_changes }, d => sub { require DateTime; DateTime->now(time_zone => $_[0]->time_zone) ->format_cldr($_[1] || 'dd-MMM-yyyy') }, n => sub { "\n" }, N => sub { $_[0]->zilla->name }, t => sub { $_[0]->zilla->is_trial ? (defined $_[1] ? $_[1] : '-TRIAL') : '' }, v => sub { $_[0]->zilla->version }, V => sub { my $v = $_[0]->zilla->version; $v =~ s/\Av//; $v }, }, }; #pod =attr changelog #pod #pod The filename of your F file. (Must be provided by the class #pod that consumes this role.) #pod #pod =attr time_zone #pod #pod The time zone used with the C<%d> code. The default is C. #pod #pod =cut has time_zone => ( ro, isa=>Str, default => 'local' ); around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { time_zone => $self->time_zone, }; return $config; }; # -- private methods # The sub generated by String::Formatter can't be used as a method directly. sub _format_string { my $self = shift; _format_string_sub(@_, $self); } # end _format_string sub _get_changes { my $self = shift; # parse changelog to find changes for this release my $cl_name = $self->changelog; my $changelog = first { $_->name eq $cl_name } @{ $self->zilla->files }; unless ($changelog) { $self->log("WARNING: Unable to find $cl_name"); return ''; } my $newver = $self->zilla->version; $changelog->content =~ / ^\Q$newver\E(?![_.]*[0-9]).*\n # from line beginning with version number ( (?: (?> .* ) (?:\n|\z) )*? ) # capture as few lines as possible (?: (?> \s* ) ^\S | \z ) # until non-indented line or EOF /xm or do { $self->log("WARNING: Unable to find $newver in $cl_name"); return ''; }; (my $changes = $1) =~ s/^\s*\n//; # Remove leading blank lines if (length $changes) { $changes =~ s/\s*\z/\n/; # Change trailing whitespace to a single newline } else { $self->log("WARNING: No changes listed under $newver in $cl_name") } # return changes return $changes; } # end _get_changes 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Role::Git::StringFormatter - Provide a String::Formatter for commit messages =head1 VERSION version 2.046 =head1 DESCRIPTION This role is used within the Git plugins to format strings that may include the changes from the current release. These formatting codes are available: =over 4 =item C<%c> The list of changes in the just-released version (read from C). It will include lines between the current version and timestamp and the next non-indented line, except that blank lines at the beginning or end are removed. It always ends in a newline unless it is the empty string. =item C<%{dd-MMM-yyyy}d> The current date. You can use any CLDR format supported by L. A bare C<%d> means C<%{dd-MMM-yyyy}d>. =item C<%n> a newline =item C<%N> the distribution name =item C<%{-TRIAL}t> Expands to -TRIAL (or any other supplied string) if this is a trial release, or the empty string if not. A bare C<%t> means C<%{-TRIAL}t>. =item C<%v> the distribution version =item C<%V> The distribution version, but with a leading C removed if it exists. =back =head1 ATTRIBUTES =head2 changelog The filename of your F file. (Must be provided by the class that consumes this role.) =head2 time_zone The time zone used with the C<%d> code. The default is C. =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/PluginBundle/Git.pm000600 000766 000024 00000007051 13443320014 024113 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::PluginBundle::Git; # ABSTRACT: All git plugins in one bundle our $VERSION = '2.046'; use Moose; use Module::Runtime 'use_module'; use namespace::autoclean; with 'Dist::Zilla::Role::PluginBundle'; # bundle all git plugins my @names = qw{ Check Commit Tag Push }; my %multi; for my $name (@names) { my $class = "Dist::Zilla::Plugin::Git::$name"; use_module $class; @multi{$class->mvp_multivalue_args} = (); } sub mvp_multivalue_args { keys %multi; } sub bundle_config { my ($self, $section) = @_; #my $class = ( ref $self ) || $self; my $arg = $section->{payload}; my @config; for my $name (@names) { my $class = "Dist::Zilla::Plugin::Git::$name"; my %payload; foreach my $k (keys %$arg) { $payload{$k} = $arg->{$k} if $class->can($k); } push @config, [ "$section->{name}/$name" => $class => \%payload ]; } return @config; } __PACKAGE__->meta->make_immutable; no Moose; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::PluginBundle::Git - All git plugins in one bundle =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [@Git] changelog = Changes ; this is the default allow_dirty = dist.ini ; see Git::Check... allow_dirty = Changes ; ... and Git::Commit commit_msg = v%V%n%n%c ; see Git::Commit tag_format = v%V ; see Git::Tag tag_message = v%V ; see Git::Tag push_to = origin ; see Git::Push =head1 DESCRIPTION This is a plugin bundle to load the most common Git plugins. It is equivalent to: [Git::Check] [Git::Commit] [Git::Tag] [Git::Push] Any options given are passed through to each plugin. See each plugin's documentation for the options it supports. (Plugins just ignore options they don't understand.) =for Pod::Coverage bundle_config mvp_multivalue_args =head1 SEE ALSO =over 4 =item * L Before a release, check that the repo is in a clean state (you have committed your changes). =item * L After a release, commit updated files. =item * L After a release, tag the just-released version. =item * L After a release, push the released code & tag to your public repo. =back For a list of Git plugins in this distribution that are not part of this bundle, see L. =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/000700 000766 000024 00000000000 13443320014 022416 5ustar00etherstaff000000 000000 Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git.pm000600 000766 000024 00000012001 13443320014 022750 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::Plugin::Git; # git description: v2.045-9-g75e375f # ABSTRACT: Update your git repository after release our $VERSION = '2.046'; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git - Update your git repository after release =head1 VERSION version 2.046 =head1 DESCRIPTION This set of plugins for L can do interesting things for module authors using Git (L) to track their work. You need Git 1.5.4 or later to use these plugins. Some plugins require a more recent version of Git for certain features. =head2 The @Git Bundle The most commonly used plugins are part of the L<@Git bundle|Dist::Zilla::PluginBundle::Git>. They are: =over 4 =item * L Before a release, check that the repo is in a clean state (you have committed your changes). =item * L After a release, commit updated files. =item * L After a release, tag the just-released version. =item * L After a release, push the released code & tag to your public repo. =back =head2 Non-Bundled Plugins The other plugins in this distribution are not included in the @Git bundle, either because they conflict with L's L<@Basic bundle|Dist::Zilla::PluginBundle::Basic> or because they have more specialized uses. =over 4 =item * L Commits the released files to a separate branch of your repo. =item * L A replacement for Dist::Zilla's standard L plugin that gathers files based on whether they are tracked by Git (conflicts with @Basic because that includes GatherDir). =item * L Can be used in a minting profile (L) to initialize and configure your Git repo automatically when you do S>. =item * L Calculates the version number of your distribution from your Git tags using L. =back =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 CONTRIBUTORS =for stopwords Christopher J. Madsen Jérôme Quelin Karen Etheridge Kent Fredric Yanick Champoux Ricardo Signes Graham Knop David Golden Mike Friedman Chris Weyl Stephen R. Scaffidi Randy Stauner Barr Apocalypse Doherty Nigel Metheringham Olivier Mengué Tatsuhiko Miyagawa Tuomas Jormola Alessandro Ghedini Brian Phillips Steinbrunner Geoffrey Broadwell Harley Pig Jesse Luehrs Brendan Byrd Alexandr Ciornii Matt Follett Michael Schout =over 4 =item * Christopher J. Madsen =item * Jérôme Quelin =item * Karen Etheridge =item * Kent Fredric =item * Yanick Champoux =item * Ricardo Signes =item * Graham Knop =item * David Golden =item * Mike Friedman =item * Chris Weyl =item * Stephen R. Scaffidi =item * Randy Stauner =item * Graham Barr =item * Apocalypse =item * Mike Doherty =item * Nigel Metheringham =item * Olivier Mengué =item * Tatsuhiko Miyagawa =item * Tuomas Jormola =item * Alessandro Ghedini =item * Brian Phillips =item * David Steinbrunner =item * Geoffrey Broadwell =item * Harley Pig =item * Jesse Luehrs =item * Brendan Byrd =item * Alexandr Ciornii =item * Matt Follett =item * Michael Schout =back =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/Check.pm000600 000766 000024 00000013677 13443320014 024011 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::Plugin::Git::Check; # ABSTRACT: Check your git repository before releasing our $VERSION = '2.046'; use Moose; use namespace::autoclean 0.09; use Types::Standard qw(Bool Enum);; with 'Dist::Zilla::Role::AfterBuild', 'Dist::Zilla::Role::BeforeRelease', 'Dist::Zilla::Role::Git::Repo'; with 'Dist::Zilla::Role::Git::DirtyFiles', 'Dist::Zilla::Role::GitConfig'; has build_warnings => ( is=>'ro', isa => Bool, default => 0 ); has untracked_files => ( is=>'ro', isa => Enum([qw(die warn ignore)]), default => 'die' ); sub _git_config_mapping { +{ changelog => '%{changelog}s', } } # -- public methods around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { # build_warnings does not affect the build outcome; do not need to track it untracked_files => $self->untracked_files, blessed($self) ne __PACKAGE__ ? ( version => $VERSION ) : (), }; return $config; }; sub _perform_checks { my ($self, $log_method) = @_; my @issues; my $git = $self->git; my @output; # fetch current branch my ($branch) = map { /^\*\s+(.+)/ ? $1 : () } $git->branch; # check if some changes are staged for commit @output = $git->diff( { cached=>1, 'name-status'=>1 } ); if ( @output ) { push @issues, @output . " staged change" . (@output == 1 ? '' : 's'); my $errmsg = "branch $branch has some changes staged for commit:\n" . join "\n", map { "\t$_" } @output; $self->$log_method($errmsg); } # everything but files listed in allow_dirty should be in a # clean state @output = $self->list_dirty_files($git); if ( @output ) { push @issues, @output . " uncommitted file" . (@output == 1 ? '' : 's'); my $errmsg = "branch $branch has some uncommitted files:\n" . join "\n", map { "\t$_" } @output; $self->$log_method($errmsg); } # no files should be untracked @output = $git->ls_files( { others=>1, 'exclude-standard'=>1 } ); if ( @output ) { push @issues, @output . " untracked file" . (@output == 1 ? '' : 's'); my $untracked = $self->untracked_files; if ($untracked ne 'ignore') { # If $log_method is log_fatal, switch to log unless # untracked files are fatal. If $log_method is already log, # this is a no-op. $log_method = 'log' unless $untracked eq 'die'; my $errmsg = "branch $branch has some untracked files:\n" . join "\n", map { "\t$_" } @output; $self->$log_method($errmsg); } } if (@issues) { $self->log( "branch $branch has " . join(', ', @issues)); } else { $self->log( "branch $branch is in a clean state" ); } } # end _perform_checks sub after_build { my $self = shift; $self->_perform_checks('log') if $self->build_warnings; } sub before_release { my $self = shift; $self->_perform_checks('log_fatal'); } __PACKAGE__->meta->make_immutable; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git::Check - Check your git repository before releasing =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [Git::Check] allow_dirty = dist.ini allow_dirty = README changelog = Changes ; this is the default build_warnings = 0 ; this is the default untracked_files = die ; default value (can also be "warn" or "ignore") =head1 DESCRIPTION This plugin checks that your Git repo is in a clean state before releasing. The following checks are performed before releasing: =over 4 =item * there should be no files in the index (staged copy) =item * there should be no untracked files in the working copy =item * the working copy should be clean. The files listed in C can be modified locally, though. =back If those conditions are not met, the plugin will die, and the release will thus be aborted. This lets you fix the problems before continuing. The plugin accepts the following options: =over 4 =item * changelog - the name of your changelog file. defaults to F. =item * allow_dirty - a file that is allowed to have local modifications. This option may appear multiple times. The default list is F and the changelog file given by C. You can use C to prohibit all local modifications. =item * allow_dirty_match - works the same as allow_dirty, but matching as a regular expression instead of an exact filename. =item * build_warnings - if 1, perform the same checks after every build, but as warnings, not errors. Defaults to 0. =item * untracked_files - indicates what to do if there are untracked files. Must be either C (the default), C, or C. C lists the untracked files, while C only prints the total number of untracked files. =back =for Pod::Coverage after_build before_release =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/Commit.pm000600 000766 000024 00000014175 13443320014 024216 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::Plugin::Git::Commit; # ABSTRACT: Commit dirty files our $VERSION = '2.046'; use namespace::autoclean; use File::Temp qw{ tempfile }; use Moose; use MooseX::Has::Sugar; use Types::Standard qw(Str ArrayRef); use Types::Path::Tiny 'Path'; use Path::Tiny 0.048 qw(); # subsumes use Cwd; with 'Dist::Zilla::Role::AfterRelease', 'Dist::Zilla::Role::Git::Repo'; with 'Dist::Zilla::Role::Git::DirtyFiles'; with 'Dist::Zilla::Role::Git::StringFormatter'; with 'Dist::Zilla::Role::GitConfig'; sub _git_config_mapping { +{ changelog => '%{changelog}s', } } # -- attributes has commit_msg => ( ro, isa=>Str, default => 'v%V%n%n%c' ); has add_files_in => ( ro, isa=> ArrayRef[Path], coerce => 1, default => sub { [] }); # -- public methods sub mvp_multivalue_args { qw( add_files_in ) } around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { commit_msg => $self->commit_msg, add_files_in => [ sort @{ $self->add_files_in } ], blessed($self) ne __PACKAGE__ ? ( version => $VERSION ) : (), }; return $config; }; sub after_release { my $self = shift; my $git = $self->git; my @output; # check if there are dirty files that need to be committed. # at this time, we know that only those 2 files may remain modified, # otherwise before_release would have failed, ending the release # process. @output = sort { lc $a cmp lc $b } $self->list_dirty_files($git, 1); # add any other untracked files to the commit list if ( @{ $self->add_files_in } ) { my @untracked_files = $git->ls_files( { others=>1, 'exclude-standard'=>1 } ); foreach my $f ( @untracked_files ) { foreach my $path ( @{ $self->add_files_in } ) { if ( Path::Tiny::path( $path )->subsumes( $f ) ) { push( @output, $f ); last; } } } } # if nothing to commit, we're done! return unless @output; # write commit message in a temp file my ($fh, $filename) = tempfile( getcwd . '/DZP-git.XXXX', UNLINK => 1 ); binmode $fh, ':utf8' unless Dist::Zilla->VERSION < 5; print $fh $self->get_commit_message; close $fh; # commit the files in git $git->add( @output ); $self->log_debug($_) for $git->commit( { file=>$filename } ); $self->log("Committed @output"); } #pod =method get_commit_message #pod #pod This method returns the commit message. The default implementation #pod reads the Changes file to get the list of changes in the just-released version. #pod #pod =cut sub get_commit_message { my $self = shift; return $self->_format_string($self->commit_msg); } # end get_commit_message __PACKAGE__->meta->make_immutable; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git::Commit - Commit dirty files =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [Git::Commit] changelog = Changes ; this is the default =head1 DESCRIPTION Once the release is done, this plugin will record this fact in git by committing changelog and F. The commit message will be taken from the changelog for this release. It will include lines between the current version and timestamp and the next non-indented line, except that blank lines at the beginning or end are removed. B If you are using Git::Commit in conjunction with the L plugin, C<[NextRelease]> must come before C<[Git::Commit]> (or C<[@Git]>) in your F or plugin bundle. Otherwise, Git::Commit will commit the F file before NextRelease has updated it. The plugin accepts the following options: =over 4 =item * changelog - the name of your changelog file. Defaults to F. =item * allow_dirty - a file that will be checked in if it is locally modified. This option may appear multiple times. The default list is F and the changelog file given by C. =item * allow_dirty_match - works the same as allow_dirty, but matching as a regular expression(s) instead of an exact filename(s). =item * add_files_in - a path that will have its new files checked in. This option may appear multiple times. This is used to add files generated during build-time to the repository, for example. The default list is empty. Note: The files have to be generated between the phases BeforeRelease E-E AfterRelease, and after Git::Check + before Git::Commit. =item * commit_msg - the commit message to use. Defaults to C, meaning the version number and the list of changes. The L are documented under L. =item * time_zone - the time zone to use with C<%d>. Can be any time zone name accepted by DateTime. Defaults to C. =back =head1 METHODS =head2 get_commit_message This method returns the commit message. The default implementation reads the Changes file to get the list of changes in the just-released version. =for Pod::Coverage after_release mvp_multivalue_args =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/CommitBuild.pm000600 000766 000024 00000020402 13443320014 025164 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.008; use strict; use warnings; package Dist::Zilla::Plugin::Git::CommitBuild; # ABSTRACT: Check in build results on separate branch our $VERSION = '2.046'; use Git::Wrapper 0.021 (); # need -STDIN use IPC::Open3; use IPC::System::Simple; # required for Fatalised/autodying system use File::chdir; use File::Spec::Functions qw/ rel2abs catfile /; use File::Temp; use Moose; use namespace::autoclean; use Path::Tiny qw(); use Types::Path::Tiny 'Path'; use MooseX::Has::Sugar; use Types::Standard qw(Str Bool); use Cwd qw(abs_path); use Try::Tiny; use String::Formatter ( method_stringf => { -as => '_format_branch', codes => { b => sub { shift->_source_branch }, }, }, method_stringf => { -as => '_format_message', codes => { b => sub { shift->_source_branch }, h => sub { (shift->git->rev_parse( '--short', 'HEAD' ))[0] }, H => sub { (shift->git->rev_parse('HEAD'))[0] }, t => sub { shift->zilla->is_trial ? '-TRIAL' : '' }, v => sub { shift->zilla->version }, } } ); # debugging... #use Smart::Comments '###'; with 'Dist::Zilla::Role::AfterBuild', 'Dist::Zilla::Role::AfterRelease', 'Dist::Zilla::Role::Git::Repo'; # -- attributes has branch => ( ro, isa => Str, default => 'build/%b', required => 1 ); has release_branch => ( ro, isa => Str, required => 0 ); has message => ( ro, isa => Str, default => 'Build results of %h (on %b)', required => 1 ); has release_message => ( ro, isa => Str, lazy => 1, builder => '_build_release_message' ); has build_root => ( rw, coerce => 1, isa => Path ); has _source_branch => ( is => 'ro', isa => Str, lazy => 1, init_arg=> undef, default => sub { ($_[0]->git->name_rev( '--name-only', 'HEAD' ))[0]; }, ); has multiple_inheritance => ( is => 'ro', isa => Bool, default => 0, ); # -- attribute builders sub _build_release_message { return shift->message; } # -- role implementation around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { (map { $_ => $self->$_ } qw(branch release_branch message release_message build_root)), multiple_inheritance => $self->multiple_inheritance ? 1 : 0, blessed($self) ne __PACKAGE__ ? ( version => $VERSION ) : (), }; return $config; }; sub after_build { my ( $self, $args) = @_; # because the build_root mysteriously change at # the 'after_release' stage $self->build_root( $args->{build_root} ); $self->_commit_build( $args, $self->branch, $self->message ); } sub after_release { my ( $self, $args) = @_; $self->_commit_build( $args, $self->release_branch, $self->release_message ); } sub _commit_build { my ( $self, undef, $branch, $message ) = @_; return unless $branch; my $dir = Path::Tiny->tempdir( CLEANUP => 1) ; my $src = $self->git; my $target_branch = _format_branch( $branch, $self ); for my $file ( @{ $self->zilla->files } ) { my ( $name, $content ) = ( $file->name, (Dist::Zilla->VERSION < 5 ? $file->content : $file->encoded_content) ); my ( $outfile ) = $dir->child( $name ); $outfile->parent->mkpath(); $outfile->spew_raw( $content ); chmod $file->mode, "$outfile" or die "couldn't chmod $outfile: $!"; } # returns the sha1 of the created tree object my $tree = $self->_create_tree($src, $dir); my ($last_build_tree) = try { $src->rev_parse("$target_branch^{tree}") }; $last_build_tree ||= 'none'; ### $last_build_tree if ($tree eq $last_build_tree) { $self->log("No changes since the last build; not committing"); return; } my @parents = ( ( $self->_source_branch ) x $self->multiple_inheritance, grep { eval { $src->rev_parse({ 'q' => 1, 'verify'=>1}, $_ ) } } $target_branch ); ### @parents my $this_message = _format_message( $message, $self ); my @commit = $src->commit_tree( { -STDIN => $this_message }, $tree, map { ( '-p' => $_) } @parents ); ### @commit $src->update_ref( 'refs/heads/' . $target_branch, $commit[0] ); } sub _create_tree { my ($self, $repo, $fs_obj) = @_; ### called with: "$fs_obj" if (!$fs_obj->is_dir) { my ($sha) = $repo->hash_object({ w => 1 }, "$fs_obj"); ### hashed: "$sha $fs_obj" return $sha; } my @entries; for my $obj ($fs_obj->children) { ### working on: "$obj" my $sha = $self->_create_tree($repo, $obj); my $mode = sprintf('%o', $obj->stat->mode); # $obj->is_dir ? '040000' : ' my $type = $obj->is_dir ? 'tree' : 'blob'; my $name = $obj->basename; push @entries, "$mode $type $sha\t$name"; } ### @entries my ($sha) = $repo->mktree({ -STDIN => join("\n", @entries, q{}) }); return $sha; } __PACKAGE__->meta->make_immutable; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git::CommitBuild - Check in build results on separate branch =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [Git::CommitBuild] ; these are the defaults branch = build/%b message = Build results of %h (on %b) multiple_inheritance = 0 =head1 DESCRIPTION Once the build is done, this plugin will commit the results of the build to a branch that is completely separate from your regular code branches (i.e. with a different root commit). This potentially makes your repository more useful to those who may not have L and all of its dependencies installed. The plugin accepts the following options: =over 4 =item * branch - L string for where to commit the build contents. A single formatting code (C<%b>) is defined for this attribute and will be substituted with the name of the current branch in your git repository. Defaults to C, but if set explicitly to an empty string causes no build contents checkin to be made. =item * release_branch - L string for where to commit the build contents Same as C, but commit the build content only after a release. No default, meaning no release branch. =item * message - L string for what commit message to use when committing the results of the build. This option supports five formatting codes: =over 4 =item * C<%b> - Name of the current branch =item * C<%H> - Commit hash =item * C<%h> - Abbreviated commit hash =item * C<%v> - The release version number =item * C<%V> - The release version number, but with a leading C removed if it exists =item * C<%t> - The string "-TRIAL" if this is a trial release =back =item * release_message - L string for what commit message to use when committing the results of the release. Defaults to the same as C. =item * multiple_inheritance - Indicates whether the commit containing the build results should have the source commit as a parent. If false (the default), the build branch will be completely separate from the regular code branches. If set to a true value, commits on a build branch will have two parents: the previous build commit and the source commit from which the build was generated. =back =for Pod::Coverage after_build after_release =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/GatherDir.pm000600 000766 000024 00000030347 13443320014 024636 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # package Dist::Zilla::Plugin::Git::GatherDir; # ABSTRACT: Gather all tracked files in a Git working directory our $VERSION = '2.046'; use Moose; extends 'Dist::Zilla::Plugin::GatherDir' => { -version => 4.200016 }; # exclude_match #pod =head1 SYNOPSIS #pod #pod In your F: #pod #pod [Git::GatherDir] #pod root = . ; this is the default #pod prefix = ; this is the default #pod include_dotfiles = 0 ; this is the default #pod include_untracked = 0 ; this is the default #pod exclude_filename = dir/skip ; there is no default #pod exclude_match = ^local_ ; there is no default #pod #pod =head1 DESCRIPTION #pod #pod This is a trivial variant of the L #pod plugin. It looks in the directory named in the L attribute and adds all #pod the Git tracked files it finds there (as determined by C). If the #pod root begins with a tilde, the tilde portion is passed through C first. #pod #pod Most users just need: #pod #pod [Git::GatherDir] #pod #pod ...and this will pick up all tracked files from the current directory into the #pod dist. You can use it multiple times, as you can any other plugin, by providing #pod a plugin name. For example, if you want to include external specification #pod files into a subdir of your dist, you might write: #pod #pod [Git::GatherDir] #pod ; this plugin needs no config and gathers most of your files #pod #pod [Git::GatherDir / SpecFiles] #pod ; this plugin gets all tracked files in the root dir and adds them under ./spec #pod root = ~/projects/my-project/spec #pod prefix = spec #pod #pod =cut use List::Util 1.45 qw(uniq); use Types::Standard 'Bool'; use namespace::autoclean; #pod =attr root #pod #pod This is the directory in which to look for files. If not given, it defaults to #pod the dist root -- generally, the place where your F or other #pod configuration file is located. It may begin with C<~> (or C<~user>) #pod to mean your (or some other user's) home directory. If a relative path, #pod it's relative to the dist root. It does not need to be the root of a #pod Git repository, but it must be inside a repository. #pod #pod =attr prefix #pod #pod This parameter can be set to gather all the files found under a common #pod directory. See the L above for an example. #pod #pod =attr include_dotfiles #pod #pod By default, files will not be included if they begin with a dot. This goes #pod both for files and for directories relative to the C. #pod #pod In almost all cases, the default value (false) is correct. #pod #pod =attr include_untracked #pod #pod By default, files not tracked by Git will not be gathered. If this is #pod set to a true value, then untracked files not covered by a Git ignore #pod pattern (i.e. those reported by C) #pod are also gathered (and you'll probably want to use #pod L to ensure all files are #pod checked in before a release). #pod #pod C requires at least Git 1.5.4, but you should #pod probably not use it if your Git is older than 1.6.5.2. Versions #pod before that would not list files matched by your F<.gitignore>, even #pod if they were already being tracked by Git (which means they will not #pod be gathered, even though they should be). Whether that is a problem #pod depends on the contents of your exclude files (including the global #pod one, if any). #pod #pod =attr follow_symlinks #pod #pod Git::GatherDir does not honor GatherDir's #pod L #pod option. While the attribute exists (because Git::GatherDir is a #pod subclass), setting it has no effect. #pod #pod Directories that are symlinks will not be gathered. Instead, you'll #pod get a message saying C. #pod To suppress the warning, add that directory to C or #pod C. To gather the files in the symlinked directory, use #pod a second instance of GatherDir or Git::GatherDir with appropriate #pod C and C options. #pod #pod Files which are symlinks are always gathered. #pod #pod =attr exclude_filename #pod #pod To exclude certain files from being gathered, use the C #pod option. This may be used multiple times to specify multiple files to exclude. #pod #pod =attr exclude_match #pod #pod This is just like C but provides a regular expression #pod pattern. Files matching the pattern are not gathered. This may be used #pod multiple times to specify multiple patterns to exclude. #pod #pod =cut has include_untracked => ( is => 'ro', isa => Bool, default => 0, ); around dump_config => sub { my $orig = shift; my $self = shift; my $config = $self->$orig; $config->{+__PACKAGE__} = { include_untracked => $self->include_untracked ? 1 : 0, blessed($self) ne __PACKAGE__ ? ( version => $VERSION ) : (), }; return $config; }; override gather_files => sub { my ($self) = @_; require Git::Wrapper; require Path::Tiny; my $root = '' . $self->root; # Convert ~ portion to real directory: $root =~ s{^(~[^\\/]*)([\\/])}{$self->_homedir($1) . $2}e; $root = Path::Tiny::path($root)->absolute($self->zilla->root); # Prepare to gather files my $git = Git::Wrapper->new($root->stringify); my @opts; @opts = qw(--cached --others --exclude-standard) if $self->include_untracked; my $exclude_regex = qr/\000/; $exclude_regex = qr/$exclude_regex|$_/ for (@{ $self->exclude_match }); my %is_excluded = map {; $_ => 1 } @{ $self->exclude_filename }; my $prefix = $self->prefix; # Loop over files reported by git ls-files for my $filename (uniq $git->ls_files(@opts)) { # $file is a Path::Tiny relative to $root my $file = Path::Tiny::path($filename); $self->log_debug("considering $file"); # Exclusion tests unless ($self->include_dotfiles) { next if grep { /^\./ } split q{/}, $file->stringify; } next if $file =~ $exclude_regex; next if $is_excluded{ $file }; # DZil can't gather directory symlinks my $path = $root->child($file); if (-d $path) { $self->log("WARNING: $file is symlink to directory, skipping it"); next; } # Gather the file my $fileobj = $self->_file_from_filename($path->stringify); $file = Path::Tiny::path($prefix, $file) if length $prefix; $fileobj->name($file->stringify); $self->add_file($fileobj); $self->log_debug("gathered $file"); } return; }; sub _homedir { my ($self, $tilde_dir) = @_; # other architectures have no issue with globbing any kind of ~user path return (glob($tilde_dir))[0] if $^O ne 'Win32'; # on Win32, we can use the environment variable(s) for the current user return "$]" < '5.016' ? $ENV{HOME} || $ENV{USERPROFILE} : (glob('~'))[0] if $tilde_dir eq '~'; # but otherwise, we can't support this at all, on any version. $self->log_fatal('expanding "' . $tilde_dir . '" on Win32 not supported'); } __PACKAGE__->meta->make_immutable; no Moose; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git::GatherDir - Gather all tracked files in a Git working directory =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [Git::GatherDir] root = . ; this is the default prefix = ; this is the default include_dotfiles = 0 ; this is the default include_untracked = 0 ; this is the default exclude_filename = dir/skip ; there is no default exclude_match = ^local_ ; there is no default =head1 DESCRIPTION This is a trivial variant of the L plugin. It looks in the directory named in the L attribute and adds all the Git tracked files it finds there (as determined by C). If the root begins with a tilde, the tilde portion is passed through C first. Most users just need: [Git::GatherDir] ...and this will pick up all tracked files from the current directory into the dist. You can use it multiple times, as you can any other plugin, by providing a plugin name. For example, if you want to include external specification files into a subdir of your dist, you might write: [Git::GatherDir] ; this plugin needs no config and gathers most of your files [Git::GatherDir / SpecFiles] ; this plugin gets all tracked files in the root dir and adds them under ./spec root = ~/projects/my-project/spec prefix = spec =head1 ATTRIBUTES =head2 root This is the directory in which to look for files. If not given, it defaults to the dist root -- generally, the place where your F or other configuration file is located. It may begin with C<~> (or C<~user>) to mean your (or some other user's) home directory. If a relative path, it's relative to the dist root. It does not need to be the root of a Git repository, but it must be inside a repository. =head2 prefix This parameter can be set to gather all the files found under a common directory. See the L above for an example. =head2 include_dotfiles By default, files will not be included if they begin with a dot. This goes both for files and for directories relative to the C. In almost all cases, the default value (false) is correct. =head2 include_untracked By default, files not tracked by Git will not be gathered. If this is set to a true value, then untracked files not covered by a Git ignore pattern (i.e. those reported by C) are also gathered (and you'll probably want to use L to ensure all files are checked in before a release). C requires at least Git 1.5.4, but you should probably not use it if your Git is older than 1.6.5.2. Versions before that would not list files matched by your F<.gitignore>, even if they were already being tracked by Git (which means they will not be gathered, even though they should be). Whether that is a problem depends on the contents of your exclude files (including the global one, if any). =head2 follow_symlinks Git::GatherDir does not honor GatherDir's L option. While the attribute exists (because Git::GatherDir is a subclass), setting it has no effect. Directories that are symlinks will not be gathered. Instead, you'll get a message saying C. To suppress the warning, add that directory to C or C. To gather the files in the symlinked directory, use a second instance of GatherDir or Git::GatherDir with appropriate C and C options. Files which are symlinks are always gathered. =head2 exclude_filename To exclude certain files from being gathered, use the C option. This may be used multiple times to specify multiple files to exclude. =head2 exclude_match This is just like C but provides a regular expression pattern. Files matching the pattern are not gathered. This may be used multiple times to specify multiple patterns to exclude. =for Pod::Coverage gather_dir gather_files =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#distzilla>. =head1 AUTHOR Jerome Quelin =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2009 by Jerome Quelin. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut Dist-Zilla-Plugin-Git-2.046/lib/Dist/Zilla/Plugin/Git/Init.pm000600 000766 000024 00000012050 13443320014 023657 0ustar00etherstaff000000 000000 # # This file is part of Dist-Zilla-Plugin-Git # # This software is copyright (c) 2009 by Jerome Quelin. # # This is free software; you can redistribute it and/or modify it under # the same terms as the Perl 5 programming language system itself. # use 5.010; use strict; use warnings; package Dist::Zilla::Plugin::Git::Init; # ABSTRACT: Initialize git repository on dzil new our $VERSION = '2.046'; our %transform = ( lc => sub { lc shift }, uc => sub { uc shift }, '' => sub { shift }, ); use Moose; use Git::Wrapper; use String::Formatter method_stringf => { -as => '_format_string', codes => { n => sub { "\n" }, N => sub { $transform{$_[1] || ''}->( $_[0]->zilla->name ) }, }, }; use Types::Standard qw(Str Bool ArrayRef); with 'Dist::Zilla::Role::AfterMint'; use namespace::autoclean; has commit_message => ( is => 'ro', isa => Str, default => 'initial commit', ); has commit => ( is => 'ro', isa => Bool, default => 1, ); has branch => ( is => 'ro', isa => Str, default => '', ); has remotes => ( is => 'ro', isa => ArrayRef[Str], default => sub { [] }, ); has config_entries => ( is => 'ro', isa => ArrayRef[Str], default => sub { [] }, ); sub mvp_multivalue_args { qw(config_entries remotes) } sub mvp_aliases { return { config => 'config_entries', remote => 'remotes' } } sub after_mint { my $self = shift; my ($opts) = @_; my $git = Git::Wrapper->new("$opts->{mint_root}"); $self->log("Initializing a new git repository in " . $opts->{mint_root}); $git->init; foreach my $configSpec (@{ $self->config_entries }) { my ($option, $value) = split ' ', _format_string($configSpec, $self), 2; $self->log_debug("Configuring $option $value"); $git->config($option, $value); } $git->add("$opts->{mint_root}"); if ($self->commit) { my $message = 'Made initial commit'; if (length $self->branch) { $git->checkout('-b', $self->branch); $message .= ' on branch ' . $self->branch; } $git->commit({message => _format_string($self->commit_message, $self)}); $self->log($message); } foreach my $remoteSpec (@{ $self->remotes }) { my ($remote, $url) = split ' ', _format_string($remoteSpec, $self), 2; $self->log_debug("Adding remote $remote as $url"); $git->remote(add => $remote, $url); } } __PACKAGE__->meta->make_immutable; 1; __END__ =pod =encoding UTF-8 =head1 NAME Dist::Zilla::Plugin::Git::Init - Initialize git repository on dzil new =head1 VERSION version 2.046 =head1 SYNOPSIS In your F: [Git::Init] commit_message = initial commit ; this is the default commit = 1 ; this is the default branch = ; this is the default (means master) remote = origin git@github.com:USERNAME/%{lc}N.git ; no default config = user.email USERID@cpan.org ; there is no default =head1 DESCRIPTION This plugin initializes a git repository when a new distribution is created with C. =head2 Plugin options The plugin accepts the following options: =over 4 =item * commit_message - the commit message to use when checking in the newly-minted dist. Defaults to C. =item * commit - if true (the default), commit the newly-minted dist. If set to a false value, add the files to the Git index but don't actually make a commit. =item * branch - the branch name under which the newly-minted dist is checked in (if C is true). Defaults to an empty string, which means that the Git default branch is used (master). =item * config - a config setting to make in the repository. No config entries are made by default. A setting is specified as C