easybuilders / easybuild-easyconfigs

A collection of easyconfig files that describe which software to build using which build options with EasyBuild.
https://easybuild.io
GNU General Public License v2.0
374 stars 701 forks source link

Avoid dependencies over biodeps-extended, tune the rest of apps to be aligned #384

Open fgeorgatos opened 11 years ago

fgeorgatos commented 11 years ago

Basically, the problem is that biodeps-extended module collides with biodeps (these modules cannot be loaded concurrently, since they differ only by versionsuffix). Example: TopHat

Also, existing packages need to be brought up to speed to be compatible with biodeps; most notably, NCBI* & BLAST should be built against Boost-Python, vs Boost bare.

Pending work affects the following:

boegel commented 11 years ago

Only solution would be to transform the versionsuffixed biodeps into biodeps-extended, which makes it eligible for loading next to biodeps. Note that this won't cause problems: if two incompatible biodeps and biodeps-extended modules are loaded together, conflicts will be raised by conflicting (non-identical) versions of one or multiple of their common elements...

fgeorgatos commented 11 years ago

Reporting progress:

fgeorgatos commented 9 years ago

Hi,

I'm lobbying for an improved biodeps/2.0 of the type:

easyblock = 'Bundle'

name = 'biodeps'
version = '2.0'
versionsuffix = '-extended'

homepage = 'http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2013-01.html'
description = """The purpose of this collection is to provide common dependencies in a bundle,
 so that software/modules can be mixed and matched easily for composite pipelines in Life Sciences"""

toolchain = {'name': 'goolf', 'version': '1.7.20'}

dependencies = [
    ('bzip2', '1.0.6'),
    ('zlib', '1.2.8'),
    ('libreadline', '6.3'),
    ('ncurses', '5.9'),
# **the ones above this line are also known as default biodeps**
    ('Boost', '1.58.0', '-Python-2.7.10'),
    ('SAMtools', '0.1.19'), ## or, replace it with samtools/1.x or htslib/1.2.x?
    ('Perl', '5.22.0', '-bare'),
    ('Java', '1.7.0_80', '', True),
    ('libpng', '1.6.17'),
]

moduleclass = 'bio'

can you please comment if that would suit you, yes/no and why?

pescobar commented 9 years ago

@fgeorgatos this looks like a too long list of deps IMHO

I would go for this at most (as hidden modules)

dependencies = [
    ('bzip2', '1.0.6'),
    ('zlib', '1.2.8'),
    ('libreadline', '6.3'),
    ('ncurses', '5.9'),
    ('libpng', '1.6.17'),
]
boegel commented 9 years ago

@pescobar: that's more of a generic common-deps, not exactly related to bio at all?

For biodeps: Python, Perl, Boost should definitely be there, imho...

fgeorgatos commented 9 years ago

@pescobar: I know what you are talking about: the above is the -extended variation, which mostly there as a mockup for development. For real biodeps products, the more lightweight variant should be alike you describe. Back then, I decided to let libpng on the side, because it was "less busy" as a dep and thought that by letting it loose it may help fellows to debug/play around more freely.

fgeorgatos commented 9 years ago

@pescobar: in effect, you described a variation of the 2nd file here: https://github.com/hpcugent/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/b/biodeps

fgeorgatos commented 9 years ago

@pescobar, @rjeschmi : ncurses/6.0 was pushed out during last couple of days; you will find elsewhere in this repository that this stands a chance to make things nicer for c++ users.

Now, I propose/lobby towards the following versions, for general development over goolf/1.7.20; can you give feedback/preferences asap? (the top5 common deps, might yield also R/bio* compatibility)

dependencies = [
    ('bzip2', '1.0.6'),
    ('zlib', '1.2.8'),
    ('libreadline', '6.3'),
    ('ncurses', '6.0'),
    ('libpng', '1.6.17'),
# **the ones above this line are also known as default biodeps**
    ('Boost', '1.58.0', '-Python-2.7.10'),
    ('SAMtools', '1.2'), ## or, replace it with samtools/1.x or htslib/1.2.x?
    ('Perl', '5.22.0', '-bare'),
    ('Java', '1.7.0_80', '', True),
]

Also, samtools or htslib, Boost, perl, javas are a bit more controversial area, plz comment on that, too!

boegel commented 9 years ago

@fgeorgatos: no mention of nucrses 6.0 @ http://www.gnu.org/software/ncurses/ ?