I am in the process of developing a CPAN library which I am considering calling Git-Multisect-Perl. The library would have packages with names starting with 'Git::Multisect::Perl::' and would contain an associated command-line utility to be called 'multisect'.

Given a Perl library or application kept in git for version control, it
is often useful to be able to compare the output collected from running
one or several test files over a range of git commits. If that range is
sufficiently large, a test may fail in more than one way over that
range.

If that is the case, then simply asking, "When did this file start to
fail?" is insufficient. We may want to capture the test output for each
commit, or -- more usefully -- may want to capture the test output only at those commits where the test output changed.

Though the library is currently on github.com as 'test-multisect', I'd like to change that because putting 'Test::' first in a Perl package name usually means an extension to Test::Simple, Test::Builder or Test::Harness.

It appears that the top-level namespace 'Git::' is used for both libraries that wrap git and those that do something useful with git. This library will fall into the latter category. (In hindsight, perhaps we should have created a top-level 'Gitx::' namespace.)

'Multisect::' is chosen to contrast with 'bisect'. When we speak of bisection in the context of, say, Perl 5 core development and use of Porting/bisect.pl, we're usually looking for a single answer to a question, e.g., at which specific commit did this test file start to experience failures. Recently, however, we have a case where a file failed in different ways over many months. That's the actual use case which led me to develop this library.

The '::Perl' in the namespace is intended to say, "This is a way to apply the concept of multisection to typical needs in Perl development such as CPAN distributions and P5P, but we don't want to foreclose the possibility of future libraries which use git to perform multisection in other problem spaces."

I'm in the advanced stages of development of this library so, while I welcome advice, I hope to avoid bikeshedding and I recognize that whatever name I go with will make some people unhappy. So be it.

Thoughts?

Thank you very much.
Jim Keenan
CPANID: jkeenan

Reply via email to