[Bioperl-l] bioperl executables files and dist-zilla

Carnë Draug carandraug+dev at gmail.com
Fri Jan 9 17:57:17 UTC 2015

On 9 January 2015 at 17:12, Fields, Christopher J <cjfields at illinois.edu> wrote:
> On Jan 8, 2015, at 6:04 PM, Carnë Draug <carandraug+dev at gmail.com> wrote:
>> Hi
>> when installing new bioperl modules with dist zilla, the executable files
>> are not being installed.  The reason is that our dist zilla plugin bundle [1]
>> is searching for them in the default directory "bin/" while bioperl seems
>> to have them in a "scripts/" directory.  This is done by the ExecFiles plugin.
>> I can change this easily or I can just move the binaries to "bin/" (which
>> I think is more common).  Also, dropping the file extensions would make
>> things simpler.
> I think in bioperl-live much of the script munging during build/install
> is handled by the Module::Build sub-class (Bio::Root::Build) but is a bit
> of a hack; yeah this needs to be migrated to dzil.  Looking at [2] it
> appears in the role that the directory is settable via the ‘dir’ attribute;
> would this also be settable during configuration?  The plugin consuming the
> role is Dist::Zilla::Plugin::ExecDir

Yes, independently of what we set as default on the PluginBundle, it is
still possible to have the values changed on a per distribution basis.
Something like:

    -remove = ExecDir

    -dir = scripts

> Alternatively you could move scripts -> bin and symlink ‘scripts’ to point
> to the new location but I’m not sure how well git handles symlniks.  IIRC
> it sometimes tries to resolve them.

I don't think we need to have them symlinked.  We can easily set "scripts/"
as the default for [ExecDir] on our PluginBundle.  But before we change the
default, why are we using something which is far less common?  Why are we
not using "bin/" instead?  If we had the bioperl programs in "bin/" rather
than "scripts/" we would not have had this problem in the first place.

So I'm proposing that as we move modules from bioperl-live into the smaller
distributions, we also move them to a "bin/" directory as part of the
configuration for dzil (no symlinking required).  This may prevent more
problems in the future with other tools, by having things where they are most
expected to be, and not having to remember they are somewhere else.

By the way, I have already done this on the Bio-EUtilities distribution
which is where I noticed the problem [1].

> Re: extensions, I wouldn’t have a problem with this except that old
> installations of the scripts would still be around, correct? If so, we
> would need to add a bit of code that checks for the presence of old
> versions and removes/replaces them.  Might be more trouble than it’s worth.

Isn't the file extension removed during installation of bioperl?
I remember that the "bp_" was added automatically, a step which we
dropped in favour of simply having the files already with the "bp_".
I thought that it was the same with the file extension.


[1] https://github.com/bioperl/Bio-EUtilities/commits/master

More information about the Bioperl-l mailing list