From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id +Dt2Ge5mtWTqcwEASxT56A (envelope-from ) for ; Mon, 17 Jul 2023 18:06:06 +0200 Received: from aspmx1.migadu.com ([2001:41d0:306:2d92::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id KJy4Ge5mtWQ2gwAA9RJhRA (envelope-from ) for ; Mon, 17 Jul 2023 18:06:06 +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 18AA93F1AF for ; Mon, 17 Jul 2023 18:06:06 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=wolfsden.cz header.s=mail header.b=L+Swovb1; dkim=pass header.d=wolfsden.cz header.s=mail header.b=J1aLSCeY; 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=wolfsden.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1689609966; 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=reiSX85JnX4PgYCyvOAHMGkPkCb2OIsMAB1rDcT5tBU=; b=Ni16+0MQ9Rs35yJIkXJXEotKiJWMJA3ug0hSOZgsg5auA73CUhrqk/MUi1BDkGTbGQThFK z6eXHG6bjgueoADDmWZmD6GezT8DrfKrdRbsQweDdewEYOFYKkda5QjyzhJ9RJraLft/vo kFLYAYCHxKdvd3KiU3clTkbSYSgJCR8bnv6wPzEWdDqYm5qOv5MstXeO47l05fpR0yfFmB zA4fWBbkd2bEPebYdQ08EakJFEqVRO9FjvTxHKSAv26nfN0AZOGZjx6au/Bb9XX1pgOrqU Xoy5OpD+K6bvNVDPOdxc4+ZxtkaaY8aYEo60Uqe6+H3CDzljOJGa6vrHBL68iw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1689609966; a=rsa-sha256; cv=none; b=fQgX0nGgd/oACXboWxyhyhA3OPe4uWczL+iIjqVnOVTqn8oGl3z6CwjxQuMcJExmfFTr65 DMYh0aD/7ZZVV8ArDIL0yCerJPhe7ZIA325lJWfRqV3j8gm2+6Nw3Pis+bIh0p3tXDjwgS qlfgGMCGtSimxyAqyuz9p+3bQpmVjf6CYVxZg9UukH+WtOgM7jZGj5FRsHLva5YMD4+z/v 8mTpzL70FUW5WHRMz5MVMapks/BI5BTSImnjdAZ1kKgp1x98RzySyLY6fodaEa08LUZY5H BOwLYbSuqiLsjNQop3f2A4XdJJNnD9mTnr03b20vCyu1DhdLxRpbpunEvRyWjw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=wolfsden.cz header.s=mail header.b=L+Swovb1; dkim=pass header.d=wolfsden.cz header.s=mail header.b=J1aLSCeY; 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=wolfsden.cz Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLQj2-0003Rv-4U; Mon, 17 Jul 2023 12:05:28 -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 1qLQik-0003Bq-7g for help-guix@gnu.org; Mon, 17 Jul 2023 12:05:11 -0400 Received: from wolfsden.cz ([37.205.8.62]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLQig-0004QB-QM for help-guix@gnu.org; Mon, 17 Jul 2023 12:05:09 -0400 Received: by wolfsden.cz (Postfix, from userid 104) id 036B2262D89; Mon, 17 Jul 2023 16:05:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1689609901; bh=VprjasDPDvKqSWnN2gE7ro6WUFjx/iNNjep1VM+7LPM=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=L+Swovb1POA4vGLQGblWeiAmuMqdFHqtEQLo1tdtMG4189/kIB+Gf8p+zSLjusZ/2 GqQ8JnpxyKQvWxvSwAQdAzS0GxlfgFfz3+cRVQ9Let44EOb823ebWFucoq4CtodzYm WJKJ9tfJai709i6ruK0p0eIA4lo71iiurIgYrNuELYVAlQZAjotBy7/OSx4EbfijqK v1E1vZ+QmaPiwL+4Ilczz8VovY8fte+V1yafV1po2hBAa7OJsUGEo/FTW2KHWwJyY+ P+Og+u+qbR6N/nmieVma38BQtt7Ie9U3M1IaRMaNmNwjgd9nqk6jzbPNwK99F74/3m F2tJLl0uU6AsdQzTKA/Bg5UW8baM90jXVtf4HJsGwZPJQGIjxPhO90Be9RPpSEiEx9 KwNgElDifrcpWo4ghVaFPSkmoNaA8oDJK5nQrvx/etM/llbveUkIMZoVGaJlcIq2A9 iP5m+sdVvlfwRIaOGyxCNmFY4PADzbHOmdmmotdc0IVQGOytYgoVScSiXD6MkX7Qa8 QQxEOWcQ6aVg4O0Np8pMiKZ2LumuOEOQ4c7BgiDavGMxVJdGC3LgM5/KcX5rOQgMV4 qvvmdm3qeKNfH9wYWZBhcjXvjqHcZzVgpNG1Xyr6+FCHd6Tg3MFh0DO5VIwCeOjW1c Wt5f9UP/+K5ZtVSZyPQMD13Y= Received: from localhost (unknown [128.0.188.242]) by wolfsden.cz (Postfix) with ESMTPSA id 68B4825E7FB; Mon, 17 Jul 2023 16:05:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=wolfsden.cz; s=mail; t=1689609900; bh=VprjasDPDvKqSWnN2gE7ro6WUFjx/iNNjep1VM+7LPM=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=J1aLSCeY15aWYkUH9CDDrK87ydlNbks4A7FfW5eiPXp4yOneKOVNsCQH27VAqsnII 08cwNKp7G9YCxeYuV1EPdhM0nx16fNP4WQz5keMrePyF0J5vidr6L/6WcmNmG10RIB M4sOOQoRM2eBCCvqnPKWAhM53BlKY0GvxgkKPfFtMuR2BvDKtafsNbu8g0xC68QboK uonA/MplWjKDQRRCdOWhz7yAZQxH1nbvXKaqVkPtkn2oO/Or6hb8lAsl/Cj0zKR2J3 2nyN6zHpL4e/rUbQfzt0cT8Zb0zGIIpWD+lpVySOP+iQ1CdaHYNELtCHYhM1HK1H41 eRGxbFFjP9XtcOPyFejPZi6MimCTb2Z/qRdbUPaY6RthvOJTdx/PSQpd/m+JDkKm3G g+O1JBiXkb0xlFYcw94iavIJ4Kz5YDoEMl1MKQTBvVDJNAFQumwDTIVntrPKPuLIQP 5mCO64dOy78TzpFJjuAOtAkUbx8pPQ/1pdVt30P4DfCHtIMtM0ewJQPgP8nTqDModS XvobSjw7SV2LhWBTZ+HBfzH8ZSE0rnyB2mDPObgtNONE5VmTj35w2u2gGEdIMhqAp+ Y+wYLOo/iEaI8T6urNwaaWaTeAQHpXwQbJ0IkTZIZ6832oV3AsK5W0GzuBYly9FL02 hKrgXpWmgim7qn9mWscXRUJc= Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 04dcfacb; Mon, 17 Jul 2023 16:05:00 +0000 (UTC) Date: Mon, 17 Jul 2023 18:05:00 +0200 From: wolf To: Wojtek Kosior Cc: Paul Collignan , help-guix@gnu.org Subject: Re: Packaging a rust program with a lot of crates Message-ID: Mail-Followup-To: Wojtek Kosior , Paul Collignan , help-guix@gnu.org References: <20230715160656.0120f6d4.koszko@koszko.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="BeeEpEez+4ueiBDd" Content-Disposition: inline In-Reply-To: <20230715160656.0120f6d4.koszko@koszko.org> Received-SPF: none client-ip=37.205.8.62; envelope-from=ws@wolfsnet.cz; helo=wolfsden.cz 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, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_PASS=-0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, UNPARSEABLE_RELAY=0.001 autolearn=no 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: , 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: mx2.migadu.com X-Migadu-Spam-Score: -8.94 X-Spam-Score: -8.94 X-Migadu-Queue-Id: 18AA93F1AF X-TUID: kbXnZOmhk8DR --BeeEpEez+4ueiBDd Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2023-07-15 16:06:56 +0200, Wojtek Kosior via wrote: > Hi Paul! >=20 > > 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. >=20 > 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 :) >=20 > 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! >=20 > > 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. >=20 > 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 >=20 > 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. >=20 > > 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? >=20 > I'm not sure what you mean by this question. >=20 > Anyway, you just touched one unfortunate truth =E2=80=94 when you're a > beginner, any serious task can easily take weeks. >=20 > My suggestion is that you start with something easier first. Perhaps an > application that only has 1 or 2 dependencies? >=20 > > 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? >=20 > 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 th= e new > version :) Is there a way to mark a package as a dependency? I can very well imagine = that new version of some golang program would require less dependencies, but it = is very easy to forget to remove the package definition. Is there a reasonabl= e way to clean this up? >=20 > Good luck and happy hacking ^^ > Wojtek W. --=20 There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors. --BeeEpEez+4ueiBDd Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEt4NJs4wUfTYpiGikL7/ufbZ/wakFAmS1ZqwACgkQL7/ufbZ/ walM9g//erOSbamXkPYNn7jzL1AinsniSJoQo3bGzzIPszz7uJ0gWEfDQEPa71Za QjmWO61mhxPc/MXEi7CksoYn8sKGBdwgfo1X044a3HolI2FzCcmROvIRIMuZjA+2 pJrAVCU0lOMeZEFVpwo236yyUSn8RDEjysfjT+O2W41mLdtccV2BTPAP8GAbpSm8 1Wb2O8PuUDeMAxWkRyPlLatD8OyWdc+GyNui+Ej0ZqMKC1v8tUBF5bRm2hM8H68O S5+TQxelyPN/VXhWtCotSbDU99pSC3ruGP1s2NZGD94hKhLdT1weQ4xMVk221JxC 4DGfRN6jZxlO/yWG57891S/Xcn9lU58JVKtCxjm9v5PhSZB6KukNlZ42TTVizhUv WO6QXNLv76UF9NSFqWRkWMtfiZ96v7H/4YVgrAPpGK58DJmNWEpv+WY97kJH4nzh Qvx5h9ONHca2471mzkJuKMYHoth2fm9cq7PC+EdPKexzSPA0EFn+3fNW+zYc0XxD dnyv1tmwZ4vip+ECZAjMkcgumC1WmbxZ2phCYGlZb12QCSInaO1nUo7HXaa+qO+9 3zrOLpT/KZXXNapW8R8YQtAjtUgha8dFTivXuc07BxJf+UfvNWDjk3rYBJWxFp3u 3N4OlmPcD7d9Gk8h0w6o/oOU0osmT02iwZXKp14LCU69ZBBgORQ= =LIr7 -----END PGP SIGNATURE----- --BeeEpEez+4ueiBDd--