Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > perl.module-authors > #3318 > unrolled thread

Namespace advice for Git-related package

Started byjkeen@verizon.net (James E Keenan)
First post2016-10-27 09:20 -0400
Last post2016-11-01 11:50 -0400
Articles 3 — 2 participants

Back to article view | Back to perl.module-authors


Contents

  Namespace advice for Git-related package jkeen@verizon.net (James E Keenan) - 2016-10-27 09:20 -0400
    Re: Namespace advice for Git-related package Smylers@stripey.com (Smylers) - 2016-10-27 16:25 +0100
      Re: Namespace advice for Git-related package jkeen@verizon.net (James E Keenan) - 2016-11-01 11:50 -0400

#3318 — Namespace advice for Git-related package

Fromjkeen@verizon.net (James E Keenan)
Date2016-10-27 09:20 -0400
SubjectNamespace advice for Git-related package
Message-ID<20161027132039.8796.qmail@lists-nntp.develooper.com>
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

[toc] | [next] | [standalone]


#3319

FromSmylers@stripey.com (Smylers)
Date2016-10-27 16:25 +0100
Message-ID<20161027152544.GD2594@stripey.com>
In reply to#3318
James E Keenan writes:

> I am in the process of developing a CPAN library which I am
> considering calling Git-Multisect-Perl. ...
> 
> 'Multisect::' is chosen to contrast with 'bisect'.

That hadn't occurred to me. I read it as a contraction of ‘multiple
sections’ or similar.

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

However, ‘bisect’ is a well known word for this activity. Sometimes with
naming things it's clearer to be familiar-but-approximate rather than
accurate-but-obscure. Once the name has got somebody's attention, the
docs can explain nuances.

I think Git::MultiBisect or Git::Bisect::Multiple get the idea across
more obviously.

> 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

Unfortunately I don't think it does that.

A suffix of ::Perl usually indicates that it's implemented in Perl —
either because there's also an ::XS variant, or it's a port of a library
that originated in Java or some other language.

I'm not sure there is anything which indicates ‘typical for Perl
development’. I'd omit that aspect from the name.

> we don't want to foreclose the possibility of future libraries which
> use git to perform multisection in other problem spaces."

Let any hypothetical future rival Git-multi-bisect distribution — and
there may not be one — come up with an adjective that distinguishes
itself from yours.

Alternatively, Devel::Git::MultiBisect would indicate that this is a
tool for Perl development use.

Good luck!

Smylers
-- 
http://twitter.com/Smylers2

[toc] | [prev] | [next] | [standalone]


#3320

Fromjkeen@verizon.net (James E Keenan)
Date2016-11-01 11:50 -0400
Message-ID<20161101155029.16450.qmail@lists-nntp.develooper.com>
In reply to#3319
On 10/27/2016 11:25 AM, Smylers wrote:
> James E Keenan writes:
>
>
> Alternatively, Devel::Git::MultiBisect would indicate that this is a
> tool for Perl development use.
>

And that's what I ultimately went with!  This is indeed a developer's tool.

http://search.cpan.org/dist/Devel-Git-MultiBisect-0.01/

Thank you very much.
Jim Keenan

[toc] | [prev] | [standalone]


Back to top | Article view | perl.module-authors


csiph-web