guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [rb-general] Paper preprint: Reproducible genomics analysis pipeline


From: Catonano
Subject: Re: [rb-general] Paper preprint: Reproducible genomics analysis pipelines with GNU Guix
Date: Fri, 11 May 2018 11:39:16 +0200



2018-05-11 10:19 GMT+02:00 Ricardo Wurmus <address@hidden>:

Ludovic Courtès <address@hidden> writes:

> Perhaps we could add to Autoconf-Archive (if it doesn’t have such things
> already) macros to deal with the R and Python stuff you had to deal
> with?  And then publish a simple template that people could use as a
> starting point.

I submitted my macros for R packages (and they have been accepted), but
I actually don’t really like them because they are not as useful as it
may seem.  While they do check for R packages in the environment at
configure time, nothing is done to record the environment necessary to
access these packages.

That’s a general problem for software that depends on search path
environment variables.  I can’t just record the location of each
individual R package that was detected and use that to set up the
environment at runtime.  The R packages have other runtime dependencies
that would also need to be recorded.

It’s not ideal.

--
Ricardo




Ricardo, I don't understand the problem you're raising here (I didn't read the article yet, though)

Would you mind to elaborate on that ?

Why would you want to record the environment ?

I have this tiny prototype that checks for the availability of the Guile module "sqlite3" at configure time and writes this csexp ( https://gitlab.com/dustyweb/guile-csexps ) in a file

(7:sqlite32:no)
(7:sqlite33:yes)

The first line is produced in an environment in which sqlite3 is not available
The second one is produced in an environment in which sqlite3 is, well guess what, available

I produce such environments with the Guix "environment" command

I think csexps are cool because they are readable to humans

A user creating their pipeline can easily inspect the result of the configuration phase

They could even paste excerpts of text on mailing lists, should they want to ask for help

In my idea a build tool doesn't attempt at managing an environment

You could have sqlite3 because you set up a Guix environment, or because you installed it with apt-get or dnf or manually

The build tool only worries about the availabilty, not how it's achieved

If every dependency is available (anyhow) it just builds

Because building and package management are supposed to be differrent concerns.

If you have Guix, fine.
If you haven't Guix, then you're on your own, if you can manage, fine

This should address your concern to let people treat their pipelines as packages

Doesn't it ?

Is this approach not enough for you ?

May I ask why ?

For now it only tests Guile modules but it could be obviously generalized to test for more things (libs versions, data structures availability, along the lines of what Autoconf does)

I'd love to be able to set up my (Guile) packages without having to deal with the Autotools 😯

reply via email to

[Prev in Thread] Current Thread [Next in Thread]