guillaumeaubert / app-githooks Goto Github PK
View Code? Open in Web Editor NEWPlugin-based system to run specific actions and checks when git hooks are triggered.
Home Page: https://metacpan.org/pod/App::GitHooks
License: Other
Plugin-based system to run specific actions and checks when git hooks are triggered.
Home Page: https://metacpan.org/pod/App::GitHooks
License: Other
It would be nice if we could githooks install ::ForceRegularUpdate ::PreventTrailingWhitespace
for example.
I'd like to suggest making it possible to enable and disable githooks for certain phases.
githooks disable post-commit
githooks enable pre-commit
githooks disable
If a plugin or phase is disabled, I suggest it should still show clearly in the output during execution that something has been disabled (and perhaps a short example text on how to enable it), as a reminder that something is currently not enabled.
Some plugins interface with external services (posting messages to Slack or creating Google Calendar events for example), which can occasionally go down. When that happens, either the plugin proceeds forward and the event gets lost, or the plugin escalates an error to the framework and the user can't continue with their git action.
To address this, App::GitHooks should offer an optional asynchronous event handling system for plugins, so that plugins can submit actions to it (for actions that aren't showstoppers), and the actions can be retried automatically later if they fail.
A possible design would be using Queue::DBI with a local SQLite database. Given the added prereqs, it may be easier to create a separate event queuing module for App::GitHooks, so that App::GitHooks leverages it when it is present, or continues with its current behavior of synchronous actions when that new module isn't installed.
Piggybacking on App::GitHooks::Plugin::NotifyReleasesToSlack, it would be handy to be able to post these releases to a Google calendar in order to offer a visual time representation of releases.
This will make debugging issues reported by CPANTesters much easier and faster.
I'd like to suggest a name change for the "githooks" script.
mv githooks git-hooks
This will make it possible to use the git command wrapper to use the githooks command. E.g. the following will be possible:
git hooks install # same as "git-hooks install" or as things are as of today "githooks install"
"gitsomething" sits in my fingers quite well, and I think it would be lovely to enable and disable the githooks as needed in the same way.
As of git v1.8.2:
- "git push" will stop without doing anything if the new "pre-push"
hook exists and exits with a failure.
It would be nice to have a plugin that supports triggering a check before the git push
goes through. On Perl projects, this could be prove -r t/
, but it could be any external command really.
We'd like to be able to enforce branch names, making sure they match a certain pattern, don't have certain characters, etc.
Currently, App::GitHooks
uses the first .githooksrc
file it finds in this list:
GITHOOKSRC
environment variable.Ideally, those files should allow optional inheritance. Steps required:
allow_inheritance
setting to the githooksrc file format. This will indicate whether we should keep looking further down the list for other .githooksrc
files to inherit from..githooksrc
files that correctly accounts for the order of inheritance, based on the list above.Puppet files (*.pp) should be verified with puppet parser validate <file>
.
PerlCritic already has a similar concept with https://metacpan.org/pod/Perl::Critic::Policy::Tics::ProhibitLongLines. It however has a couple of drawbacks:
To solve this, it would be nice to create a plugin, possibly App::GitHooks::Plugin::CheckLongLines?
Per http://git-scm.com/docs/git-commit:
--cleanup=
This option determines how the supplied commit message should be cleaned up before committing. The can be strip, whitespace, verbatim, scissors or default.strip
Strip leading and trailing empty lines, trailing whitespace, and #commentary and collapse consecutive empty lines.whitespace
Same as strip except #commentary is not removed.verbatim
Do not change the message at all.scissors
Same as whitespace, except that everything from (and including) the line "# ------------------------ >8 ------------------------" is truncated if the message is to be edited. "#" can be customized with core.commentChar.default
Same as strip if the message is to be edited. Otherwise whitespace.
Follows #44.
e.g. look at https://rt.cpan.org/Ticket/Display.html?id=83126 and be dismayed
File::Slurp::Tiny and Path::Tiny are both excellent alternatives. See also http://shadow.cat/blog/matt-s-trout/mstpan-5/
Error detected in hook: >Can't locate object method "run_post-checkout" via package "App::GitHooks::Plugin::BranchChangeNotifier" at /home/jake/trunk2/cpan/cpan-5.010/lib/perl5/App/GitHooks/Hook.pm line 63, <DATA> line 1012.<.
The documentation says:
Return a regex that will extract a ticket ID from a commit message, if it exists.
But the code uses extract_ticket_id_from_branch
to generate the regex that is returned.
See http://cpantesters.org/cpan/report/8149a56a-262d-11e4-b698-db7a2867dcfa:
Can't locate autodie.pm in @INC (@INC contains: blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/_build/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/arch /home/cpan/pit/bare/perl-5.10.0/lib/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/5.10.0 /home/cpan/pit/bare/perl-5.10.0/lib/site_perl/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/site_perl/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/site_perl/5.10.0 . /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/_build/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Capture-Tiny-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Params-Util-1.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Install-0.928/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-OptList-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Runtime-0.014/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Try-Tiny-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Fatal-0.013/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Requires-0.08/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Module-Implementation-0.07/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Dist-CheckConflicts-0.11/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-XS-0.28/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Package-Stash-0.36/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-Hide-0.0009/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-Progressive-0.001011/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Variable-Magic-0.53/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/B-Hooks-EndOfScope-0.13/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Identify-0.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Devel-CheckBin-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Name-0.09/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/namespace-clean-0.25/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Class-Load-0.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Config-Tiny-2.20/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/MRO-Compat-0.12/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Exporter-0.987/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-FailWarnings-0.008/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Section-0.200006/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Dump-1.22/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Sub-Uplevel-0.24/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Exception-0.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Data-Validate-Type-v1.5.1/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/File-Slurp-9999.19/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/IPC-Run-0.92/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/System-Command-1.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Git-Repository-1.312/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Parallel-ForkManager-1.06/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Term-Encoding-0.02/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/TermReadKey-2.32/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/UNIVERSAL-require-0.17/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Compile-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Tester-0.109/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-NoWarnings-1.04/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Deep-0.112/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/Test-Type-v1.2.0/blib/arch /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/lib /home/cpan/pit/bare/conf/perl-5.10.0/.cpanplus/5.10.0/build/App-GitHooks-v1.1.3/blib/arch /home/cpan/pit/bare/perl-5.10.0/lib/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/5.10.0 /home/cpan/pit/bare/perl-5.10.0/lib/site_perl/5.10.0/amd64-netbsd /home/cpan/pit/bare/perl-5.10.0/lib/site_perl/5.10.0 .) at bin/githooks line 14.
BEGIN failed--compilation aborted at bin/githooks line 14.
limit_plugins
allows limiting what plugins run, but does not enforce that the plugins listed must be present on the system. Additionally, it is listed as a testing option, but the usefulness of this feature warrants an option in the general configuration section instead.
Hei!
Would it be possible to add support for Code::TidyAll to App::GitHooks? (e.g. as a plugin?)
The POD of App::GitHooks (under "Synopsis") needs to be updated to point to the new "githooks" command that makes the installation much easier.
To track when certain actions are performed (such as releases), it would be useful to have a plugin that can update a JIRA date field when any hook is executed and the payload contains commits tied to JIRA tickets.
App::GitHooks
supports fallbacks when looking for an appropriate .githooksrc
file, in order of decreasing preference:
GITHOOKSRC
environment variable.However, this fallback system doesn't currently support inheritance - in other words, if you have a .githooksrc file at the root of a repository, all the other locations are simply ignored. It would be nice to instead have an inheritance system with settings being merged while maintaining the order of preference above when merging conflicting keys.
@timbunce pointed out that Config::GitLike has the same concept of repo-specific config, user config, and global config, plus it already has the inheritance bits built-in, so it seems like a good replacement for Config::Tiny that would make this feature much easier to implement.
It would be nice to have a plugin for the new Perl::Lint, similar to the one for PerlCritic. It should allow for warnings as opposed to errors that prevent commits entirely, in order to evaluate Perl::Lint while it's still in the heavy development phase.
It would be nice to be able to warn the end user about certain perlcritic failures while still allowing the commit to proceed. Example, long lines failures need not hold up a commit, but should still be pointed out to the user.
Per GH-3, we should implement githooks list
to list all the plugins currently installed in the system.
It would be nice to have a list that distinguishes between the active and inactive plugins, in case there is a .githooksrc file that restricts what plugin should be run.
Per a CPAN testers report, with Test::Compile v0.24:
Can't locate object method "new" via package "Test::Compile" at t/90-githooks/00-load.t line 10.
But the OO interface to Test::Compile has only appeared in v1.1.0:
v1.1.0 2014-07-18 (Evan Giles <[email protected]>)
- Allow use of Test::Compile in an object oriented manner
- Promote the OO interface in the POD
- Test::Compile::Internal is now verbose by default
- Correct the dependancy information
https://metacpan.org/release/Perl-Critic-Policy-ValuesAndExpressions-PreventSQLInjection checks Perl code for SQL injection risks, but it is obviously limited to Perl. It would be useful to have the same check implemented in other languages as well.
One option is to do one App::GitHooks plugin per language (unless that language already has a linter similar to PerlCritic), another is to do a single plugin that can abstract / delegate the parsing for each language.
As for a Ruby-specific check, @jacobmaurer suggests looking into http://whitequark.org/blog/2012/10/02/parsing-ruby/, which points to https://github.com/jruby/jruby-parser and https://github.com/seattlerb/ruby_parser.
Hi!
A bunch of plugins are struggling when files are renamed in git.
e.g. when doing a git mv test.pl test-001.pl
, the resulting githooks output from git commit
is
(1/1) test.pl test-001.pl
× The file has no #NOCOMMIT tags.
fatal: cannot stat path 'test.pl test-001.pl': No such file or directory at /home/e220025/perl5/lib/perl5/Git/Repository/Plugin/Blame.pm line
109.
× The file passes perl -c
Can't open perl script "/home/e220025/src/test/test.pl test-001.pl": No such file or directory
× The file passes Perlcritic review.
Failed to run PerlCritic: Argument 'file' is not a valid file path at /home/e220025/perl5/lib/perl5/App/GitHooks/Plugin/PerlCritic.pm line 119.
.
× The Perl interpreter line is correct
Can't open '/home/e220025/src/test/test.pl test-001.pl' for reading: 'No such file or directory' at
/home/e220025/perl5/lib/perl5/App/GitHooks/Plugin/PerlInterpreter.pm line 126
Note: I haven't checked with all plugins available on CPAN, but seeing the symptoms are similar across several plugins make me assume this is a bug in App::Githooks somewhere, rather in the bugs themselves.
Thanks for some great modules, btw! :)
Setting the hooks involves:
It's easy to miss a step or incorrectly perform a step, so it would be nice to have a githooks
command with the following interface:
githooks --install
or githooks -i
: set up the git hooks required for App::GitHooks to work in the current repository.githooks --uninstall
or githooks -u
: remove the git hooks previously set up. This should be done safely, i.e. with a verification that we're not removing a non-App::GitHooks hook.githooks --version
or githooks -v
: print the current version of App::GitHooks.githooks --list
or githooks -l
: list all the plugins currently installed in the system. It would be nice to have a list that distinguishes between the active and inactive plugins, in case there is a .githooksrc
file that restricts what plugin should be run.githooks
without arguments: print the usage information.Thanks to @jacobmaurer - one of our conversations about App::GitHooks triggered this idea.
From http://www.cpantesters.org/cpan/report/209e21d0-ea6b-11e3-ac31-8ef58706f0e4:
# Testing App::GitHooks 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/00-load.t .............................................. ok
# Testing App::GitHooks::Terminal 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/05-Terminal/00-load.t .................................. ok
t/05-Terminal/10-new.t ................................... ok
t/05-Terminal/20-get_encoding.t .......................... ok
t/05-Terminal/30-is_interactive.t ........................ ok
t/05-Terminal/40-is_utf8.t ............................... ok
t/05-Terminal/50-get_width.t ............................. ok
# Testing App::GitHooks::Constants 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/06-Constants/00-load.t ................................. ok
t/06-Constants/10-imports.t .............................. ok
# Testing App::GitHooks::CommitMessage 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/08-CommitMessage/00-load.t ............................. ok
t/08-CommitMessage/10-new.t .............................. ok
t/08-CommitMessage/11-get_app.t .......................... ok
t/08-CommitMessage/13-get_original_message.t ............. ok
t/08-CommitMessage/14-get_message.t ...................... ok
t/08-CommitMessage/15-get_lines.t ........................ ok
t/08-CommitMessage/20-get_summary.t ...................... ok
t/08-CommitMessage/25-update_message.t ................... ok
t/08-CommitMessage/30-is_empty.t ......................... ok
t/08-CommitMessage/35-has_changed.t ...................... ok
t/10-new.t ............................................... ok
t/12-force_non_interactive.t ............................. ok
t/15-run.t ............................................... ok
# Testing App::GitHooks::Plugin 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/40-Plugin/00-load.t .................................... ok
t/40-Plugin/03-get_file_check_description.t .............. ok
t/40-Plugin/20-get_name.t ................................ ok
# Testing App::GitHooks::Plugin::Test::CustomReply 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/40-Plugin/CustomReply/00-load.t ........................ ok
t/40-Plugin/CustomReply/03-get_file_check_description.t .. ok
t/40-Plugin/CustomReply/05-get_file_pattern.t ............ ok
# Testing App::GitHooks::Plugin::Test::PrintSTDERR 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/40-Plugin/PrintSTDERR/00-load.t ........................ ok
t/40-Plugin/PrintSTDERR/03-get_file_check_description.t .. ok
t/40-Plugin/PrintSTDERR/05-get_file_pattern.t ............ ok
# Testing App::GitHooks::Hook 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/45-Hook/00-load.t ...................................... ok
t/45-Hook/10-run.t ....................................... ok
# Testing App::GitHooks::Hook::CommitMsg 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/45-Hook/CommitMsg/00-load.t ............................ ok
# Child (Set up temporary test repository.) exited without calling finalize()
# Failed test 'Set up temporary test repository.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 263.
test_repository( init => ... ) requires git >= 1.5.0.rc1 (this is only 1.4.4.4) at /home/david/cpantesting/perl-5.12.5/.cpan/build/App-GitHooks-v1.0.3-ad0U8M/blib/lib/App/GitHooks/Test.pm line 246.
# Child (Trigger plugins for commit-msg.) exited without calling finalize()
# Failed test 'Trigger plugins for commit-msg.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 276.
# Looks like you failed 1 test of 1.
# Looks like your test exited with 255 just after 1.
t/45-Hook/CommitMsg/10-run.t .............................
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests
# Testing App::GitHooks::Hook::PreCommit 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/45-Hook/PreCommit/00-load.t ............................ ok
# Child (Set up temporary test repository.) exited without calling finalize()
# Failed test 'Set up temporary test repository.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 263.
test_repository( init => ... ) requires git >= 1.5.0.rc1 (this is only 1.4.4.4) at /home/david/cpantesting/perl-5.12.5/.cpan/build/App-GitHooks-v1.0.3-ad0U8M/blib/lib/App/GitHooks/Test.pm line 246.
# Child (Global = FAIL and File = FAIL.) exited without calling finalize()
# Failed test 'Global = FAIL and File = FAIL.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 276.
# Looks like you planned 4 tests but ran 1.
# Looks like you failed 1 test of 1 run.
# Looks like your test exited with 255 just after 1.
t/45-Hook/PreCommit/10-run.t .............................
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 4/4 subtests
# Testing App::GitHooks::Hook::PrepareCommitMsg 1.0.3, Perl 5.012005, /home/david/cpantesting/perl-5.12.5/bin/perl
t/45-Hook/PrepareCommitMsg/00-load.t ..................... ok
# Child (Set up temporary test repository.) exited without calling finalize()
# Failed test 'Set up temporary test repository.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 263.
test_repository( init => ... ) requires git >= 1.5.0.rc1 (this is only 1.4.4.4) at /home/david/cpantesting/perl-5.12.5/.cpan/build/App-GitHooks-v1.0.3-ad0U8M/blib/lib/App/GitHooks/Test.pm line 246.
# Child (Trigger plugins for prepare-commit-msg.) exited without calling finalize()
# Failed test 'Trigger plugins for prepare-commit-msg.'
# at /home/david/cpantesting/perl-5.12.5/lib/5.12.5/Test/Builder.pm line 276.
# Looks like you failed 1 test of 1.
# Looks like your test exited with 255 just after 1.
t/45-Hook/PrepareCommitMsg/10-run.t ......................
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests
Hooks appear to fail when working within a worktree: https://git-scm.com/docs/git-worktree
I see lots of errors along the following lines:
Can't open perl script "/home/rebus/rebus-list/.git/worktrees/lib/Rebus/Controller/List.pm": No such file or directory
bin/githooks uses `lib' module to include ./lib path. Allowing relative paths is a security issue as the attacker can prepare ./lib with malicious module there and then githooks script will execute the attackers code.
Please remove the `use lib' line.
The line is not needed for testing the script before installing it into the system as standard perl tools (./Build test) includes ./blib/{arch,lib} automatically.
Per a discussion with @timbunce, we should have a way to skip a hook. An environment variable GITHOOKS_SKIP that takes a comma-separated list of hooks to skip sounds desirable.
Additionally, in the case of the pre-commit hook being skipped this way, we should add a note in the commit message that this path was used (for future reference / review).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.