From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id KB8RIEOosmSFUAEASxT56A (envelope-from ) for ; Sat, 15 Jul 2023 16:08:03 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id OKHtH0OosmTMBwEAauVa8A (envelope-from ) for ; Sat, 15 Jul 2023 16:08:03 +0200 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 BF6D560400 for ; Sat, 15 Jul 2023 16:08:02 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=koszko.org header.s=mail header.b=HAH51Y51; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Seal: i=1; s=key1; d=yhetil.org; t=1689430083; a=rsa-sha256; cv=none; b=FT5om98gLdM4dvscyTd0Y62AKUTua77ExRMcSl2StIL8NVv7ShEm2bkfw3gijNEyM3Jo4s qUO+5lyZ3CegirVHYGQbu5r7V6T/6Ka5rgwyqVHBKeDGbe9DLmx0DycAxWWOXx5eAflZoT o5vv7RIFTqxe+vDhFL5wOG0E52Xp/lJmmpGhX0gziE+gwfH5R6D5nezmNn76G++GZ9EZiY 3YEN2zy3f/eKK/pyKsWvLC3etjZqRp4aI+n5wW4/xq5lpsDdDSk6f1tX/J96HbK4OTnn9G W2gd9MaMPXCGdkVZMVYYClBD+01DP9hI1R6uuEReTZVP7tS1apogPQQw5/J/MQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=koszko.org header.s=mail header.b=HAH51Y51; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gnu.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1689430083; h=from:from:sender:sender:reply-to: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=2Ku58EuNpmfQb60VL2PbgJC/5ZFX8z4Gc4gqmTzZQ70=; b=QbABNpp1bkGRFt5RvCM6jOtjjq80p657M30A/UPPQBZe+5YeEnl8TqW2qX2aLx8NdqoqdM jhb/jz/9n8HNdCT3G0kOHsaCuq0iJIjKG/D9McKfGzDKJ1ladWjGGjiCih5+NpLLoyiaC5 VNSZ+2S78PYd6R381mEtrMBcHOBbMo07VG9oMfuTLKaWFjR1YJIFuCGG51lw78t+IDyXko 0JFvgzNLjdi7/nhZwuM74frNjKQMWyC9u2paGuY3hcBTQx/wSmUXNayyAVUb8b+50V8fRI 5UzQGCCCF1+e/UWoRXTHwUEdzTKXxGJ4w7663vIWkFQiN8XswRza/Ps8syVbMg== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qKfvO-0002r4-Rv; Sat, 15 Jul 2023 10:07:06 -0400 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 1qKfvN-0002nd-3C for help-guix@gnu.org; Sat, 15 Jul 2023 10:07:05 -0400 Received: from koszko.org ([93.95.227.159]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qKfvL-000864-8Q for help-guix@gnu.org; Sat, 15 Jul 2023 10:07:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=koszko.org; s=mail; h=Content-Type:MIME-Version:References:In-Reply-To:Message-ID: Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=2Ku58EuNpmfQb60VL2PbgJC/5ZFX8z4Gc4gqmTzZQ70=; b=HAH51Y51xssrj06gfU0YNNvGzb F+/onF+5Zv2vFBDiIh1E8D6xhZ8Ox+MkDr1urFIqKfUypiUVqF54VdPe8wXq+DACAH2nRPcK4kYrO Ki69kZHKQOfxXlzSqxDzi3wdGe9+TiiWM8Dv6FwsmBlXddZHEdFhqFAHqgv8U1+cqIkCVCmEWyu2f s67i31KuSqnVf6+MLoWWRJE5c6HAwJQn/MlPJqrLSi/3lSQU29pZ+dWCtQ3wFsld+22sQHSrEoX59 vbLL7EC3xH09SPJiG1pLgVniftby1SHx25WLEoDn4fvVy9Apvb9IzI5GCM1EWK/3ubadTVlFWxrEh DROpgNrjVboTcXrI9wkXNEtgml34KJMFpiqdBdAht4miv8auLQqGDUtkzRgsbD69P3sY3pfji7ny9 72rTUv+DDdYgHlxlWbDSCaCIkbQ3wdKe6FspPY6k7S88X/RAhvCiUU4UYtEhc02ldTPnW8HuahEhq vgbP+E1ndZ6XWBdbs0277eGSUeSfwR/MPP65CM3jrz+zFGxb4kz7Q0716VetEyW7txVG5s/0fJlTV X00d7nObz5H9anYKkNRm2ehzAlt4YOCWZJYod+Xg7snDP/+cZJdNOjMpPFjnWjxZaUklmbHusIvCr w7vZa63TT+F6tZQZoLzSZ+qLo99srUvO5BVuQNzao=; Received: from [77.252.47.107] (helo=localhost) by koszko.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qKfvG-00071n-N0; Sat, 15 Jul 2023 16:06:58 +0200 Date: Sat, 15 Jul 2023 16:06:56 +0200 To: Paul Collignan Cc: help-guix@gnu.org Subject: Re: Packaging a rust program with a lot of crates Message-ID: <20230715160656.0120f6d4.koszko@koszko.org> In-Reply-To: References: X-Mailer: Claws Mail 4.1.1 (GTK 3.24.37; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/y_fKaNjqpuf9sQCCkdHN9.="; protocol="application/pgp-signature"; micalg=pgp-sha256 Received-SPF: pass client-ip=93.95.227.159; envelope-from=koszko@koszko.org; helo=koszko.org 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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Wojtek Kosior From: Wojtek Kosior via Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx0.migadu.com X-Migadu-Spam-Score: -4.01 X-Spam-Score: -4.01 X-Migadu-Queue-Id: BF6D560400 X-TUID: EsZlWzV+QkNb --Sig_/y_fKaNjqpuf9sQCCkdHN9.= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Paul! > I'm not a computer scientist at all. At best you could call me a > GNU/Linux end user for some time, but only to consume, never to > produce. I would like to contribute a little, and for that I want to > start with guix. That's cool! Please keep in mind, tho that Guix is not an "easy" distro for novice users. Be ready to spend even more time learning stuff :) Having that said, the facilities Guix provides do allow for packages to be created and maintained with relatively little time effort. I'm sure learning will pay off! > I would like to package a program that I use on my computer but which > is not in the repositories. It turns out to be a program written in > Rust, with lots of dependencies. If I were to copy/paste all of what > guix import -r returns the patch would be over 3000 lines long. >=20 > I would like to know what are the best practices to adopt in this > case. There are simple additions, updates, and additions with > inheritance. I guess I shouldn't send a patch with all of this mixed > up. I'm also a novice when it comes to sending to guix-patches but I believe the perfect approach in this case would be to: - add each package with a separate git commit - make sure the final package builds and works properly on your PC - create a patch series comprising all the additions with `git format-patch` as described in the documentation - describe in general what you did in series' cover letter that `git format-patch` generated for you - send the cover letter to guix-patches mailing list with `git send-email` as described in the documentation; this will cause the debbugs instance to open a new bug - wait for an email response from debbugs with your new bug's number - send the rest of your patch series with one invokation of `git send-email --to=3D@debbugs.gnu.org` as described in the documentation This way the Guix committers will see all the package additions as separate patches but grouped together in one debbugs issue. There's no need to wait for one patch to be accepted before sending another in this case. > Also, in this kind of case, I think that adding the program will take > weeks when you're a beginner like me. Did I miss something? For > example, is it possible to automate package inheritance during an > update to a major version of a crate, or does it have to be done by > hand? I'm not sure what you mean by this question. Anyway, you just touched one unfortunate truth =E2=80=94 when you're a beginner, any serious task can easily take weeks. My suggestion is that you start with something easier first. Perhaps an application that only has 1 or 2 dependencies? > Last question, for my culture, is there a plan to "clean up" old > packages and dependencies that are no longer used, or will the scm > files grow indefinitely? There might be some misunderstanding here. Guix does allow 1. for multiple versions of the same package to coexist 2. and for multiple versions of the same package to share most of the packaging code via inheritance. However, the possibility 1. is only exercised for some strategic packages like gcc. For casual packages, when upstream releases a new version, some kind Guix contributor sends a patch that changes the definition in the .scm file to now describe the new version. The old version need not be explicitly deleted =E2=80=94 its place is taken by the = new version :) Good luck and happy hacking ^^ Wojtek --Sig_/y_fKaNjqpuf9sQCCkdHN9.= Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iHUEARYIAB0WIQTpcnBg48VjfIpPS0JLxSIcWnn9GgUCZLKoAAAKCRBLxSIcWnn9 Gk5tAPwPS6arL+uZ+WLP87VGCap8ejDMAdKFOiz5a/j4cZwlnwEA8BjVhXlaDVNt L/HvNplHIF54qOynMdGF2zvVvmbzlA4= =Id69 -----END PGP SIGNATURE----- --Sig_/y_fKaNjqpuf9sQCCkdHN9.=--