From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id 2CNgMMFFS2FNWAEAgWs5BA (envelope-from ) for ; Wed, 22 Sep 2021 17:03:29 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id mD4bLMFFS2EIfwAAB5/wlQ (envelope-from ) for ; Wed, 22 Sep 2021 15:03:29 +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 F0984166A2 for ; Wed, 22 Sep 2021 17:03:27 +0200 (CEST) Received: from localhost ([::1]:41364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mT3mR-0005sg-19 for larch@yhetil.org; Wed, 22 Sep 2021 11:03:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50600) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mT3m0-0005XW-2E; Wed, 22 Sep 2021 11:03:00 -0400 Received: from mail-io1-xd2a.google.com ([2607:f8b0:4864:20::d2a]:39581) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mT3ly-00027j-DG; Wed, 22 Sep 2021 11:02:59 -0400 Received: by mail-io1-xd2a.google.com with SMTP id m11so3773274ioo.6; Wed, 22 Sep 2021 08:02:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=xvIyvqx6R45ytWK7jPG4p9WFyvjJoNzVlncYZ8ZmHqs=; b=okyQTgQoCuLq1T7eTF24B302lItFqHgrprmtdrBAwp5+ECK9/dlCKZiaM+CuliOllN ioenQBqLFOJEI0IJJq96rS01pq3kqG4agOlpwHdk37ROofAiyBNLUu6NBNRbeuK5xYTq P/OAb2e0P7zK4FHa4/MdQbAVPQIImNmD8ch8J+Epz0Ow/myyKcuEeoAguQL4pyj3Lfrt vw8iX0TYe5dWtWDlMKZeXoKyiJcoa8OURnWTxVI+RMfuNSDWnpCBtudNaVd+vrWI9AzL KMyetcF5ZvmLYLim9tuFkfCBLnVxwUNoMrwEL900TiCz+J2lrOOeGzCS6I9O+mjxe87d WBGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=xvIyvqx6R45ytWK7jPG4p9WFyvjJoNzVlncYZ8ZmHqs=; b=UCifc3ZrS66J86jAgiXI2fnQA/m8yc4wUuNpcd6mkDOBpAruE2Qq1gwbp4MPuHi0Mv BIXmUVqq3eioyJxiS7O79zbfk63hLdNwoFQ4nQL8SQ2ghNoeiSamjemDOHt3d1NgMWNS 6wFf2dzRVLRni9tAzOHZh9tT8tgC8MixtWobz1TH3Ye/p4zZoEOH1NzUo/xrK7DeJtYK qyYqv4r384wsdesFfN9k9YGgmJ1TCtnAY7aEW1ZNVEMX98kwsqxqjZr9v7N7WefU/jPo +woYee4rBadGRb5+ua5qYImJx2z+HhKG9oWe9QP34kQIGApJHBczvDez+RzKnfAgKwnZ +Q2w== X-Gm-Message-State: AOAM532fVjnu+/88KlhDDgkRd1BuYWWcwPQL93RmxhgpKdzmJk0Cz5Cc 3yWlZtsxhxSXbg4ykVVA4kkX3mKxX4fwig== X-Google-Smtp-Source: ABdhPJxO1+27OkzXR+PszMpwmGbQzTzrGcYNDUClFIcINZbG40Ee8fL4E9fg8XiDjllYjqVD35w14w== X-Received: by 2002:a6b:f111:: with SMTP id e17mr37968iog.147.1632322976934; Wed, 22 Sep 2021 08:02:56 -0700 (PDT) Received: from washu-v4 (172-221-246-205.res.spectrum.com. [172.221.246.205]) by smtp.gmail.com with ESMTPSA id d14sm1160602iod.18.2021.09.22.08.02.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Sep 2021 08:02:56 -0700 (PDT) From: Katherine Cox-Buday To: Konrad Hinsen Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , guix-devel@gnu.org, guix-science@gnu.org Subject: Re: [Spam:]Re: =?utf-8?B?4oCcV2hhdOKAmXM=?= in a =?utf-8?Q?packag?= =?utf-8?Q?e=E2=80=9D?= References: <87wnnbpgnp.fsf@inria.fr> <875yutwuij.fsf@gmail.com> Date: Wed, 22 Sep 2021 10:02:55 -0500 In-Reply-To: (Konrad Hinsen's message of "Wed, 22 Sep 2021 15:32:00 +0200") Message-ID: <87r1dgy7og.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::d2a; envelope-from=cox.katherine.e@gmail.com; helo=mail-io1-xd2a.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-science@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-science-bounces+larch=yhetil.org@gnu.org Sender: "Guix-Science" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1632323009; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=xvIyvqx6R45ytWK7jPG4p9WFyvjJoNzVlncYZ8ZmHqs=; b=pVrmJrSTcaH/ZMh9Y+SPDS6dMoPsmIUc9X+R3TRhpdRdO9Fl5coueGUtQyo8dTfVOwLOx4 pJqf1kIoIjVMH+0Nmorb2Hcx2ahlX5dbBl7+JwxBr9yn9+ptaRzJTzR4Lo+sHPaN0Egz8a W6A7tHm6nIpET1SBhtBoh3X4bnhVClQIpBx8b1IlGhxAPwYm+OX/Fh+vHRI8roDlkRoXmD Q1VjTiBUPmldt/q8IIX9CK/M+YxQxL0xgPJ38e48EYeQIrfq3nXvNQeQcoRsLbWIzJsXlN uNwzdRO10glAPa+QuEyrBwJ4sZAQBX/vtpkYl8EI7Bq02GQtiAQsQy9gzBqoIw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1632323009; a=rsa-sha256; cv=none; b=pF7eQmJMPyqGc0EjlU7cnoOksGAMbt1KK8HWTKt863vzLnZm4HRO4RdBJpO8LCoImJGIKM XVKlMiygtYMq+tsK246EuNuMiC45OJnWn262OxALtG9qGD2//WYFAJdg65alRUBdLt9MjU LBEAkR9rhDIHlEgwP8M3DumdM3i8mu8z9rL7qGCuswQlQOzScDQrO3IiXS3vvra5+qwnE5 rxS37jpO1f52anOOiw+k379bj04EXClAIcK8dvuDFwxtVlI0Jjtd9h4R+e7iVvqiWl+Pi7 UlOFrR3hBulgZfZmE8stSED2kIGJKpgAe4bdNt5OWWGqNTr3rDWki1nncetooQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=okyQTgQo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-science-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-science-bounces@gnu.org X-Migadu-Spam-Score: -3.09 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=okyQTgQo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of guix-science-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-science-bounces@gnu.org X-Migadu-Queue-Id: F0984166A2 X-Spam-Score: -3.09 X-Migadu-Scanner: scn0.migadu.com X-TUID: GAsBGstxQGD4 Konrad Hinsen writes: > What is so far insufficiently supported by computing technology is the > necessary transition from "fast" to "robust". This is really a large problem in the industry. Especially since in most circles moving fast is considered the preferred way to do things. SaaS and abstractions are endemic, and while helpful to get things going, it can lead to precarious systems with interdependencies and risks that are not fully understood or appreciated. The "fast" path does allow people to test out new ideas very quickly, but there is a hidden cost. As we've seen these past years with COVID-19 and the world's supply chains, efficiency has some kind of inverse relationship with robustness. If you go too far down the path of efficiency, you are not very flexible, and you're building sand castles. It's for this reason I appreciate having "robust" software underneath my sand castle. At least I know only so much can crumble :) > There are a few exceptions, such as programming language with gradual typing. > In most situations, moving software from exploratory to robust involves a lot > of rewriting, often manually, with no tooling support. I really like this framing. How can we support every step of the continuum with a gentle pull towards robustness? That sounds like something to strive for. >> Bringing this back to Guix, and maybe the GNU philosophy, it has been >> very helpful for me to be able to leverage the flexibility of Guix to >> occasionally do things the "fast" way, perhaps by packaging a >> binary. Paradoxically, it has allowed me to stay within the Guix and >> free software ecosystem. In my opinion, flexibility is key to growing >> the ecosystem and community, and I would encourage Guix as a project >> to take every opportunity to give the user options. > > +100 :-) > > There is a lot we can improve here. Tutorials would be a good start. > Example: How do you package a binary in Guix? In particular, how do you > deal with binaries that have binary dependencies that they expect in > /lib etc.? A next step would be tool support: Grab whatever PyPI offers, > even if it's only binary wheels, and turn that into a Guix package. I want to be careful here in what I suggest. I think it is very important that Guix remain a bastion of robust software with very high standards. I don't want to see the PyPi PyTorch packages of the world in Guix. I /do/ want to see tooling in Guix that allows users to package and utilize these things as first-class primitives in the Guix world. In other words, let me create beautiful and terrible things, but don't let me unleash them on the world. So with your example: make it really easy to transform that PyPi package into a terrible Guix primitive of some kind, but don't let me commit it to Guix proper. > Another aspect would be supporting software development moving from fast > to robust. Suppose I have software I compile by hand, or via a simple > Makefile, somewhere in my home directory. How do I go from there to (1) > a quick-and-dirty Guix package, then (2) a very basic publishable Guix > package and finally (3) a Guix package with tests and documentation? > The path should be supported by various tools, from automatic rewriting > to debugging. As an example, something I have wished for more than once > is the possibility to run the individual build steps of a Guix package > under my own account in my home directory, for debugging purposes. This kind of stuff really excites me. If we could build tooling that somehow moves things along the continuum, that would really be something. Maybe interactive software that introspects how a package is written and behaves at runtime (in a container?) and utilizes the homoiconicity of scheme to suggest modifications of the package, or next steps. E.g. expand the linter to suggest things like documentation, or to identify at what point on the continuum the package might currently be, and how to move forward. Does the package vendor binaries? Does Guix have any packages that look like those binaries? What does the packages binaries want to link to? What paths does it try and access when run? Speaking of industry, I don't think we leverage software to build software enough. And by the way, none of those ideas would be possible if Guix weren't such a robust and sane ecosystem. -- Katherine