From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id gHELHLhEAWQWUQEAbAwnHQ (envelope-from ) for ; Fri, 03 Mar 2023 01:52:08 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id ULDtG7hEAWQ7UQEA9RJhRA (envelope-from ) for ; Fri, 03 Mar 2023 01:52:08 +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 CC1EE232C1 for ; Fri, 3 Mar 2023 01:52:07 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pXtdi-0000nt-DW; Thu, 02 Mar 2023 19:51:14 -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 1pXtdf-0000cb-Ri for guix-devel@gnu.org; Thu, 02 Mar 2023 19:51:12 -0500 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pXtdd-0003I0-ID for guix-devel@gnu.org; Thu, 02 Mar 2023 19:51:11 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id E204A2407C5 for ; Fri, 3 Mar 2023 01:51:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1677804665; bh=AR+NFQ8Ac+4K7BCr5Bl+vu2EpBj8reI7V4T7D8ZUEcY=; h=From:To:Cc:Subject:Date:From; b=OFncSCoTAqNs5+jRtWfWBrosNBGnnn6amnQT+hnjKLASig3lInZW1SwP6JxoRr2rC pKzUcngQhqBcuFBhsIJFsqzb6a6vWAz9GA1+hOzX7o/v35aJUMPoT5n0Wv8Qhk2/Dk tlA9elyazbfU3bG592YT9NKgRjXok4vp5A95PBcf+5YmqrfrV4Bm9C1CULBNoHf6NK Mj3lhl6XHlvZOldhVuM9OY7JJW7yzlqAMXplK1F2Lshwodxmyitro3sz2Hx3iKju2/ 4BuEu+eOjuFl1SVdJa9Xg9J3FP+p601PQP3A13bFafdHLNo/Fv2WS4cqf2CVAi5K+4 To8faxGZ+dOFg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4PSTtJ0hPkz9rxM; Fri, 3 Mar 2023 01:51:03 +0100 (CET) References: <20230226073836.daeias6fqowdsq45@thebird.nl> <86bklfz8q4.fsf@gmail.com> From: Kyle Andrews To: Simon Tournier Cc: Pjotr Prins , Guix Devel Subject: Re: Projects for the Google Summer of Code Date: Thu, 02 Mar 2023 23:55:16 +0000 In-reply-to: <86bklfz8q4.fsf@gmail.com> Message-ID: <87bklak68b.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=185.67.36.66; envelope-from=kyle@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, 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: 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 ARC-Seal: i=1; s=key1; d=yhetil.org; t=1677804728; a=rsa-sha256; cv=none; b=gEEVoekmJcL1oqABnmEI7r4aRxW9k36sFKJJZaS4LiuHVUXm1IDa/3vv+H7rir38+DCaEL uvV9yWdcMpEr20bbbtYYu0iw8mev/QJQGRLA4OAgk4cHMXo8rH0sUqpR5nTMP0na5OHXoW kVWFCYJ7/sBiEXuIvq021Gk+YebwIEhlyAuASpwiTAVOalOu6hie811yqlMlR5KPvcMeKY zMrIB6kiVZTltdubne4G2Bq96W0Dzu7jRUuvsXDWCQ6w9N9SBNL/TipOhR5L1D1/lAYP4q JNFTrA04y+pSoVZuajsHTbs/ACqHfQMSCRLNRgM0ab+DPgsBtDffD3EMsLNeow== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=OFncSCoT; 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=posteo.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1677804728; 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=+8vDm29IglepKLeCP/Cg8KJOLCJoCtjKpOuNFTtJMgs=; b=XLfJYgVVoxIjkFzKW5XaecUuHOQ3KidtZmBanaP+mjKznD7xTA5YyUXGT/IyveFHGiCCoD TAIAMOw02qBShK/mpJciCElCiSfT8dlbPxWeXcHtVmgzlTLxdQtOQvDgdHb79pMrXTDEbw pHFWA999ukrUfBcLqxwAaeA6Wvz4r1fLlYgC1Cc5zMs8IdxbE5iQTzxO2kYx1hjXtYwe+l vtUinJ4pVQrV9k0GjSjPC8KVp6Fd0cRGgRYPnIukcmjVT0xbLKJqxTuOu2ZOA0iLUoeG0k mq0oh5JWKJ4xTTN9r+u+m1pqSL1EUd2TtMkVSBAUMDkUkKQ7P8cz5OAVDCKYkg== X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -5.18 X-Spam-Score: -5.18 X-Migadu-Queue-Id: CC1EE232C1 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=OFncSCoT; 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=posteo.net X-TUID: wrF+WObAsM1L Simon Tournier writes: > Hi, > > > On Sun, 26 Feb 2023 at 16:52, Kyle wrote: > >> One idea might be to write a conda importer which looks at the >> versions of software in the resulting environment and tries to make >> feasible package variants of make a manifest which matches the >> existing conda environment as close as possible. > > Do you mean, from =E2=80=99conda env export=E2=80=99 Which outputs someth= ing like,=20 > > name: justnumpy > channels: > - defaults > dependencies: > - _libgcc_mutex=3D0.1=3Dmain > - _openmp_mutex=3D5.1=3D1_gnu > - blas=3D1.0=3Dmkl > - libuuid=3D1.41.5=3Dh5eee18b_0 > - mkl=3D2021.4.0=3Dh06a4308_640 > - mkl-service=3D2.4.0=3Dpy310h7f8727e_0 > - mkl_fft=3D1.3.1=3Dpy310hd6ae3a3_0 > - mkl_random=3D1.2.2=3Dpy310h00e6091_0 > - ncurses=3D6.3=3Dh5eee18b_3 > - numpy=3D1.23.4=3Dpy310hd5efca6_0 > - numpy-base=3D1.23.4=3Dpy310h8e6c178_0 > - ... > - ... > > transform this into some Guix manifest.scm? Well, indeed, it could help > people for transitioning. Yes, exactly. Parse the output of this command and generate a bunch of definitions for a manifest file but which might also be upstreamed to the guix-past repository. >> Another idea would be to create a python package for working with Guix >> more directly from inside their preferred language environment instead >> of through the shell. I also wouldn't mind it if such a thing existed >> for R as well. > > 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 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. 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. > Cheers, > simon > > PS: > >> Simon thought often >> the python version usually didn't matter, but it makes users a lot >> less woosy to stick with software combinations they have already >> tested. > > This is out of context. :-) For the context, see [1]. Thanks for the point of clarification. Sorry, I didn't add the reference in my initial message. > Well, if you have only one Python version, you only test against this > one, so being able to combine on the fly the matrix of Python versions > is not so much important =E2=80=93 it is a collective practise inherited = from > the =E2=80=9Cunstable=E2=80=9D Python ecosystem and I am doubtful about i= ts relevancy > concerning referencing software for reproducing. Now Conda is more than > 10 years and very very broadly used, so if its specification using > version labels and relying on some matrix of Python versions would be > enough for reproducibility, then I would have never landed in Guix. ;-) > > 1: https://yhetil.org/guix/86pma2t3jd.fsf@gmail.com > > My 2 cents. :-) 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.