[Bioperl-l] Bio module using Moose

Chris Fields cjfields at illinois.edu
Wed Jun 23 14:16:26 UTC 2010


Bruno, 

Array::Compare is not required, it's a recommended module, meaning it isn't automatically installed, and isn't necessary for the full build.  Acc. to Build.PL it's used in one very specific case, the Bio::PhyloNetworks modules.

I am a supporter of Moose completely, but IMHO we should move away from Array::Compare for core (which is completely non-Moose).  Our dependency load is already too high as it is.  I believe it has been pointed out elsewhere that using Moose for Array::Compare is a bit overkill and has introduced a new host of dependencies to dists like ours w/o anyone's knowledge, along with possible start-up performance issues (still being addressed with Moose).  Stevan Little himself posted on this last year:

http://stevan-little.blogspot.com/2009/09/re-moose-or-no-moose.html

Rob Buels and I also discussed this a bit back in January re: Moose and BioPerl, and I think we both came to the conclusion Moose-based tools should go into a separate codebase or be a Bioperl 2.0, primarily b/c the current class structure makes it very difficult to truly use Moose to its fullest abilities (set base class, introspection, etc).  That's not necessarily a bad thing; we need to take a hard look at our current toolset and establish the strong and weak points and address them, and possibly deal with other issues along the way.  Moose may be part of the answer, and could act as a viable transition to perl 6.  I have already initiated that effort with biome, which anyone is more than welcome to participate in.

Now, that doesn't preclude anyone from making a CPAN release of their own that both requires Moose and Bioperl.  I'm in full support of that, and I do wish more people would take advantage of CPAN instead of asking the core devs to drop their code into core (which implies the burden of maintenance is mainly upon the core devs, a completely unsustainable task).

chris

On Jun 23, 2010, at 7:04 AM, Bruno Vecchi wrote:

> Hi,
> 
> BioPerl is using Array::Compare which, as of 2009-08-09, depends on
> Moose. This means that Moose has been a dependency (albeit indirect)
> for almost a year now. Just thought I should point that out!
> 
> Cheers,
> 
> Bruno.
> 
> 2010/6/18 Chris Fields <cjfields at illinois.edu>
>> 
>> On Jun 17, 2010, at 8:46 AM, Emmanuel Quevillon wrote:
>> 
>>> On 06/17/2010 03:12 PM, Chris Fields wrote:
>>>> Emmanuel,
>>>> 
>>>> I don't think we could do this for direct inclusion within BioPerl core, due to the heavy load of dependencies Moose carries on top of the ones we already have.  But you have two possible options:
>>>> 
>>>> 1) I have started a separate project on github that is a full Moose-based BioPerl, which may evolve into a BioPerl 2.0 at some point:
>>>> 
>>>> http://github.com/cjfields/biome
>>>> 
>>> 
>>> Hi Chris,
>>> 
>>> Yep I've seen it already from one of your email on the Moose list :)
>>> I can try plug my modules to your project, however my code might be
>>> not as evolved as yours, so it could need some improvements and
>>> tuning to run faster and better.
>>> 
>>>> This will eventually move into the bioperl github account, and is probably a better fit.  Not sure what version of Perl you are using, though (we just changed the required version to 5.12, but that could be dropped to 5.10).
>>>> 
>>>> 2) Release it on CPAN on it's own, listing BioPerl as a dependency.  That frees you up to do whatever you want with the code.
>>>> 
>>> 
>>> Well I don't really know. Let me think about it (between github and
>>> CPAN), I'll also need to read and understand carefully your biome
>>> project. Moreover, as already said in my previous emails, I am not
>>> very ease with Moose right now....
>>> 
>>> Anyway what I can do it to change my code to better fit with actual
>>> implementation of BioPerl 1.6 and send it to the team for later
>>> integration?
>>> I can also send you my Moosified version to have a look?
>>> 
>>> Let me know
>>> 
>>> Regards
>>> 
>>> Emmanuel
>> 
>> If the code works, wouldn't be much work to get it into Biome.  Essentially you would change 'use Moose' to 'use Biome' and 'use Moose::Role' to 'use Biome::Role'.  Tests and such are pretty straightforward.  If needed you can wrap BioPerl objects.
>> 
>> Let me know.
>> 
>> chris
>> 
>> 
>> 
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l





More information about the Bioperl-l mailing list