guix-devel
[Top][All Lists]
Advanced

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

Re: Projects for the Google Summer of Code


From: Simon Tournier
Subject: Re: Projects for the Google Summer of Code
Date: Fri, 3 Mar 2023 10:28:44 +0100

Hi,

On Fri, 3 Mar 2023 at 01:51, Kyle Andrews <kyle@posteo.net> wrote:

> > Do you mean ’guix.install()’ from r-guix-install?
> >
> > https://cran.rstudio.com/web/packages/guix.install/index.html
> >
> > How do you install Python packages from the Python REPL?
>
> With the reticulate package in R, a python environment can be readily
> instantiated using R code like `use_condaenv`.
>
> https://rstudio.github.io/reticulate/articles/versions.html

IIUC, this install Python packages from R REPL and not from Python
REPL.  Maybe I am missing something but I think 'guix.install' already
does that.

> In my dreams there would be a `use_guix()` command as well. Of course,
> right now that R code is limited to setting up python-specific
> environments and conda environments (and installing python packages into
> them). However, it still might be valuable to get the name recognition
> for Guix in this limited context.

Again, maybe I am missing a point but, IMHO, 'guix.install' is the
'use_guix' you are describing.

> While guix would be responsible for just the python environment in the
> context of the reticulate package, that isn't the only possible use
> case. It would be nice to write that integration for reticulate by
> having them use another R package with deeper integrations built out for
> managing guix itself from R. That's why I brought up RcppGuile as a path
> for how R could interface directly with the Guix scheme libraries. Such
> an interface might be useful for other interactive scientific
> environments like python as well. The goal would be to make Guix seem
> less exotic to researchers in typical scientific languages. If it's part
> of their "home" computing environment, then they might be much more
> interested in trying it out. This reflects a bigger scope than just
> being a replacement for install.packages.

>From my understanding, the path would be 'guix.install', but maybe I
am missing details.  And I am not following the point of RcppGuile,
instead I would go via some 'emulate-fhs' as "guix shell" provides.

Anyway, in all cases, it could nice to fix these bugs related to Conda
on the top of Guix:

https://issues.guix.gnu.org/issue/59776
https://issues.guix.gnu.org/issue/59775
https://issues.guix.gnu.org/issue/59774
https://issues.guix.gnu.org/issue/59772


> Later in that conversation you made the point that the purpose of the
> guix-past channel was to make things like this possible. I added my
> voice to this (GSOC Project) thread because I thought it would be useful
> to place a fresh pair of eyes at tackling the combinatorial
> configuration problems which still stand in the way of curating a large
> Guix package repository with the breadth of scientific package versions
> that a platform like conda provides... even if it cheats a lot by not
> doing that reproducibly. Whatever they learn might also help elsewhere
> in the project, such as potentially helping to curate large collections
> of packages in other languages like those in Go, Rust, or even
> JavaScript.

I agree that working around Conda could pay off for Reproducible
Research.  For example, you might be interested by the thread starting
here:

https://lists.gnu.org/archive/html/guix-science/2022-11/msg00009.html

continuing there:

https://lists.gnu.org/archive/html/guix-science/2022-12/msg00000.html

Last, Thibault launched a Git repository with CI trying to find after
which weeks or months or years? a Conda environment as you described
earlier breaks, see:

https://framagit.org/tlestang/conda-python-example/-/pipelines

The current CI tests the resolver part of Conda as discussed in the
thread above and that's cool!  :-)

Other tests could be added, as changing the "base" computational
environment (image) [1].  What happens if the Docker image
'continuumio/miniconda3:4.12.0' is lost?  For example, it could also
be tested with other 'continuumio/miniconda3' images.  Or even install
Conda on the top of say various Debian or other "base" image.  Well,
using a simple example (numpy+matplotlib) and try to run it on various
computational environments management by Conda; mimicking what we do
most of the time as scientific researchers.

1: 
https://framagit.org/tlestang/conda-python-example/-/blob/main/.gitlab-ci.yml#L1

Well, for what it is worth, I am trying to do these kind of tests for
Guix -- rebuild an old computational environment from 2020 using
current state of the world -- as reported here:

https://lists.gnu.org/archive/html/guix-devel/2023-02/msg00398.html
https://lists.gnu.org/archive/html/guix-devel/2023-03/msg00007.html

And I also proposed to work on that as GSoC:
https://libreplanet.org/wiki/Group:Guix/GSoC-2023
Feel free to add you as co-mentor. :-)

Cheers,
simon



reply via email to

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