develooper Front page | perl.module-authors | Postings from October 2016

Namespace advice for Git-related package

Thread Next
James E Keenan
October 27, 2016 13:20
Namespace advice for Git-related package
Message ID:
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

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

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


Thank you very much.
Jim Keenan
CPANID: jkeenan

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About