From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id 6DjoBVeew19EcgAA0tVLHw (envelope-from ) for ; Sun, 29 Nov 2020 13:12:55 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id gCSlAVeew19zIgAAbx9fmQ (envelope-from ) for ; Sun, 29 Nov 2020 13:12:55 +0000 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 500E29403AD for ; Sun, 29 Nov 2020 13:12:54 +0000 (UTC) Received: from localhost ([::1]:42010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kjMVX-0001ow-Hv for larch@yhetil.org; Sun, 29 Nov 2020 08:12:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kjC9f-00065V-TP for help-guix@gnu.org; Sat, 28 Nov 2020 21:09:35 -0500 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]:36741) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kjC9e-0003Sx-3y for help-guix@gnu.org; Sat, 28 Nov 2020 21:09:35 -0500 Received: by mail-pf1-x42f.google.com with SMTP id n137so7847676pfd.3 for ; Sat, 28 Nov 2020 18:09:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=+TTgCNf20Q2AxVpFehnfOdyvmgu3FN3K1rIJkBbIJFk=; b=EUPvieHSu+M2BVNprCU2zlkl4v6LLai9+AXVovC6w+4pCIpj1mG2lg5pA1BTjinH7v TSspeoKO8SX/JT+9DoX1XTw0oCfzoXsStYKYIddGrYPuWBgHjYo9BdyuMIoCVcAbSncF JXeSIlRg2Z6E5q+hJIU99cb+rVFtPXY2TBFWJdluQ3h80ulVfWoOo53ShuTVwEQ7Pl8J KrN8QXHq3GIrr7eYzscPKuy/aMuCaaMBFLhJbDfXTZo/e/Rg+urxodWUXxQIkCDEqcf4 +OAmh46Rqu/lloQmlrdwBVB+vkYQqlWYQyyFynO2WuO1RJ3HN4R1fafraDdWMxLOw9Z/ 7fzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=+TTgCNf20Q2AxVpFehnfOdyvmgu3FN3K1rIJkBbIJFk=; b=gBMzrLPTFv/58NhY7Z4/wo/t/0ESg/ibhFpVIwP9ofyFPfHRPJpI9MSP1dDpnkEnIr Acdk8zTN8RtmrmwmtSzp+JiIs7RLruN5ON3AvrNS2jYYxjLeVRkvCvsPzuAFowwKMCAX S17OGC1SmREQlSy37pSfrQcB0h1JY9oSM/Tjq7VgKDRsE3nneD2QpgW1mCvcwyxnqCEc jF41r9CPW0vPIA7vnlNjFWcSi+ipNI9Pci+Xf4WSU9e5r5zdPIeLZqLeStYU/WaB02gL Y+zMR/pnhJs85YPOmMk3fp0Y87avBDFGwcLS8e5lFNiSoq9y+BBtkHj/bGS+iBdEwpKP +8Mg== X-Gm-Message-State: AOAM533PgvbPSA02EkjeEMtqffv194VwkcKDI+QDpmsVwKOs9zigFqa6 JFRQhfMbkJZ6e72AlJsQqTDcBBRyjT0= X-Google-Smtp-Source: ABdhPJy5BJtgNpJb0TMsgCvLC/cA4Y1C/Fnytecw39d3WI6haBWeTyLSLGe+7tXqfiQ6OLqXSILihQ== X-Received: by 2002:a17:90a:7b86:: with SMTP id z6mr5048171pjc.34.1606615771934; Sat, 28 Nov 2020 18:09:31 -0800 (PST) Received: from branjam-ASM100 ([2601:601:1980:1a40:a923:fd9a:93f4:5c6d]) by smtp.gmail.com with ESMTPSA id h11sm11882098pfo.69.2020.11.28.18.09.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 18:09:31 -0800 (PST) From: branjam4@gmail.com To: help-guix@gnu.org Subject: Reproducing a Python project environment (using guix inferiors) Date: Sat, 28 Nov 2020 18:09:30 -0800 Message-ID: <87czzw6hid.fsf@branjam-ASM100.i-did-not-set--mail-host-address--so-tickle-me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=branjam4@gmail.com; helo=mail-pf1-x42f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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_ENVFROM_END_DIGIT=0.25, 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-Mailman-Approved-At: Sun, 29 Nov 2020 08:12:24 -0500 X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: "Help-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.98 X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=EUPvieHS; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of help-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=help-guix-bounces@gnu.org X-TUID: EypqFqcA72VV Hello all! Some time before I started using guix I worked through Python examples within this book[1] for school. There were some differences in the packages I installed and the listed requirements for the book (pseudo manifest at [2]) which made things difficult for me as a (then) new programmer. Believing guix could more faithfully/cleanly reproduce the environment from the book than my former approach using pip, I: + imported/wrote definitions for packages not in guix + wrote inferiors for older versions of packages that were in guix. I'm not sure what the rhyme or reason is, but most of my inferior attempts failed with this backtrace[3]. A couple were successful, as you can see in this table[4]. Usually I've had good luck consulting the manual, mailing lists, and IRC logs, but I'm at a bit of a loss this time since the nature of others' inferior issues seems different from mine (and were probably fixed). I've tried with the following (non-inferior) commits on a foreign distro: + 71507435225f10d8d944ba183cbcc77ef953e0e5 + f816deb9055669deaca59ac7652943adf7f11bb1 + 0d7c95445c (and some commits shortly after this one) Since the results consistently match[4], I supposed the issue might be with the commits I've selected for the inferiors. But at this point I thought I should ask for help in case I'm too far off. >From what I can gather, inferiors are the recommended way to declare packages defined in older revisions of guix. But how would I know what a "good" guix inferior commit is for all of these packages? Would using the definitions instead of asking guix to reproduce five different worlds for one package each be an anti-pattern? Is my issue related to being on a foreign distro, thus Guix System users wouldn't know much about this problem? Even though I'm mentioning this specific frustration, I enjoyed the learning process getting to this point and want to express my appreciation. Despite interacting with clojure and emacs lisp for at least a year, guix/guile finally got me to use quoting, let, and lambda in a non-trivial way. Thus the otherwise tedious work of generating five different channel/inferior definitions as per the example in the manual was actually a breeze! Thanks for your help and hard work, --Brandon [1] Complex Network Analysis Using Python, by Dmitry Zinoviev [2] For some of the versioned packages, I commented the newest commit prior to guix bumping that package, which I would use for an inferior. #+BEGIN_SRC scheme (specifications->manifest ;inferior commit notes '("python" ; not trying to build this from scratch. "python-matplotlib@2.0.2" ;7e06086522 "python-nltk" ;need 3.2.5 "python-pandas@0.22.0" ;ce2cfcabfc ;"python-wikipedia@1.4.0" need to guix import ;"python-toposort@1.5" need to guix import "python-networkx@2.1" ;269f100330 ;"python-community@0.10" need to guix import "python-numpy@1.13.3" ;4d6ed794dd "python-pygraphviz" ;want 1.3 but only 1.5 available ;;may need graphviz-dev as well "python-scipy@1.0.1" ;02ddafef55 ;"python-louvain@0.14" need to guix import ;need to install the author's custom modules)) #+END_SRC I used the above as a guide while doing the actual imports/inferior work. [3] #+begin_example scheme In current input: 12:3 12 (_) In guix/store.scm: 623:10 11 (call-with-store _) 1803:24 10 (run-with-store # _ # _ =E2= =80=A6) In guix/inferior.scm: 681:12 9 (_ _) In guix/channels.scm: 527:2 8 (_ _) 485:2 7 (_ _) In ./guix/monads.scm: 482:9 6 (_ _) In guix/store.scm: 1673:13 5 (_ _) In ice-9/eval.scm: 619:8 4 (_ #(#(#(#) "/gnu=E2=80=A6" = =E2=80=A6) =E2=80=A6)) 626:19 3 (_ #(#(#(#) "/gnu=E2=80=A6" = =E2=80=A6) =E2=80=A6)) 155:9 2 (_ #(#(#(#) "/gnu=E2=80=A6" = =E2=80=A6) =E2=80=A6)) 223:20 1 (proc #(#(#(#) "/=E2=80=A6" = =E2=80=A6) =E2=80=A6)) In unknown file: 0 (%resolve-variable (7 . %guix-register-program) #) #+end_example [4] | package of interest | guix commit | status | |---------------------+--------------+--------| | python-matplotlib | "7e06086522" | bad | | python-pandas | ce2cfcabfc | bad | | python-networkx | 269f100330 | good | | python-numpy | 4d6ed794dd | bad | | python-scipy | 02ddafef55 | good |