Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

easy_update for R and Python easyconfig #2061

Closed
wants to merge 2 commits into from

Conversation

fizwit
Copy link

@fizwit fizwit commented Dec 16, 2016

easy_update will update the exts_lists for Python, R and R-BioConductor using the native API for each language. Updating the version numbers for every package in ext_lists. easy_update also checks for dependencies recursively and adds any missing modules that are dependencies. If you support R and Python easyconfigs with hundreds of modules this tool will save you many hours of work.

@boegel boegel added this to the 3.2.0 milestone Jan 17, 2017
@boegel
Copy link
Member

boegel commented Jan 17, 2017

@fizwit Thanks a lot for contributing this!

There are a couple of alternate approaches to this (cfr. #1865 and https://github.com/fgeorgatos/easybuild.experimental/blob/master/users/pneerincx/generateEasyConfig.R), but from what I can tell at a first glance this looks like a better approach.

I haven't found time to deep dive into this, but it would be very interesting to include support for something like this in EasyBuild itself...

Are you up for working with us towards that?

@rjeschmi
Copy link
Contributor

We need to manage the dependencies better since it depends on some things that easybuild doesn't (like requests?)

Also it feels like there should be an output of significant changes other than version changes (packages are sometimes added in my R test)

@boegel
Copy link
Member

boegel commented Jan 17, 2017

@rjeschmi we could have requests as an optional dependency, that only kicks in when you try to use this feature (we're doing that for other features too, e.g. GC3Pie, etc.)

@rjeschmi
Copy link
Contributor

Just to add things while I'm trying to get it working.

It seemed to miss the plogr dep for RSQLite (or at least RSQLite complained about it). Seems like a new dep...

@fizwit
Copy link
Author

fizwit commented Jan 18, 2017 via email

@rjeschmi
Copy link
Contributor

thanks for the extra info. There are certainly some problems somewhere in dependency resolution as I have to manually fix a few packages, but it does save a lot of time already.

I'll keep poking at it.

@fizwit
Copy link
Author

fizwit commented Feb 10, 2017

Thanks for the catch; Yes indeed, plogr was not listed as a dependancy for RSQLite. plogr was listed in a structure called "LinkedTo". I have updated easy_update to include this additional dependency list from CRAN. I have also updated the verbose output for R to make it a little easier to read. Note: my R buid has 511 packages, without easy_update it is no longer possible to maintain easyconfig of this size.

         RSQLite : requires DBI
         RSQLite : requires Rcpp
         RSQLite : requires memoise
         RSQLite : requires Rcpp
         RSQLite : requires BH
         RSQLite : requires plogr
         memoise : requires digest
         memoise : 1.0.0    (new) [511, 137]
           plogr : 0.1-1    (new) [511, 138]
         RSQLite : 1.1-2    (update) [511, 139]

@boegel
Copy link
Member

boegel commented Feb 10, 2017

@fizwit You didn't push the updated version of easy_update into this pull request?

@fizwit
Copy link
Author

fizwit commented Feb 10, 2017

I have merged my newest version of easy_update.py. Many small bug fixes have been made.
easy_update.py almost passes pep8
LinkingTo object from CRAN to list of R dependencies.
--check [package name] Single package lookup feature added to easy_update (only works with R at this time)
issue#2 resolved

@boegel
Copy link
Member

boegel commented Feb 14, 2017

worth mentioning here: easy_update is also available via https://github.com/fizwit/easy_update

I'd still like to see this integrated in the EasyBuild framework, I feel it would be most useful as an eb command line option as opposed to a stand-alone script, since that would make it more directly accessible, and it would help to ensure that the script doesn't get broken (by including tests for it in the framework test suite).

@boegel boegel modified the milestones: 3.2.0, 3.3.0 May 2, 2017
@boegel boegel modified the milestones: 3.3.0, 3.x Jun 22, 2017
@fizwit fizwit closed this Oct 19, 2018
@boegel
Copy link
Member

boegel commented Oct 19, 2018

@fizwit There's still interest to get this integrated into the EasyBuild framework, we briefly discussed this during the last conf call...

I'm guessing you're closing this because you're happy with having this as a stand-alone script for now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants