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 B2jlBOxFxl+HIAAA0tVLHw (envelope-from ) for ; Tue, 01 Dec 2020 13:32:28 +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 EB8rAOxFxl8ycgAAbx9fmQ (envelope-from ) for ; Tue, 01 Dec 2020 13:32:28 +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 30B3A940466 for ; Tue, 1 Dec 2020 13:32:27 +0000 (UTC) Received: from localhost ([::1]:34218 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kk5lZ-0005VB-8l for larch@yhetil.org; Tue, 01 Dec 2020 08:32:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:32814) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kk5hx-0002km-4k for help-guix@gnu.org; Tue, 01 Dec 2020 08:28:41 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:54053) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kk5hm-0006J2-7s for help-guix@gnu.org; Tue, 01 Dec 2020 08:28:40 -0500 Received: by mail-wm1-x332.google.com with SMTP id k10so2789669wmi.3 for ; Tue, 01 Dec 2020 05:28:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=beadling-co-uk.20150623.gappssmtp.com; s=20150623; h=references:user-agent:from:to:subject:in-reply-to:date:message-id :mime-version:content-transfer-encoding; bh=kDSmfD1aTVZnepL/p0NLQ8clnNlFaeTmVH6y4lRVb2g=; b=zpVgleyhb6ubN9XSTBiG6RiAk9a0eg+7zlrk6aZSrJw2CCVCNe+rrtqJ2cfC/VD0an BPZRtAnNH3VcDtdQylw8GUxJry00bEDZXBD63sj4C4bDcVKB0vDrraIJt9XgHSgVchH1 WemutMiNJAXk1Rk1s1hySb/ZZpUmmDvqI10raL3umMk8dpyKRNAE4UtNnev/RhrkqxIV nRVyMEIiRFnXVvbwFG0zf/uV+yQVGpKzI8uQQ4sfLejO4faGYvKXl5w/B2UfyuXUiO6K EsWi53pIkCgVmD+qI4TkGq+nIWbAqqj9bKmmj9O839zhPvTjgpqkeblLTH9vkVSFPfXS +ITg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:subject :in-reply-to:date:message-id:mime-version:content-transfer-encoding; bh=kDSmfD1aTVZnepL/p0NLQ8clnNlFaeTmVH6y4lRVb2g=; b=AFmNvym6FTXgc7Wn4hYcliU71ppJaBMAMYB22Lc8rRdhV4T9qf7BWoftOd+lTBPFSX DymDVadGZ5/fMruf0Rbwlt7noAiKEKVUCp7Y8jfse/+xYyA/9DRjb9B9gYp/15qu2MnD oXs+HjM2BCVysFGsVD2KdtHkrZgFD9s01ajpCRtKljsk7bFKK9qCzCJHNnRhBBsVKA/+ +juYD9XiHimgN25sqNt7GCnfls350iaS1yia6GPeK2ZnZFbuc3ttYPW5yb3d9fBaVkQq UzwzzQdgI4pSiuofielX8YpBQ994LSjgpTJkkT+wgFxb3PSj7fuu1a0GbkTkXKLbweT/ NScw== X-Gm-Message-State: AOAM5305YOvIidOLR6ir8OZ3NvrV1nY1HI1wKNmzN6VIkgJmf/9geIes FL/zVe8eeIlYSacrr4IZ8AdH96U42gYUM/sd X-Google-Smtp-Source: ABdhPJxbKIiOjWcaDk/rWnNYmo+Hwb5LrCM87DG7x6Tm4+qKM35NXNdUsjqlJjCtp1N47eaxITfCNg== X-Received: by 2002:a1c:9ecf:: with SMTP id h198mr2709657wme.104.1606829306644; Tue, 01 Dec 2020 05:28:26 -0800 (PST) Received: from phil-XPS-13-9360 (host-78-147-225-8.as13285.net. [78.147.225.8]) by smtp.gmail.com with ESMTPSA id a18sm3209812wrr.20.2020.12.01.05.28.25 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 01 Dec 2020 05:28:25 -0800 (PST) References: <85360rr8v5.fsf@beadling.co.uk> <86pn3vvvt5.fsf@gmail.com> <85zh2yq413.fsf@beadling.co.uk> <86mtyxvgxg.fsf@gmail.com> User-agent: mu4e 1.2.0; emacs 26.3 From: Phil To: zimoun , help-guix@gnu.org Subject: Re: Avoiding PYTHONPATH - latest? In-reply-to: <86mtyxvgxg.fsf@gmail.com> Date: Tue, 01 Dec 2020 13:28:24 +0000 Message-ID: <85y2ihpsef.fsf@beadling.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: none client-ip=2a00:1450:4864:20::332; envelope-from=phil@beadling.co.uk; helo=mail-wm1-x332.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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: -0.42 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=beadling-co-uk.20150623.gappssmtp.com header.s=20150623 header.b=zpVgleyh; dmarc=none; 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-Migadu-Queue-Id: 30B3A940466 X-Spam-Score: -0.42 X-Migadu-Scanner: ns3122888.ip-94-23-21.eu X-TUID: 2B86eR3I/0YG Thanks again zimoun for your comments. zimoun writes: > I am not sure to understand what you mean. Installing always means > =E2=80=9Cfixed at package@version=E2=80=9D. I should miss something with= your > workflow. So using pip in 'editable' mode installs your git clone via softlinks as a = package. It doesn't really have a version - it's the code you're currently working on and will change every time you save a file without having to re-= package. There is no equivalent to this in Guix - by design, of course. > This is a bad practise and should not be encouraged. All in all, you > end up with the big mess that Guix is trying to fix. What I like about 'pip install -e' is that you are testing the actual package that end-users are going to install - without the hassle of explicitly installing it. I could instead run my unit tests against my git clone, but then you're not testing what you will deliver, you're testing the source code that will be packaged, not the package itself. The unit tests may fail if run on the package itself. The way around this in Guix, I imagine, is to rebuild a Guix package containing your own Python code each time you want to test it and then have the unit tests run as part of that package definition. This is what I'm going to try to do, but it might end-up being a fairly custom setup which may not integrate so well. > > For example, I am using Emacs and before I was using =E2=80=99use-package= =E2=80=99 which > allows to locally tweak the packages that I depend on. Then, I wanted > to do the same with Guix. At the end, it is wrong. The right thing is > inspect the package and if you need to fix, do =E2=80=9Cguix build -S =E2=80=9D, > fix and create a variant using package transformation, for instance. > This way, you have something reproducible, easy to share and/or deploy. > IMHO. Yes this makes total sense when I'm installing someone else package rather than developing my own using pip. > We discussed at the recent Guix Days that documentation =E2=80=9CGetting > starting with X=E2=80=9D is lacking=E2=80=93where X is Python, R, C, Hask= ell, etc. Yes this would be great - I'm happy to chip away at it, and even change my setup to make it more Guix-sensible.... but as a launch-pad to get people setup quickly with an explicit list of do this, avoid this - would be great! > > Feel free to send a Cookbook recipe [1] about your Python setup. :-) > > 1: Will keep this in mind - once I have my setup more Guix-complaint. I'd be keen to get feedback on it too - as per my last e-mail the Python community have a wide range of development setups, so it will probably be community effort to write a cookbook that caters to, or at least rationalises the various approaches that work in Guix.