From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 61Y3CQu+AWRfbwAAbAwnHQ (envelope-from ) for ; Fri, 03 Mar 2023 10:29:47 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id pbOjCAu+AWQTGwAAauVa8A (envelope-from ) for ; Fri, 03 Mar 2023 10:29:47 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A29DE10BF1 for ; Fri, 3 Mar 2023 10:29:46 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Lk1inKqB; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1677835787; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=bUUi6oownN5sa9ffiQpoLvhrppCJOYge4RU9YkucTVk=; b=m0Xy7rEr2uZ634ubRkYiddKoBHsq14G8L1+obz0MdaSIc87Alj7fHYR64SZzRrgY5F8p+c RzErOUqD4movDHcJs+fLzqJvw9d8VKJHdz1AlnoZ5xsKMt5l1rWqYC0f1hvqFUzAhsTXrN 16fp1pnMv4Akir4mK5E+awif8t3t/ELeZsR5NaU5pIWzsVPS11U273GdftHqMlu0aNk6+k RCmE0JCssx94GTZWBXiRnC8hH7yFD8vRuJDIrVQ0KnymajKH6PZjG4AAezYzZWy3ThpBnS AL8jxcdOmgscqgQ5HkIppI51upkH/o6Kh1LoSrE+jK1/dWqz67mlqp5CgTV62Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Lk1inKqB; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1677835787; a=rsa-sha256; cv=none; b=MmHrkH45PA9n3dYFWkJa7BmaPkoWokVqN+BEa8cJz6gRAj7mVjKW7O6ZmmK9XX1YKvDdry XUkjriKQzOYUmixS59nZSggywm5CsEnNBQTmkU2Odr9XXBvOEZNoW4pCab4DO6xo7p/bwG wLjLEPIVYhFWYOjITmnkT3bLKZrhmnJdYx1px9i+Jvko/WC4XlFPNBhW2HrmxRC3DfL/DU 4OlVbk2DpITokMfJeUl/XEMllOmFWf+H328Wt38U+TEu6W603iL3JQwlrkTOzY5qpUdal2 Nqj6hn7NAYT85GsQ7rpargBet5yJWxz+1Pr6wMhCehKUzCeG2l9lNJdO2xk9LQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pY1io-00013Y-Ms; Fri, 03 Mar 2023 04:29:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pY1im-00012r-L1 for guix-devel@gnu.org; Fri, 03 Mar 2023 04:29:00 -0500 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pY1ik-0002VT-GB for guix-devel@gnu.org; Fri, 03 Mar 2023 04:29:00 -0500 Received: by mail-lf1-x135.google.com with SMTP id bi9so2804425lfb.2 for ; Fri, 03 Mar 2023 01:28:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677835736; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=bUUi6oownN5sa9ffiQpoLvhrppCJOYge4RU9YkucTVk=; b=Lk1inKqBeaWi0LiI7O44v3c1Z9D69lOeh0MR1o4gYh9oPI3Hxh/iS/4pW0++ofyrqb ksITGL2yLLAqL2/rkebRdbsPET4y3RykBUtqug7oWs8W+e1lON9qCtsxxVUHBBgqji95 LP9x6WwvtbsGpvJbPr2Er7VXVWo8qgpKPCsk3ypng7R0vigBeWiGe5InP3/qME0eteC+ Jyw+NU7RDsLy5Dba7BIIMIm2mUmmkyhlr66sZpxjWZQuhrqq1dOkGFCh6G1IffeG8ca3 Duve+bhtqpARtvFb9GSnveMFnBsE6j0PwmZh5via/QepCI5afEosu2cweflrMbu3Ncma 9N2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677835736; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bUUi6oownN5sa9ffiQpoLvhrppCJOYge4RU9YkucTVk=; b=EiWa87r/0ctiblXxPG5012VaZZRVo7221DuvMoDkxvDcdrcgcwlWNxPxWonyV329Ly 097uzhQZSgNTRABoxJAXl+i67IyV9Wb17c+PmBxj4NgGXH9lPeNiX9cAHY9KTm51VQ+d 1KbPZplz7GTSjWADJ/tcG+GzH/4a+nfON+MIStg4EDKWanosdwlSBDuD10r9vV51vCoT wU9Hk6HOkXpWRwk4IjwAg6PgaD2A7eih2hyb/d/lwBXwUYsYvds9/S6zC1xu1CEhvu9h hNKHMG2vc/ur/9gxcmcKm2brGkELiL8/NRMfht3PcgB45dAYaZ3WBLEyVUhh7h5cY9u/ kfGg== X-Gm-Message-State: AO0yUKXEUGzDxok65Fkv/vMYC1zo7vgLrnhxMyVhf575LJB3/2xg3zbP yC7ZgSJL/7M8mZgSLYs2av+JfFudJqS6EcqTd7I= X-Google-Smtp-Source: AK7set8bjZQAol/DjhcNhWHSBqt3JpFZn1jtnJ4sNj14SaOtp0UcoLg+iMRvFzrbUnHTpLIgkEKDNz12y+jCIMpWWiE= X-Received: by 2002:a19:a411:0:b0:4d5:ca32:9bd6 with SMTP id q17-20020a19a411000000b004d5ca329bd6mr425816lfc.2.1677835736426; Fri, 03 Mar 2023 01:28:56 -0800 (PST) MIME-Version: 1.0 References: <20230226073836.daeias6fqowdsq45@thebird.nl> <86bklfz8q4.fsf@gmail.com> <87bklak68b.fsf@posteo.net> In-Reply-To: <87bklak68b.fsf@posteo.net> From: Simon Tournier Date: Fri, 3 Mar 2023 10:28:44 +0100 Message-ID: Subject: Re: Projects for the Google Summer of Code To: Kyle Andrews Cc: Pjotr Prins , Guix Devel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::135; envelope-from=zimon.toutoune@gmail.com; helo=mail-lf1-x135.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: X-Migadu-Spam-Score: -8.72 X-Spam-Score: -8.72 X-Migadu-Scanner: scn0.migadu.com X-Migadu-Queue-Id: A29DE10BF1 List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-TUID: RTQhRsdzfb+C Hi, On Fri, 3 Mar 2023 at 01:51, Kyle Andrews wrote: > > Do you mean =E2=80=99guix.install()=E2=80=99 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-c= i.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