From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id IMIPHVYi7WLfoQAAbAwnHQ (envelope-from ) for ; Fri, 05 Aug 2022 15:59:50 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id eJUbHVYi7WKrVQAA9RJhRA (envelope-from ) for ; Fri, 05 Aug 2022 15:59:50 +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 1D5941A102 for ; Fri, 5 Aug 2022 15:59:49 +0200 (CEST) Received: from localhost ([::1]:39164 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJxrf-0007rG-TJ for larch@yhetil.org; Fri, 05 Aug 2022 09:59:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJxrH-0007qt-Cd for guix-devel@gnu.org; Fri, 05 Aug 2022 09:59:23 -0400 Received: from xavier.telenet-ops.be ([2a02:1800:120:4::f00:14]:53970) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oJxrE-00007z-3F for guix-devel@gnu.org; Fri, 05 Aug 2022 09:59:23 -0400 Received: from [192.168.247.79] ([213.119.230.10]) by xavier.telenet-ops.be with bizsmtp id 3pzF280070E6evH01pzFr6; Fri, 05 Aug 2022 15:59:16 +0200 Message-ID: <98da36a2-d0cc-77da-77bf-6984253131ac@telenet.be> Date: Fri, 5 Aug 2022 15:59:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 From: Maxime Devos To: Guix-devel References: Content-Language: en-US Subject: v2: A proposal of a consistent set of clear rules and guidelines involving snippets, phases and patches. In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------u8cIyNxBgcAFYqVrgCYsFMSr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1659707956; bh=CyFc95flF7kzSxf1BuH3eSTUVlVKaM8ixYe4M5UrEZU=; h=Date:From:To:References:Subject:In-Reply-To; b=DlCNoGIadytamvLh8oJy6VSNmIUjDkHot3QG37i34TNtVd60QaxflsuP7sZfxM9Ad WkPghTvSY5rt85+86xjgYxPZUo2NukaAF99RBF1eMFahLB+XifcN5sorsLM5ZQsKOg 0OLKpcBGCxLJNhkDdziyedqKILOC03Dbq0MS+UVGYqW4kC0TBbBuYzWsC2GZdzCAYv XN7cau2PfRdGEtYCL2gJe9MNNATMTUQbJritfGGHhqkQqWiyEqtPNyKgcC5DoIAZb4 6x76wsvNRn67D1TILkjTZ0sLQIE4rejrcjDB+TYrU1M9atJG9hz5X3OYehWkr9NV3v r9BhU4rrzaQyw== Received-SPF: pass client-ip=2a02:1800:120:4::f00:14; envelope-from=maximedevos@telenet.be; helo=xavier.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.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_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=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: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1659707990; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=KOUF0RDUelfrgah93WkP6hLw3oRyp94V2B3yTsYU0Rw=; b=A0kP/zArMGFWkouoGZZ3oLx5Cx0N6a2kKeHdmywzbI7u5qdaNMNH7fW5sEP8El3e+/1aJ8 9f98uR/vva9spqsVqIUP491SFlBsFK5oU+8KgRvG2/I2DGRQrZEq8KvOrvWiFAn0L66bfh k27YXXQkWHF2L90KeUg9ksSCBnqyKBXUmURazGN1cBT55+KGgdnLCkGfjnQI7Trsx40zdt K1g0CoX+rAD/mYiebRzJgLoLDhlFwqK6r2ovJL0OdgXHT5kIPA2WeEEBAQTVXcsVut65xZ 0OQbQFbx8bohmpPxLwSHZw+QSWBLKknKeOEb+ReYUEaP9Bvfo7r06t5xKuB3ag== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1659707990; a=rsa-sha256; cv=none; b=UeVE+fAcG0+Jj+2EYCQxwVSUyHirup4jMx2mUSW9Mt/1OYKUy0YMI4N1uIYEy1zLQM2poW HYEO+qF/FFFPwtHfFKGbNZqvqMg+73zJvGeJiRDWvSOCKQNhDk5OjUt5bTa8qzRS4oeEt+ VHEPxHvIWorSfUuUd3WnZRSEQip6Xut1d9HPGIeOJp0647YjM0FM+HFYOjIQse0pQScFTp q5Fx0SRJafKYPTJDMLCh+o6nCqdEqj7mdwxOFPgpUPchbJOaTiSdGMsNT3qKWNrRt+fOQl B8N5jU4pmmV36jAkxrh7vJYw4sx+IItakzlBr8TopYYHYLlw7k+62RvL0NEopQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=DlCNoGIa; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 4.60 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=DlCNoGIa; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 1D5941A102 X-Spam-Score: 4.60 X-Migadu-Scanner: scn0.migadu.com X-TUID: e2h0FBHaRjRU This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------u8cIyNxBgcAFYqVrgCYsFMSr Content-Type: multipart/mixed; boundary="------------L8JuX0VdjIi1q87bGmAsL7EJ"; protected-headers="v1" From: Maxime Devos To: Guix-devel Message-ID: <98da36a2-d0cc-77da-77bf-6984253131ac@telenet.be> Subject: v2: A proposal of a consistent set of clear rules and guidelines involving snippets, phases and patches. References: In-Reply-To: --------------L8JuX0VdjIi1q87bGmAsL7EJ Content-Type: multipart/mixed; boundary="------------4Lub7mKL9cOUMIEDFBkvV6Qm" --------------4Lub7mKL9cOUMIEDFBkvV6Qm Content-Type: multipart/alternative; boundary="------------4vR940UJvBNNSktyTQlsvwu2" --------------4vR940UJvBNNSktyTQlsvwu2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGVyZSdzIGEgdjIuIEkndmUgY2hhbmdlZCB0aGUgc3RydWN0dXJlIHRvIHNvbWV0aGluZyBj bG9zZSB0byB3aGF0IA0KSnVsaWVuIHByb3Bvc2VkLCBpdCBsb29rcyBhIGxvdCBiZXR0ZXIg bm93IHRvIG1lIQ0KDQpUaGUgKF4pIHNob3VsZCBwcm9iYWJseSBiZSB0ZXN0ZWQgYmVmb3Jl IHRoZSBmaW5hbCB2ZXJzaW9uLg0KDQpJIGRvbid0IHRoaW5rIHRoZSBsaXN0IG9mICdndWlk aW5nIHByaW5jaXBsZXMnIGlzIHdvcmRlZCB3ZWxsLCBwcm9iYWJseSANCm5lZWRzIG1vcmUg d29yay4NCg0KW3NvbWV0aGluZyBJIHdyb3RlIHByZXZpb3VzbHldDQoNCj4+IEZlZWwgZnJl ZSB0byB0cnkgdG8gc2VwYXJhdGUgdGhlIHRoaW5ncywgYnV0IGdvaW5nIHByZXZpb3VzIA0K Pj4gZGlzY3Vzc2lvbnMsIG1hbnkgdGluZ3MgYXJlIGltcG9ydGFudCwgYW5kIHRoZXkgYXBw ZWFyIGFsbCB0byBiZSANCj4+IGluc2VwYXJhYmxlLiANCldlbGwgc2VlbXMgbGlrZSBJIHdh cyB3cm9uZywgaXQgc3BsaXRzIG5pY2VseSBpbiB0aHJlZSBzdWJzZWN0aW9ucyENCg0KPiBJ 4oCZZCBzdWdnZXN0IHN0YXJ0aW5nIHdpdGggYSBwYXRjaCBhZ2FpbnN0IHRoYXQgc2VjdGlv biB0byBhZGRyZXNzIG9uZQ0KPiBzcGVjaWZpYyBwb2ludCB0aGF0IHlvdSB0aGluayBpcyB0 aGUgbW9zdCBwcmVzc2luZyBvbmUuICBGcm9tIHRoZXJlIHdlDQo+IGNhbiBjb250aW51ZSB0 aGUgZGlzY3Vzc2lvbi4NCkFzIHdyaXR0ZW4gaW4gYW5vdGhlciByZXNwb25zZSwgSSBkb24n dCByZWFsbHkgaGF2ZSBhbiBvcGluaW9uIG9uIHdoYXQncyANCm1vcmUgcHJlc3NpbmcgdGhh biBhbm90aGVyLiBJIGhhdmUgd3JpdHRlbiB0aHJlZSAncG9pbnRzJywgYnV0IHdlIGRvbid0 IA0KaGF2ZSB0byBkaXNjdXNzIHRoZW0gYWxsIGF0IG9uY2UsIG1heWJlIGZpcnN0IDIwLjQu NS4yPyBUaGF0IG9uZSBzb3VuZHMgDQpyZWxhdGl2ZWx5IHNpbXBsZSB0byBtZS4NCg0KLS0t IFtzdGFydF0NCg0KMjAuNC41IFNuaXBwZXRzLCBwaGFzZXMgYW5kIHBhdGNoZXMuDQoNClNu aXBwZXRzLCBwaGFzZXMgYW5kIHBhdGNoZXMgYXQgdGltZXMgc2VydmUgb3ZlcmxhcHBpbmcg cHVycG9zZXMuIFRvIA0KZGVjaWRlIGJldHdlZW4gdGhlIHRocmVlLCB0aGVyZSBhcmUgYSBm ZXcgZ3VpZGluZyBwcmluY2lwbGVzOg0KDQogICogSW4gcHJpbmNpcGxlLCBHdWl4IG9ubHkg aGFzIGZyZWUgc29mdHdhcmU7IHdoZW4gdGhlIHVwc3RyZWFtIHNvdXJjZQ0KICAgIGNvbnRh aW5zIHNvbWUgbm9uLWZyZWUgc29mdHdhcmUsIGl0IGhhcyB0byBiZSByZW1vdmVkIHN1Y2gg dGhhdA0KICAgIOKAmGd1aXggYnVpbGQgLS1zb3VyY2XigJkgcmV0dXJucyB0aGUgImZyZWVk IiBzb3VyY2UgY29kZSByYXRoZXIgdGhhbg0KICAgIHRoZSB1bm1vZGlmaWVkIHVwc3RyZWFt IHNvdXJjZSAoc2VlOiAyOC40LjEgU29mdHdhcmUgRnJlZWRvbSkuDQogICogVGhlIHNvdXJj ZSBvZiB0aGUgcGFja2FnZSBuZWVkcyB0byBjb3JyZXNwb25kIHRvIHdoYXQgaXMgYWN0dWFs bHkNCiAgICBidWlsdCAoaS5lLiwgYWN0IGFzIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSks IHRvIGZ1bGZpbGwgb3VyDQogICAgZXRoaWNhbCBhbmQgbGVnYWwgb2JsaWdhdGlvbnMuDQog ICogSXQgaXMgY29udmVuaWVudCBmb3IgdGhlIHNvdXJjZSBkZXJpdmVkIGZyb20gYW4gb3Jp Z2luIHRvIGJ1aWxkIG9uDQogICAgYW55IHN5c3RlbSB0aGF0IHRoZSB1cHN0cmVhbSBwYWNr YWdlIHN1cHBvcnRzLg0KICAqIFRoZSBzb3VyY2UgbmVlZHMgdG8gYWN0dWFsbHkgd29yaywg bm90IG9ubHkgb24geW91ciBHdWl4IHN5c3RlbSBidXQNCiAgICBhbHNvIGZvciBvdGhlciBz eXN0ZW1zOyB0aGlzIHJlcXVpcmVzIHNvbWUgY2FyZSBmb3Igc3Vic3RpdHV0aW9ucw0KICAg IGludm9sdmluZyBzdG9yZSBpdGVtcyBhbmQgb3RoZXIgYXJjaGl0ZWN0dXJlLXNwZWNpZmlj IGNoYW5nZXMuDQogICogU29tZXRpbWVzLCB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0 byBkbyBpdC4gTGV0J3MgZ28gZm9yIHRoZQ0KICAgIHNpbXBsZXN0IG9uZS4gU29tZXRpbWVz LCB3aGljaCB0b29sIGlzIHRoZSBzaW1wbGVzdCwgaXMgc3ViamVjdGl2ZSwNCiAgICB0aGF0 J3MgZmluZSB0b28uDQoNClRvIG1ha2UgdGhpbmdzIG1vcmUgY29uY3JldGUgYW5kIHRvIHJl c29sdmUgY29uZmxpY3RzIGJldHdlZW4gdGhlIA0KcHJpbmNpcGxlcywgYSBmZXcgY2FzZXMg aGF2ZSBiZWVuIHdvcmtlZCBvdXQ6DQoNCjIwLjQuNS4xIFJlbW92aW5nIG5vbi1mcmVlIHNv ZnR3YXJlLg0KDQpOb24tZnJlZSBzb2Z0d2FyZSBoYXMgdG8gYmUgcmVtb3ZlZCBpbiBhIHNu aXBwZXQ7IHRoZSByZWFzb24gaXMgdGhhdCBhIA0KcGF0Y2ggb3IgcGhhc2Ugd2lsbCBub3Qg d29yay4NCg0KRm9yIGEgcGF0Y2gsIHRoZSBwcm9ibGVtIGlzIHRoYXQgYSBwYXRjaCByZW1v dmluZyBhIG5vbi1mcmVlIGZpbGUgDQphdXRvbWF0aWNhbGx5IGNvbnRhaW5zIHRoZSBub24t ZnJlZSBmaWxlICheKSwgYW5kIHdlIGRvIG5vdCB3YW50IA0KYW55dGhpbmcgbm9uLWZyZWUg dG8gYXBwZWFyIGluIEd1aXggZXZlbiBpZiBvbmx5IGluIGl0cyBwYXRjaGVzLg0KDQpGb3Ig YSBwaGFzZSwgdGhlIHByb2JsZW0gaXMgdGhhdCBwaGFzZXMgZG8gbm90IGluZmx1ZW5jZSB0 aGUgcmVzdWx0IG9mIA0K4oCYZ3VpeCBidWlsZCAtLXNvdXJjZeKAmS4NCg0KKF4pIEl0IGhh cyBiZWVuIG5vdGVkIHRoYXQgZ2l0IHBhdGNoZXMgc3VwcG9ydCByZW1vdmluZyBmaWxlcyB3 aXRob3V0IA0KaW5jbHVkaW5nIHRoZSBmaWxlIGluIHRoZSBwYXRjaCBpbiA8aW5zZXJ0IGxp bmsgdG8gUGhpbGlwIE1jR3JhdGgncyANCmUtbWFpbD4uIElmIGl0IGlzIHZlcmlmaWVkIHRo YXQgdGhlICdwYXRjaCcgdXRpbGl0eSBzdXBwb3J0cyBzdWNoIA0KcGF0Y2hlcywgdGhpcyBt ZXRob2QgY2FuIGJlIHVzZWQgYW5kIHRoaXMgcG9saWN5IGFkanVzdGVkIGFwcHJvcHJpYXRl bHkuDQoNCjIwLjQuNS4yIFJlbW92aW5nIGJ1bmRsZWQgbGlicmFyaWVzLg0KDQpCdW5kbGVk IGxpYnJhcmllcyBzaG91bGQgbm90IGJlIHJlbW92ZWQgd2l0aCBhIHBhdGNoLCBiZWNhdXNl IHRoZW4gdGhlIA0KcGF0Y2ggd291bGQgY29udGFpbiB0aGUgZnVsbCBidW5kbGVkIGxpYnJh cnksIHdoaWNoIGNhbiBiZSBsYXJnZS4gVGhleSANCmNhbiBiZSByZW1vdmVkIGVpdGhlciBp biBhIHNuaXBwZXQgb3IgYSBwaGFzZSwgb2Z0ZW4gdXNpbmcgdGhlIHByb2NlZHVyZSANCidk ZWxldGUtZmlsZS1yZWN1cnNpdmVseScuIFRoZXJlIGFyZSBhIGZldyBiZW5lZml0cyBmb3Ig c25pcHBldHMgaGVyZToNCg0KV2hlbiB1c2luZyBzbmlwcGV0cywgdGhlIGJ1bmRsZWQgbGli cmFyeSBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgc291cmNlIA0KcmV0dXJuZWQgYnkg4oCYZ3Vp eCBidWlsZCAtLXNvdXJjZeKAmSwgc28gdXNlcnMgYW5kIHJldmlld2VycyBkbyBub3QgaGF2 ZSB0byANCndvcnJ5IGFib3V0IHdoZXRoZXIgdGhlIGJ1bmRsZWQgbGlicmFyeSBjb250YWlu cyBtYWx3YXJlLCB3aGV0aGVyIGl0IGlzIA0Kbm9uLWZyZWUsIGlmIGl0IGNvbnRhaW5zIHBy ZS1jb21waWxlZCBiaW5hcmllcyAuLi4gVGhlcmUgYXJlIGFsc28gbGVzcyANCmxpY2Vuc2lu ZyBjb25jZXJuczogaWYgdGhlIGJ1bmRsZWQgbGlicmFyaWVzIGFyZSByZW1vdmVkLCBpdCBi ZWNvbWVzIA0KbGVzcyBsaWtlbHkgdGhhdCB0aGUgbGljZW5zaW5nIGNvbmRpdGlvbnMgYXBw bHkgdG8gcGVvcGxlIHNoYXJpbmcgdGhlIA0Kc291cmNlIHJldHVybmVkIGJ5IOKAmGd1aXgg YnVpbGQgLS1zb3VyY2XigJksIGVzcGVjaWFsbHkgaWYgdGhlIGJ1bmRsZWQgDQpsaWJyYXJ5 IGlzIG5vdCBhY3R1YWxseSB1c2VkIG9uIEd1aXggc3lzdGVtcy4gKCopDQoNCkFzIHN1Y2gs IHNuaXBwZXRzIGFyZSByZWNvbW1lbmRlZCBoZXJlLg0KDQooKikgVGhpcyBpcyBfbm90XyBh IGNsYWltIHRoYXQgeW91IGNhbiBzaW1wbHkgaWdub3JlIHRoZSBsaWNlbnNlcyBvZiANCmxp YnJhcmllcyB3aGVuIHRoZXkgYXJlIHVuYnVuZGxlZCBhbmQgcmVwbGFjZWQgYnkgR3VpeCBw YWNrYWdlcyAtLSB0aGVyZSANCmFyZSBsZXNzIGNvbmNlcm5zLCBub3Qgbm9uZS4NCg0KMjAu NC41LjMgRml4aW5nIHRlY2huaWNhbCBpc3N1ZXMgKGNvbXBpbGF0aW9uIGVycm9ycywgdGVz dCBmYWlsdXJlcywgDQpvdGhlciBidWdzIC4uLikNCg0KVXN1YWxseSwgYSBidWcgZml4IGNv bWVzIGluIHRoZSBmb3JtIG9mIGEgcGF0Y2ggY29waWVkIGZyb20gdXBzdHJlYW0gb3IgDQph bm90aGVyIGRpc3RyaWJ1dGlvbi4gSW4gdGhhdCBjYXNlLCBzaW1wbHkgYWRkaW5nIHRoZSBw YXRjaCB0byB0aGUgDQoncGF0Y2hlcycgZmllbGQgaXMgdGhlIG1vc3QgY29udmVuaWVudCBh bmQgdXN1YWxseSBkb2VzIG5vdCBjYXVzZSBhbnkgDQpwcm9ibGVtczsgdGhlcmUgaXMgbm8g bmVlZCB0byByZXdyaXRlIGl0IGFzIGEgc25pcHBldCBvciBhIHBoYXNlLg0KDQpJZiBubyBy ZWFkeS1tYWRlIHBhdGNoIGFscmVhZHkgZXhpc3RzLCB0aGVuIGNob29zaW5nIGJldHdlZW4g YSBwYXRjaCBvciANCmEgc25pcHBldCBpcyBhIG1hdHRlciBvZiBjb252ZW5pZW5jZS4gSG93 ZXZlciwgdGhlcmUgYXJlIHR3byB0aGluZ3MgdG8gDQprZWVwIGluIG1pbmQ6DQoNCkZpcnN0 LCB3aGVuIHRoZSBmaXggaXMgbm90IEd1aXgtc3BlY2lmaWMsIGl0IGlzIHN0cm9uZ2x5IGRl c2lyZWQgdG8gDQp1cHN0cmVhbSB0aGUgZml4IHRvIGF2b2lkIHRoZSBhZGRpdGlvbmFsIG1h aW50ZW5hbmNlIGNvc3QgdG8gR3VpeC4gQXMgDQp1cHN0cmVhbXMgY2Fubm90IGFjY2VwdCBh IHNuaXBwZXQsIHdyaXRpbmcgYSBwYXRjaCBjYW4gYmUgYSBtb3JlIA0KZWZmaWNpZW50IHVz ZSBvZiB0aW1lLiBTZWNvbmRseSwgaWYgdGhlIGZpeCBvZiBhIHRlY2huaWNhbCBpc3N1ZSBl bWJlZHMgDQphIHN0b3JlIGZpbGUgbmFtZSwgdGhlbiBpdCBoYXMgdG8gYmUgYSBwaGFzZS4g T3RoZXJ3aXNlLCBpZiBhIHN0b3JlIGZpbGUgDQpuYW1lIHdhcyBlbWJlZGRlZCBpbiB0aGUg c291cmNlLCB0aGUgcmVzdWx0IG9mICdndWl4IGJ1aWxkIC0tc291cmNlJyANCndvdWxkIGJl IHVudXNhYmxlIG9uIG5vbi1HdWl4IHN5c3RlbXMgYW5kIGxpa2VseSBhbHNvIHVudXNhYmxl IG9uIEd1aXggDQpzeXN0ZW1zIG9mIGFub3RoZXIgYXJjaGl0ZWN0dXJlLg0KDQo= --------------4vR940UJvBNNSktyTQlsvwu2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Here's a v2. I've changed the structure to something close to what Julien proposed, it looks a lot better now to me!

The (^) should probably be tested before the final version.

I don't think the list of 'guiding principles' is worded well, probably needs more work.

[something I wrote previously]

Feel free to try to separate the things= , but going previous discussions, many tings are important, and they appear all to be inseparable.
Well seems like I was wrong, it splits nicely in three subsections!

I=E2=80=99d suggest starti=
ng with a patch against that section to address one
specific point that you think is the most pressing one.  From there we
can continue the discussion.
As written in another response, I don't really have an opinion on what's more pressing than another. I have written three 'points', but we don't have to discuss them all at once, maybe first 20.4.5.2? That one sounds relatively simple to me.

--- [start]

20.4.5 Snippets, phases and patches.

Snippets, phases and patches at times serve overlapping purposes. To decide between the three, there are a few guiding principles:

  • In principle, Guix only has free software; when the upstream source contains some non-free software, it has to be removed such that =E2=80=98guix build --source=E2=80=99 returns the "free= d" source code rather than the unmodified upstream source (see: 28.4.1 Software Freedom).
  • The source of the package needs to correspond to what is actually built (i.e., act as the corresponding source), to fulfill our ethical and legal obligations.
  • It is convenient for the source derived from an origin to build on any system that the upstream package supports.
  • The source needs to actually work, not only on your Guix system but also for other systems; this requires some care for substitutions involving store items and other architecture-specific changes.
  • Sometimes, there is more than one way to do it. Let's go for the simplest one. Sometimes, which tool is the simplest, is subjective, that's fine too.

To make things more concrete and to resolve conflicts between the principles, a few cases have been worked out:

20.4.5.1 Removing non-free software.

Non-free software has to be removed in a snippet; the reason is that a patch or phase will not work.

For a patch, the problem is that a patch removing a non-free file automatically contains the non-free file (^), and we do not want anything non-free to appear in Guix even if only in its patches.

For a phase, the problem is that phases do not influence the result of =E2=80=98guix build --source=E2=80=99.

(^) It has been noted that git patches support removing files without including the file in the patch in <insert link to Philip McGrath's e-mail>. If it is verified that the 'patch' utility supports such patches, this method can be used and this policy adjusted appropriately.

20.4.5.2 Removing bundled libraries.

Bundled libraries should not be removed with a patch, because then the patch would contain the full bundled library, which can be large. They can be removed either in a snippet or a phase, often using the procedure 'delete-file-recursively'. There are a few benefits for snippets here:

When using snippets, the bundled library does not occur in the source returned by =E2=80=98guix build --source=E2=80=99, so users = and reviewers do not have to worry about whether the bundled library contains malware, whether it is non-free, if it contains pre-compiled binaries ... There are also less licensing concerns: if the bundled libraries are removed, it becomes less likely that the licensing conditions apply to people sharing the source returned by =E2=80=98guix build --source=E2=80=99, especially if the bundled= library is not actually used on Guix systems. (*)

As such, snippets are recommended here.

(*) This is _not_ a claim that you can simply ignore the licenses of libraries when they are unbundled and replaced by Guix packages -- there are less concerns, not none.

20.4.5.3 Fixing technical issues (compilation errors, test failures, other bugs ...)

Usually, a bug fix comes in the form of a patch copied from upstream or another distribution. In that case, simply adding the patch to the 'patches' field is the most convenient and usually does not cause any problems; there is no need to rewrite it as a snippet or a phase.

If no ready-made patch already exists, then choosing between a patch or a snippet is a matter of convenience. However, there are two things to keep in mind:

First, when the fix is not Guix-specific, it is strongly desired to upstream the fix to avoid the additional maintenance cost to Guix. As upstreams cannot accept a snippet, writing a patch can be a more efficient use of time. Secondly, if the fix of a technical issue embeds a store file name, then it has to be a phase. Otherwise, if a store file name was embedded in the source, the result of 'guix build --source' would be unusable on non-Guix systems and likely also unusable on Guix systems of another architecture.

--------------4vR940UJvBNNSktyTQlsvwu2-- --------------4Lub7mKL9cOUMIEDFBkvV6Qm Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------4Lub7mKL9cOUMIEDFBkvV6Qm-- --------------L8JuX0VdjIi1q87bGmAsL7EJ-- --------------u8cIyNxBgcAFYqVrgCYsFMSr Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYu0iMgUDAAAAAAAKCRBJ4+4iGRcl7sUX AQD8TVpk6FW3VmF9sKBsmv23kp1EQzxg7fLO9jCh83/VAwD/Trk7ik/xPORBju+d+5JB39UNRPAK am9Bv3tUYnoXZQk= =qne4 -----END PGP SIGNATURE----- --------------u8cIyNxBgcAFYqVrgCYsFMSr--