Giter VIP home page Giter VIP logo

app-githooks's People

Contributors

book avatar choroba avatar guillaumeaubert avatar lharey avatar yanick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

yanick book lharey

app-githooks's Issues

Feature request: "enable" and "disable" phases and/or plugins

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.

Asynchronous service for events created by plugins

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.

Plugin to post release notes to Google Calendar

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.

Suggestion: allow git to "wrap" githooks

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.

Plugin for checks on pre-push

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.

Enforce branch names

We'd like to be able to enforce branch names, making sure they match a certain pattern, don't have certain characters, etc.

Allow combining githooksrc files

Currently, App::GitHooks uses the first .githooksrc file it finds in this list:

  1. At the root of the repository.
  2. Specified by the GITHOOKSRC environment variable.
  3. In the user's home directory.

Ideally, those files should allow optional inheritance. Steps required:

  1. Add a 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.
  2. Implement a merging algorithm for .githooksrc files that correctly accounts for the order of inheritance, based on the list above.

Plugin to check for long lines

PerlCritic already has a similar concept with https://metacpan.org/pod/Perl::Critic::Policy::Tics::ProhibitLongLines. It however has a couple of drawbacks:

  1. It's limited to checking Perl files, for obvious reasons - but it would be nice to be able to check any type of file or select a list of extensions to check.
  2. It accounts for the entire file when calculating pct_allowed, as opposed to looking only at the diff. This creates interesting edge cases when you're modifying a file, and allows you to do lots of long lines if previous committers didn't add any, or conversely can tie your hands.

To solve this, it would be nice to create a plugin, possibly App::GitHooks::Plugin::CheckLongLines?

Account for git-commit trimming trailing whitespace by default

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.

Problem with hooks containing dashes in their names

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.<.

Clean up App::GitHooks::Utils::get_ticket_id()

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.

Add missing autodie dependency

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.

Allow enforcing the list of plugins to run

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.

Document new "githooks" command

The POD of App::GitHooks (under "Synopsis") needs to be updated to point to the new "githooks" command that makes the installation much easier.

Update a date field in JIRA with the current date

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.

Support inherited .githooksrc settings

App::GitHooks supports fallbacks when looking for an appropriate .githooksrc file, in order of decreasing preference:

  1. At the root of the repository.
  2. Specified by the GITHOOKSRC environment variable.
  3. In the user's home directory.

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.

Plugin for Perl::Lint

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.

"list" command addition to the "githooks" command line tool

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.

Require minimum version of Test::Compile

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

Detect/Prevent SQL injection risks

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.

Broken handling of commits with "git mv" (Plugins)

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! :)

Setup script for the git hooks in .git/hooks/

Setting the hooks involves:

  • creating all the hooks files;
  • making sure the Perl interpreter points to the right location;
  • making the hooks executable.

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.

Require git 1.5.0

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 

Do not add relative paths to Perl include search path

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.

Environment variable to hard-skip specific hooks

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).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.