From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.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 IDTOD0zOGWPAhAAAbAwnHQ (envelope-from ) for ; Thu, 08 Sep 2022 13:13:16 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id yOnAD0zOGWMKiAAAauVa8A (envelope-from ) for ; Thu, 08 Sep 2022 13:13:16 +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 B4423AA6A for ; Thu, 8 Sep 2022 13:13:15 +0200 (CEST) Received: from localhost ([::1]:39380 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oWFT8-000130-BI for larch@yhetil.org; Thu, 08 Sep 2022 07:13:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48332) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oWFSx-00012Z-0m for guix-patches@gnu.org; Thu, 08 Sep 2022 07:13:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:40432) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oWFSw-0002gn-Na for guix-patches@gnu.org; Thu, 08 Sep 2022 07:13:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oWFSw-0002Ll-CN for guix-patches@gnu.org; Thu, 08 Sep 2022 07:13:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#57598] [PATCH] doc: Update contribution guidelines on patches, etc. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 08 Sep 2022 11:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 57598 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Liliana Marie Prikler , 57598@debbugs.gnu.org Received: via spool by 57598-submit@debbugs.gnu.org id=B57598.16626355759018 (code B ref 57598); Thu, 08 Sep 2022 11:13:02 +0000 Received: (at 57598) by debbugs.gnu.org; 8 Sep 2022 11:12:55 +0000 Received: from localhost ([127.0.0.1]:57364 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWFSm-0002LM-S8 for submit@debbugs.gnu.org; Thu, 08 Sep 2022 07:12:54 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:36376) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oWFSh-0002LA-KM for 57598@debbugs.gnu.org; Thu, 08 Sep 2022 07:12:51 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id HPCj2800E20ykKC01PCjxg; Thu, 08 Sep 2022 13:12:46 +0200 Message-ID: Date: Thu, 8 Sep 2022 13:12:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US References: <20220905160048.18173-1-maximedevos@telenet.be> <0f78953d57d8f66a934baf518b7c9e3247b580fd.camel@ist.tugraz.at> <44573c52ae3781b85f76d113735f3f85b82548bf.camel@ist.tugraz.at> From: Maxime Devos In-Reply-To: <44573c52ae3781b85f76d113735f3f85b82548bf.camel@ist.tugraz.at> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------bYZznqRF4e00yv03Q3Otn4Cv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1662635566; bh=BVj7tKpf7nZIYzt8MDLzRBiS15zOU/pDnYZAaFh4sMU=; h=Date:To:References:From:Subject:In-Reply-To; b=L9pccPYsqDvdVfGfZo600Nvy5POMADKNHMwjwsR3tsM03UkqiVvW1cS2VIZ6fbu2F q1afo3I3P0ab0PmnTKbeYohJ+QgqyVhYEfJD09a6c88psEKDXrdp/hR8oTX7wa09nt GlKKHDd8+NqBbowj6Uq5RYtPHH6e9QnU1pXfEbGMM3APzn5s3Lnn6blt/1AqmNnV4q y+pOXtLckMpIppflgMLJXbq7Ncv/+HR2bzncx0gkJzpHzCZAEWkTuE05lIEFC3efDI 81oGJD4W18n3zJpS46Z/l7pSKXJBLHUqg/UefopNbEWNeLIq4xRK7NKqJwxOIWJgH3 jyLSbWMBrvq8w== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" 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=1662635596; 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:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=pu0u7UJ9OmWx2szoXsfEGeECv6KsUuXpjgEAbN5Om4o=; b=aMuvrDxRgI1Bu8a5OhQ4QhGubuuX+fAGowcRYOZVCwsxHqWwPzJGFkyEwKEnqGD6ZhC5UT 19Shc/sXi1diRv0IyLgqZOLMgX3LaD1ln+hy99aWYZXbIAT2BkZUph9VEl8N8AAMK9JAN8 6V8AQo26IEeUyr26YwQrE3J+s7Lgrvsfotyyduw4POjVTEEQuUw4zKflNCmgcDj4c44z7L DeKOXn8kWygOcuGtqWge5pbYYTOqZFGVpv4goleprZOAewf1hRARBDetkqKpXnirEso6kh xwlpXhFA7NV2ntBMVRTUyrqOxIyUe6fGo/4fLcoOywtfiD1N0k20ZZ9TbSDy3Q== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1662635596; a=rsa-sha256; cv=none; b=VcJTz4XG7ZtD9lZLYifOharXei0+EQ/nNwCPewG6qeHxqjY4t1uPFF1I3dZBRTEoZH3tTy n7tj38cWcycZCaXsRgdv7bZloI7JKIRPCcxL6Ehp64C3sygjZVfek0z276P1NXjUPMWL01 g/74qtwt80ONltiwAp68L6U3yvPkWuXYaPtPaS/gLkJpGMWLZGkAFkbRUNqR7WseZRwPj8 va9IRyJxqPOQfvD/SLsVhh9X1Pnc+8OBz76bhgVymwlfFXnheIxHuH1zMDn1OzVtRjXxLS tP6fco1KJf84fUT81fov1GI5W1rs+mXBLla8U7DaSyyGEYNwSB85ai3z744c4w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=L9pccPYs; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 4.32 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=L9pccPYs; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: B4423AA6A X-Spam-Score: 4.32 X-Migadu-Scanner: scn1.migadu.com X-TUID: QRVHeErf2Vv0 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------bYZznqRF4e00yv03Q3Otn4Cv Content-Type: multipart/mixed; boundary="------------N4yS7ui6DXqk1oJogkEaW0eQ"; protected-headers="v1" From: Maxime Devos To: Liliana Marie Prikler , 57598@debbugs.gnu.org Message-ID: Subject: Re: [PATCH] doc: Update contribution guidelines on patches, etc. References: <20220905160048.18173-1-maximedevos@telenet.be> <0f78953d57d8f66a934baf518b7c9e3247b580fd.camel@ist.tugraz.at> <44573c52ae3781b85f76d113735f3f85b82548bf.camel@ist.tugraz.at> In-Reply-To: <44573c52ae3781b85f76d113735f3f85b82548bf.camel@ist.tugraz.at> --------------N4yS7ui6DXqk1oJogkEaW0eQ Content-Type: multipart/mixed; boundary="------------lT8JlkWSD5VQXD90Dz1boRGV" --------------lT8JlkWSD5VQXD90Dz1boRGV Content-Type: multipart/alternative; boundary="------------fiI7W13Wn7SOCrw0E7hFeOyo" --------------fiI7W13Wn7SOCrw0E7hFeOyo Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gMDctMDktMjAyMiAxMDowOSwgTGlsaWFuYSBNYXJpZSBQcmlrbGVyIHdyb3RlOg0KDQo+ IEFtIERpZW5zdGFnLCBkZW0gMDYuMDkuMjAyMiB1bSAyMjoyMSArMDIwMCBzY2hyaWViIE1h eGltZSBEZXZvczoNCj4+PiBXZSBhbHNvIGF2b2lkIHNwZWxsaW5nIG91dCB0aGUgbm9uLWZy ZWUgZmlsZW5hbWUgd2hlcmUgcG9zc2libGUsDQo+Pj4gcHJlZmVycmluZyBrZWVwIGxpc3Rz IG92ZXIgcmVtb3ZlIGxpc3RzLCB3aGljaCB0aGlzIGtpbmQgb2YgcGF0Y2hlcw0KPj4+IHdv dWxkIGJlLg0KPj4gU2hvdWxkIHdlPyBJJ20gbm90IHNlZWluZyB0aGUgcG9pbnQgb2YgdGhh dC4gSSBoYXZlIG5vdCBleHBlcmllbmNlZA0KPj4gYW55IHN1Y2ggYXZvaWRhbmNlIG15c2Vs Ziwgc2VlIGUuZy4gJ3Rlbm5peCcsICduZXZlcmJhbGwnIGFuZA0KPj4gJ3Nob2d1bicuICBJ dCBpcywgdG8gbXkga25vd2xlZGdlLCBub3QgZm9yYmlkZGVuIHRvIG1lbnRpb24gbm9uLWZy ZWUNCj4+IHNvZnR3YXJlIGJ5IG5hbWUgaW4gY29kZSwgYXMgbG9uZyBhcyBpdHMgbm90IGEg cmVjb21tZW5kYXRpb24NCj4+IChleHBsaWNpdCBvciBpbXBsaWVkKS4NCj4gSW5kZWVkLCAg dGhlcmUgaXMgbm8gaGFyZCBydWxlLCBoZW5jZSAiYXZvaWQiIHJhdGhlciB0aGFuICJmb3Ji aWQiLg0KDQpXaGF0IEkgYWxzbyBtZWFudCBpcywgdGhhdCB0byBteSBrbm93bGVkZ2UgdGhl cmUgaXMgbm8gc29mdCBydWxlIGVpdGhlci4NCg0KQWdhaW4sIHdoeSBzaG91bGQgd2UgYXZv aWQgdGhpcywgd2hhdCdzIHRoZSBwb2ludCBvZiB0aGF0Pw0KDQo+Pj4+ICtAc3Vic3Vic2Vj dGlvbiBGaXhpbmcgdGVjaG5pY2FsIGlzc3VlcyAoY29tcGlsYXRpb24gZXJyb3JzLCB0ZXN0 DQo+Pj4+IGZhaWx1cmVzLCBvdGhlciBidWdzIC4uLikNCj4+Pj4gWy4uLl0NCj4+PiBJIGFt IHByZXR0eSBzdXJlIHRoYXQgbW9zdCBvZiB0aGVzZSBhcmUgKm5vdCogZG9uZSBpbiBzbmlw cGV0cywgYnV0DQo+Pj4gcmF0aGVyIHBoYXNlcywgaWYgdGhleSBvbmx5IGFmZmVjdCBHdWl4 LsKgIEluIHBhcnRpY3VsYXIsIGdyZXAgZm9yDQo+Pj4gZmFpbGluZy10ZXN0cyBhbmQgeW91 IHdpbGwgZmluZCBhIGZldyBwaGFzZXMgZGlzYWJsaW5nIHRoZW0uDQo+PiBJIGRvIG5vdCB0 aGluayB0aGF0IGlnbm9yaW5nIGEgdGVzdCBjb3VudHMgYXMgYSBidWcgZml4LsKgIEknbGwg YWRkIGl0DQo+PiB0byB0aGlzIHN1YnN1YnNlY3Rpb24sIGF0IGNvc3Qgb2Ygc29tZSBhZGRp dGlvbmFsIGxlbmd0aC4NCj4gSSBkbyB0aGluayBpdCBjb3VudHMgYXMgImZpeGluZyB0ZWNo bmljYWwgaXNzdWVzIHN1Y2ggYXMgdGVzdA0KPiBmYWlsdXJlcyIuDQpIb3cgZG9lcyBpZ25v cmluZyBhIHRlc3QgZml4IHRoZSB0ZWNobmljYWwgaXNzdWUgaWRlbnRpZmllZCBieSB0aGUg dGVzdA0KKHNvbWV0aW1lcywgdGhlIHRlY2huaWNhbCBpc3N1ZSBiZWluZyBhIGJ1ZyBpbiB0 aGUgdGVzdCBpdHNlbGYpPw0KPj4+IEluIGZhY3QsIGFzIGZhciBhcyBmaWxlcyB0aGF0IHdp bGwgbm90IGJlIGluc3RhbGxlZCBhcmUgY29uY2VybmVkLA0KPj4+IEkgdGhpbmsgcGhhc2Vz IG91Z2h0IHRvIGJlIHByZWZlcnJlZCwgYmVjYXVzZSB0aGV5J3JlIGVhc2llciB0bw0KPj4+ IHRha2UgYXdheSBpZiBhbiBhY3R1YWwgZml4IGlzIG1hZGUuDQo+PiBJIGRvIG5vdCBzZWUg YSBkaWZmZXJlbmNlIGluIGhhcmRuZXNzL2Vhc3luZXNzIGJldHdlZW4gcmVtb3ZpbmcgYQ0K Pj4gcGhhc2UgYW5kIHJlbW92aW5nIGEgc25pcHBldCAoYm90aCBhcmUganVzdCBhIG1hdHRl ciBvZiBvcGVuaW5nDQo+PiBhbiBlZGl0b3IsIHBvaW50aW5nIGl0IGF0IGdudS9wYWNrYWdl cy8uLi4gYW5kIHJlbW92aW5nIGEgZmV3IGxpbmVzKSwNCj4+IHRob3VnaCBJIGRvIGNvbnNp ZGVyIHJlbW92aW5nIGEgcGF0Y2ggdG8gYmUgc2xpZ2h0bHkgaGFyZGVyIChiZWNhdXNlDQo+ PiBnbnUvbG9jYWwubWsgaXMgZWFzeSB0byBmb3JnZXQpLg0KPiBUaGVyZSBzdGlsbCBpcyB0 aGUgZGlmZmVyZW5jZSB0aGF0IHBoYXNlcyBhcmUgY2xlYXJseSBkZWxpbWl0ZWQgd2hpbGUN Cj4gc25pcHBldHMgYXJlIGEgYmxvY2sgb2YgY29kZSB0aGF0IHNob3VsZG4ndCBnZXQgdG9v IGxhcmdlLg0KDQpTbmlwcGV0cyBhcmUgZGVsaW1pdGVkIGNsZWFybHkgYXMgd2VsbCwgdGhv dWdoLCB3aXRoIHRoZSAnc25pcHBldCcgZmllbGQ/DQoNCkFuZCB0aGUgbGltaXRhdGlvbnMg b2Ygc25pcHBldCBsZW5ndGggYW5kIHBoYXNlcyBsZW5ndGggYXJlIHRoZSBzYW1lDQotLSBu byBsaW1pdHMsIHRob3VnaCBjb25jaXNlbmVzcyBpcyBhcHByZWNpYXRlIGFzIGFsd2F5cy4N Cg0KPj4+IEZvciB0aGUgc3RvcmUgcGF0aCBlbWJlZGRpbmcsIHRoYXQncyBhIHJhdGhlciBy b3VuZGFib3V0IHdheSBvZg0KPj4+IHNheWluZyB0aGF0IGNvbnRyaWJ1dGVycyAqb3VnaHQg dG8qIGVtYmVkIHN0b3JlIHBhdGhzIG9mIGNlcnRhaW5nDQo+Pj4gdGhpbmdzLCBzdWNoIGFz IGNvbW1hbmRzIGludm9rZWQgdmlhIGV4ZWMgZXQgYWwuDQo+PiBJdCdzIG5vdD8gSXQncyBr aW5kIG9mIGltcGxpZWQsIHllcywgYnV0IHRoZSBwdXJwb3NlIGlzbid0IGJlaW5nIGENCj4+ ICd5b3Ugc2hvdWxkIGVtYmVkIHN0b3JlIHBhdGhzJyAoc3Vic3ViKXNlY3Rpb24sIGJ1dCBy YXRoZXIsICdpZiB5b3UNCj4+IGdvIGVtYmVkZGluZyBzdG9yZSBwYXRocyAoYXQgbGVhc3Qg Zm9yIGZpeGluZyBhIHRlY2huaWNhbCBpc3N1ZSksIGRvDQo+PiBpdCBpbiBhIHBoYXNlJy4N Cj4+DQo+PiBJJ20gbm90IGZvbGxvd2luZyB3aGF0IHRoZSBjb21wbGFpbnQgaXMsIEkgc3Vw cG9zZSBhIHNlY3Rpb24gY291bGQgYmUNCj4+IGFkZGVkIHNvbWV3aGVyZSB0byBwcm9wZXJs eSBkb2N1bWVudCB0aGUgJ2VtYmVkZGluZyBzdG9yZSBmaWxlIG5hbWVzJw0KPj4gcHJhY3Rp Y2UsIGFuZCBpbnNlcnQgYSBjcm9zcy1yZWZlcmVuY2UsIGJ1dCB0aGF0IHdhc24ndCB0aGUg cHVycG9zZQ0KPj4gb2YgdGhlIHBhdGNoIGFuZCBnb2luZyBieSBsYXRlciByZXNwb25zZXMs IHlvdSBzZWVtIG9wcG9zZWQgdG8gbWFraW5nDQo+PiB0aGluZ3MgbG9uZ2VyLg0KPj4NCj4+ IFRoZSBhbHRlcm5hdGl2ZSB3b3VsZCBiZSB0byByZW1vdmUgdGhpcyBpbmZvcm1hdGlvbiwg YnV0IHRoZW4NCj4+IHZhbHVhYmxlIGluZm9ybWF0aW9uIHdvdWxkIGJlIGxvc3QgKHRoZXJl IGhhZCBiZWVuIHNvbWUgY2FzZXMgd2hlcmUNCj4+IHN0b3JlIGZpbGUgbmFtZXMgd2VyZSBl bWJlZGRlZCBpbiBvcmlnaW4pLg0KPiBJIHRoaW5rIG15IHZlcnNpb24gYXQgbGVhc3QgaGlu dGVkIGF0IHRoaXMgcHJhY3RpY2UgaW4gYSBtb3JlIGNvbmNpc2UNCj4gd2F5LCBzbyBpdCdz IG5vdCBpbXBvc3NpYmxlIHRvIG1lbnRpb24uIFsuLi5dDQoNCkkgYWdyZWUgaXQncyBwb3Nz aWJsZSAtLSBhcyBJIHJlcGxpZWQgcHJldmlvdXNseToNCg0KPiBJIHN1cHBvc2UgYSBzZWN0 aW9uIGNvdWxkIGJlIGFkZGVkIHNvbWV3aGVyZSB0byBwcm9wZXJseSBkb2N1bWVudCB0aGUN Cj4gJ2VtYmVkZGluZyBzdG9yZSBmaWxlIG5hbWVzJyBwcmFjdGljZSwgYW5kIGluc2VydCBh IGNyb3NzLXJlZmVyZW5jZSwNCkkgZG9uJ3QgdGhpbmsgZG9jdW1lbnRpbmcgdGhlIGhvdyBv ZiB0aGUgcHJhY3RpY2Ugc2hvdWxkIGJlIGRvbmUNCmluIHRoaXMgc2VjdGlvbiwgcHJvcGVy bHkgZXhwbGFpbmluZyAnc2VhcmNoLWlucHV0LWZpbGUnIC8gDQonc2VhcmNoLWlucHV0LWRp cmVjdG9yeScsDQonaW5wdXRzIC8gbmF0aXZlLWlucHV0cycsICdiYXNoJyBiZWluZyBhbiBp bXBsaWNpdCBpbnB1dCBidXQgeW91IHN0aWxsDQpoYXZlIHRvIGFkZCBpdCB0byAnaW5wdXRz JyBpbiBzb21lIGNhc2VzIGJlY2F1c2Ugb2YgY3Jvc3MtY29tcGlsYXRpb24sDQp0aGlzLXBh Y2thZ2UtaW5wdXQgYW5kIHRoaXMtcGFja2FnZS1uYXRpdmUtaW5wdXQgLi4uIHdvdWxkIG1h a2UgdGhlDQpzdWJzdWJzZWN0aW9uIGEgYml0IHRvbyBsb25nIEkgdGhpbmssIGRpc3RyYWN0 aW5nIGZyb20gb3RoZXIgc2l0dWF0aW9ucywNCmhlbmNlIHRoZSBwcm9wb3NhbCBmb3IgYSBj cm9zcy1yZWZlcmVuY2UuDQoNCkhvdyBhYm91dCBsZWF2aW5nIHRoZSAnaG93IHRvIGVtYmVk IHN0b3JlIGZpbGUgbmFtZXMnIGZvciBhIHNlcGFyYXRlDQpkb2N1bWVudGF0aW9uIHBhdGNo IGFuZCBzZWN0aW9uLCBhZGRpbmcgYSBjcm9zcy1yZWZlcmVuY2UgbGF0ZXI/DQoNCj4+Pj4g T3RoZXJ3aXNlLCBpZiB0aGUgc3RvcmUNCj4+Pj4gK2ZpbGUgbmFtZSB3ZXJlIGVtYmVkZGVk IGluIHRoZSBzb3VyY2UsIHRoZSByZXN1bHQgb2YNCj4+Pj4gQGNvbW1hbmR7Z3VpeCBidWls ZA0KPj4+PiArLS1zb3VyY2V9IHdvdWxkIGJlIHVudXNhYmxlIG9uIG5vbi1HdWl4IHN5c3Rl bXMgYW5kIGFsc28gbGlrZWx5DQo+Pj4+IHVudXNhYmxlDQo+Pj4+ICtvbiBHdWl4IHN5c3Rl bXMgb2YgYW5vdGhlciBhcmNoaXRlY3R1cmUuDQo+Pj4gV2h5IGFyZSB5b3UgcmVwZWF0aW5n IGEgZ3VpZGluZyBwcmluY2lwbGU/DQo+PiBJJ20gc2hvd2luZyB3aHksIGluIHRoaXMgY2Fz ZSwgYSBwaGFzZSBtdXN0IGJlIHVzZWQsIGJ5IG5vdGluZyB0aGF0DQo+PiBub3QgZG9pbmcg c28gd291bGQgYmUgY29udHJhcnkgdG8gb25lIG9mIHRoZSBwcmluY2lwbGVzLg0KPj4NCj4+ IElmIG5vdCByZXBlYXRpbmcgdGhlIHByaW5jaXBsZSBpcyBkZXNpcmVkLCBJIGNvdWxkIHBl cmhhcHMgbnVtYmVyDQo+PiB0aGVtLCBhbmQgcmVmZXIgdG8gdGhlIHByaW5jaXBsZXMgYnkg bnVtYmVyIGluc3RlYWQgb2YgcmVzdGF0aW5nDQo+PiB0aGVtPyBXb3VsZCByZWR1Y2UgdGhl IGxlbmd0aCBhIGxpdHRsZS4NCj4gSSB0aGluayBjYWxsaW5nIGJhY2sgdG8gYSBndWlkaW5n IHByaW5jaXBsZSBpbiBhbmQgb2YgaXRzZWxmIHNob3dzIHRoYXQNCj4gdGhlIHNlY3Rpb24g aGFzIGdyb3duIHRvbyBsb25nIHRvIHJlbWVtYmVyIGl0IGJ5IHRoZSBwb2ludCB5b3UgY29t ZSB0bw0KPiB0aGlzIGV4YW1wbGUsDQpUaGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggbGVu Z3RoIGFuZCByZW1lbWJlcmluZywgYnV0IHJhdGhlciB3aXRoDQpleHBsYWluaW5nIHdoeSBh IHBoYXNlIG11c3QgYmUgdXNlZCAtLSB0byBleHBsYWluIHRoYXQsIEkgc3RhdGUgd2hpY2gN CnByaW5jaXBsZSBhcHBsaWVzIChhcyBtZW50aW9uZWQgcHJldmlvdXNseSkuIElmIEkgcmVt b3ZlZCB0aGUNCmV4cGxhbmF0aW9ucywgSSB3b3VsZCBqdXN0IGJlIHN0YXRpbmcgaG93IHRv IGRvIHRoaW5ncywgd2l0aG91dCBnaXZpbmcNCmEgbG9naWNhbCByZWFzb25pbmcgb24gdGhl ICd3aHknLg0KPiBhbmQgSSB0aGluayB0aGF0J3MgbW9yZSBwcm9ibGVtYXRpYyB0aGFuIG1l cmVseSB0aGUNCj4gY2FsbGJhY2suICBJZiB5b3UgZGlkbid0IG5lZWQgdG8gZGl2aWRlIHRo aXMgaW50byBzdWJzdWJzZWN0aW9ucywgeW91DQo+IGNvdWxkIGludHJvZHVjZSB0aGUgZ3Vp ZGluZyBwcmluY2lwbGVzIGluIGEgd2F5IHRoYXQgZmVlbHMgbW9yZQ0KPiBuYXR1cmFsLg0K SSBjb25zaWRlciBpdCBtb3JlIG5hdHVyYWwgdG8gaGF2ZSB0aGUgJ2d1aWRpbmcgcHJpbmNp cGxlcycgX2JlZm9yZV8gdGhlDQpjb25jcmV0ZSBjYXNlcywgYXMgdGhleSBhcmUgbWVhbnQg dG8gYmUgJ2d1aWRpbmcnIGFuZCAncHJpbmNpcGxlcycuIEl0J3MNCmxpa2UgJ3N0YXJ0aW5n IGZyb20gZmlyc3QgcHJpbmNpcGxlcycsIHRoZXJlIGludHJvZHVjaW5nIHRoZSBmaXJzdCAN CnByaW5jaXBsZXMNCmFzIHlvdSBnbyBpcyBhZC1ob2MuDQoNClRoZSBndWlkaW5nIHByaW5j aXBsZXMgYWxzbyBuZWVkIHRvIGJlIG91dHNpZGUgdGhlIGV4YW1wbGVzLCBpbiBjYXNlDQpv bmUgb2YgdGhlIGV4YW1wbGVzIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIHBhY2thZ2VyJ3MgdXNl IGNhc2UsIHN1Y2gNCnRoYXQgdGhleSBjYW4gZmFsbC1iYWNrIHRvIHRoZSBndWlkaW5nIHBy aW5jaXBsZXMuDQoNCkFsc28sIGluIHlvdXIgcGF0Y2ggeW91IGFyZSBkaXZpZGluZyB0aGlu Z3MgaW4gc3Vic3Vic2VjdGlvbnMgYXMgd2VsbCwNCmp1c3QgdW5kZXIgYSBkaWZmZXJlbnQg bmFtZSBhbmQgZGlmZmVyZW50IHJlcHJlc2VudGF0aW9uICh0YWJsZSBlbnRyaWVzDQppbiBh IHN1YnNlY3Rpb24pLCBhcyBtZW50aW9uZWQgcHJldmlvdXNseS4NCg0KPj4+PiArQHN1YnN1 YnNlY3Rpb24gQWRkaW5nIG5ldyBmdW5jdGlvbmFsaXR5DQo+Pj4+ICtUbyBhZGQgbmV3IGZ1 bmN0aW9uYWxpdHksIGEgcGF0Y2ggaXMgYWxtb3N0IGFsd2F5cyB0aGUgbW9zdA0KPj4+PiBj b252ZW5pZW50DQo+Pj4+ICtjaG9pY2Ugb2YgdGhlIHRocmVlIC0tIHBhdGNoZXMgYXJlIHVz dWFsbHkgbXVsdGktbGluZSBjaGFuZ2VzLA0KPj4+PiB3aGljaA0KPj4+PiBhcmUNCj4+Pj4g K2NvbnZlbmllbnQgdG8gZG8gd2l0aCBwYXRjaGVzIGFuZCBpbmNvbnZlbmllbnQgdG8gZG8g d2l0aCBwaGFzZXMNCj4+Pj4gb3INCj4+Pj4gK3NuaXBwZXRzLg0KPj4+IFVobSwgd2hhdD/C oCBQYXRjaGVzIGFyZSB0aGUgcHJlZmVycmVkIGZvcm0gb2YgcGF0Y2hlcz8NCj4+IE5vLCBJ IG1lYW50IHRoYXQgcGF0Y2hlcyBhcmUgKHVzdWFsbHkpIHRoZSBwcmVmZXJyZWQgbWV0aG9k IGZvcg0KPj4gYWRkaW5nIG5ldyBmdW5jdGlvbmFsaXR5LCBhbmQgdGhhdCBtdWx0aS1saW5l IGNoYW5nZXMgYXJlIGNvbnZlbmllbnQNCj4+IHRvIGRvIHdpdGggcGF0Y2hlcy7CoCDigJh3 aGljaOKAmSByZWZlcnMgdG8gdGhlIOKAmG11bHRpLWxpbmUgY2hhbmdlc+KAmSBoZXJlLA0K Pj4gbm90IOKAmHBhdGNoZXPigJkuDQo+IEkgc3RpbGwgZmluZCB0aGlzIHdvcmRpbmcgdmVy eSBjb25mdXNpbmcuICBQZXJoYXBzICJUbyBhZGQgbmV3DQo+IGZ1bmN0aW9uYWxpdHksIGEg cGF0Y2ggaXMgYWxtb3N0IGFsd2F5cyB0aGUgYmVzdCBjaG9pY2UuICBGb3Igb25lLCBpdA0K PiBpcyBsaWtlbHkgdGhhdCB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkgcmVxdWlyZXMgY2hhbmdp bmcgbXVsdGlwbGUgbGluZXMNCj4gb2Ygc291cmNlIGNvZGUsIHdoaWNoIGlzIG1vcmUgY29u dmVuaWVudCB0byBkbyB3aXRoIGEgcGF0Y2ggdGhhbiB3aXRoIGENCj4gc25pcHBldC4gIEZ1 cnRoZXIsIHBhdGNoZXMgY2FuIGJlIHRha2VuIGZyb20gYW5kIHN1Ym1pdHRlZCB0byB1cHN0 cmVhbXMNCj4gbW9yZSBlYXNpbHkuICBJZiB5b3VyIHBhdGNoIGhhcyBub3QgYmVlbiBzdWJt aXR0ZWQgdG8gdXBzdHJlYW0sDQo+IGNvbnNpZGVyIGRvaW5nIHNvLiINCkl0IGxvc2VzIHNv bWUgaW5mb3JtYXRpb24gKHRoYXQgcGF0Y2hlcyBhcmUgcHJlZmVycmVkKSBhbmQNCihhZnRl ciByZS1hZGRpbmcgdGhlIGNvbmNsdXNpb24pIGlzIG1vcmUgdmVyYm9zZSwgd2hpY2ggYXBw ZWFycw0KdG8gYmUgY29uc2lkZXJlZCB2ZXJ5IGltcG9ydGFudC4NCj4+PiBbLi4uXQ0KPj4+ IE92ZXJhbGwsIEknbSBub3QgY29udmluY2VkIHRoYXQgd2UgaGF2ZSBlbm91Z2ggZ3VpZGlu ZyBwcmluY2lwbGVzDQo+Pj4gdG8gY2FsbCB0aGVtIHRoYXQsDQo+PiBJIGRvbid0IHRoaW5r IHRoZXJlJ3MgYW55IGxvd2VyIGxpbWl0IG9uIGhvdyBtYW55IGd1aWRpbmcgcHJpbmNpcGxl cw0KPj4gdG8gaGF2ZSwgZXhjZXB0IGZvciBwZXJoYXBzIDIgKGJlY2F1c2Ugb3RoZXJ3aXNl IGl0IHNob3VsZCBoYXZlIGJlZW4NCj4+IHNpbmd1bGFyIG9yIHRoZXJlIGFyZW4ndCBhbnkp LsKgIEF0IGhvdyBmZXcgZ3VpZGluZyBwcmluY2lwbGVzIHN0b3ANCj4+IHRoZSBndWlkaW5n IHByaW5jaXBsZXMgZnJvbSBiZWluZyBndWlkaW5nIHByaW5jaXBsZXMgZm9yIHlvdSwgYW5k DQo+PiB3aHk/DQo+Pg0KPj4gRm9yIGV4YW1wbGUsIG9uPGh0dHBzOi8vd3d3LmdudS5vcmcv cGhpbG9zb3BoeS9mcmVlLXN3Lmh0bWw+LCBmb3VyDQo+PiBndWlkaW5nIHByaW5jaXBsZXMg YXJlIG1lbnRpb25lZCAod2hpY2ggYXJlIG5hbWVkICdlc3NlbnRpYWwNCj4+IGZyZWVkb21z JyB0aGVyZSksIGFuZA0KPj4gPGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0d1aWRp bmdfUHJpbmNpcGxlcz4gIGhhcyA1IOKAmEd1aWRpbmcNCj4+IFByaW5jaXBsZXPigJkuDQo+ IEFuIGVudW1lcmF0aW9uIG91Z2h0IHRvIGhhdmUgYXQgbGVhc3QgdGhyZWUgZWxlbWVudHMg KG90aGVyd2lzZSBpdCdzDQo+IGp1c3QgYSBwYWlyKSwgYW5kIEkgdGhpbmsgaWYgd2UgZG8g cHJvcGVyIGNvdW50aW5nIGFuZCBvbWl0IG5vLQ0KPiBicmFpbmVycywgc3VjaCBhcyB0aGUg Im9ubHkgZnJlZSBzb2Z0d2FyZSIgcGFydCB0aGF0IGhhcyBhbHJlYWR5IGJlZW4NCj4gbWVu dGlvbmVkLCB3ZSBjb21lIHZlcnkgY2xvc2UgdG8gc2tpcnRpbmcgdGhhdCBsaW5lLg0KVGhl ICJvbmx5IGZyZWUgc29mdHdhcmUiIGlzIG1lbnRpb25lZCBlbHNld2hlcmUsIHllcywgYnV0 IGl0IGlzIG9uZQ0Kb2YgdGhlIHByaW5jaXBsZXMgZm9yIGRlY2lkaW5nIGJldHdlZW4gc25p cHBldHMsIHBoYXNlcyBhbmQgcGF0Y2hlcy4NCldoaWxlIHlvdSBjYWxsIGl0IGEgbm8tYnJh aW5lciwgaXQgaXMgc29tZXRpbWVzIG5lZ2xlY3RlZCwgc28gaXQgc291bmRzDQppbXBvcnRh bnQgdG8gbWUgdG8gZXhwbGljaXRseSBsaXN0IGl0Lg0KDQpNZXJnaW5nIHRoZSAzdGggYW5k IDR0aCBAaXRlbSwgSSBjb3VudCA0IHByaW5jaXBsZXMsIHNvIGl0IGZpdHMgd2l0aA0KYW4g ZW51bWVyYXRpb24uDQoNCkFsc28sIEknbSBub3QgZm9sbG93aW5nIHlvdXIgcG9pbnQgaGVy ZSAtLSB5b3VyIGNvbXBsYWludCB3YXMgdGhhdCB0aGV5DQphcmVuJ3QgZ3VpZGluZyBwcmlu Y2lwbGVzIChiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHRoZW0pLCBidXQgeW91cg0KcmVzcG9u c2UgaXMgdGhhdCB0aGV5IG1pZ2h0IG5vdCBmb3JtIGFuIGVudW1lcmF0aW9uP8KgIFRoZXkg YXJlIG5hbWVkDQp0aGUgZ3VpZGluZyBwcmluY2lwbGVzLCBub3QgdGhlIGd1aWRpbmcgZW51 bWVyYXRpb24uwqAgV2hhdCBoYXZlDQplbnVtZXJhdGlvbnMgdG8gZG8gd2l0aCBhbnl0aGlu Zz8NCg0KPj4+IHdoaWNoIChhbG9uZyB3aXRoIGl0cyBzaGVlciBsZW5ndGgpIGlzIG15IG1h aW4NCj4+PiBjb21wbGFpbnQgd2l0aCB0aGUgd2F5IHlvdSd2ZSBwaHJhc2VkIHRoaW5ncy4N Cj4+IChJJ20gYXNzdW1pbmcgIml0cyA9IHRoZSBwYXRjaCBhcyBhIHdob2xlIiBoZXJlKQ0K Pj4NCj4+IEkgY291bGQgcmVtb3ZlIGFub3RoZXIgc2VjdGlvbiBvZiB0aGUgbWFudWFsIHRv IGNvbXBlbnNhdGUgZm9yIHRoZQ0KPj4gYWRkaXRpb25hbCBsZW5ndGgsIGJ1dCBJIGRvdWJ0 IHRoYXQncyB3aGF0IHlvdSBpbnRlbmRlZC7CoCBJIGRvIG5vdA0KPj4gc2VlIHRoZSBwcm9i bGVtIHdpdGggdGhlIHNoZWVyIGxlbmd0aCAtLSB3ZSBoYXZlIGEgYml0IG9mIGENCj4+IGRv Y3VtZW50YXRpb24gcHJvYmxlbSBpbiBHdWl4LCB0aGVyZSBpcyBsb3RzIG9mIHVzZWZ1bCBp bmZvcm1hdGlvbg0KPj4gdGhhdCBpcyBjdXJyZW50bHkgdW5kb2N1bWVudGVkLg0KPj4gSSBk byBub3QgdGhpbmsgdGhlcmUgaGF2ZSBiZWVuIGFueSBjb21wbGFpbnRzIGFib3V0IHRoZSBt YW51YWwgYmVpbmcNCj4+IHRvbyBsb25nLCBpZiBhbnl0aGluZywgaXQncyB0b28gc2hvcnQu DQo+IEkgcGVyc29uYWxseSB0ZW5kIHRvd2FyZHMgImxlc3MgdmVyYm9zZSIsIGhlbmNlIG15 IGNvbXBsYWludCBvZg0KPiBkZXNjcmliaW5nIHNvbWV0aGluZyB3aXRoIG1hbnkgd29yZHMg dGhhdCBjb3VsZCBiZSBkZXNjcmliZWQgd2l0aA0KPiBmZXdlci4gIEEgc2VjdGlvbiBjYW4g c3RpbGwgYmUgdG9vIGxvbmcgd2hpbGUgdGhlIGNoYXB0ZXIgYXJvdW5kIGl0IGlzDQo+IHRv byBzaG9ydC4NCg0KRG8geW91IGhhdmUgYW55dGhpbmcgaW4gcGFydGljdWxhciBpbiBtaW5k Pw0KDQo+PiBJJ3ZlIHdyaXR0ZW4gc29tZSBkb2N1bWVudGF0aW9uLCBpdCB3YXMgb3JpZ2lu YWxseSBhIGJpdCBoYXJkIHRvDQo+PiBmb2xsb3cgc28gaW4gYSBuZXh0IHZlcnNpb24gSSd2 ZSByZXN0cnVjdHVyZWQgaXQgYSBiaXQgYW5kIGV4cGxhaW5lZA0KPj4gbW9yZSwgdGhpcyBy ZXN0cnVjdHVyaW5nIGFuZCBleHBsYW5hdGlvbiBlbnRhaWxlZCBzb21lIGFkZGl0aW9uYWwN Cj4+IGxlbmd0aC4NCj4+DQo+PiBUaGVyZSBoYWQgYmVlbiBzb21lIHByb3Bvc2FscyBmb3Ig YWRkaXRpb25hbCBjYXNlcyB0byBkb2N1bWVudCwgc28NCj4+IHRoZXkgd2VyZSBhZGRlZCwg aW5jcmVhc2luZyB0aGUgbGVuZ3RoLsKgIFlvdSBoYXZlIGFkZGVkIG5ldw0KPj4gaW5mb3Jt YXRpb24gaXMgeW91ciBwYXRjaCwgaXQgd2FzIGNvbnNpZGVyZWQgdXNlZnVsIHNvIEkndmUN Cj4+IGludGVncmF0ZWQgc29tZSBvZiBpdCBpbiBteSBwYXRjaCwgaW5jcmVhc2luZyB0aGUg bGVuZ3RoLsKgIChJIGRpZG4ndA0KPj4gaW50ZWdyYXRlIGFsbCBvZiB0aGUgbmV3IHBhcnRz LCBpZiBJIGRpZCwgaXQgd291bGQgaW5jcmVhc2UgZXZlbg0KPj4gZnVydGhlci7CoCAoSWYg ZGVzaXJlZCwgaW4gY2FuIGludGVncmF0ZSB0aGUgcmVzdCwgYXQgY29zdCAgb2Ygc29tZQ0K Pj4gdGltZS4pKS4NCj4gTXkgcGF0Y2ggZGlkIG5vdCBqdXN0IHN0YXRlIHNvbWUgdGhpbmdz IHlvdSBtaXNzZWQsIGl0IGFsc28gb21pdHRlZA0KPiB0aGluZ3MgdGhhdCBJIHRoaW5rIGFy ZSBlaXRoZXIgbm90IG5lY2Vzc2FyeSBvciBwcm9iYWJseSBiZXR0ZXINCj4gZG9jdW1lbnRl ZCBlbHNld2hlcmUuDQpXaGF0IHBhcnRpY3VsYXIgdGhpbmdzIGRvIHlvdSBoYXZlIGluIG1p bmQsIGFuZCB3aGVyZSBkbyB5b3UNCnRoaW5rIHRoZXkgc2hvdWxkIGJldHRlciBiZSBkb2N1 bWVudGVkP8KgIEkgY2FuIG1vdmUgdGhpbmdzDQphcm91bmQgYSBiaXQgYW5kIGFkZCBjcm9z cy1yZWZlcmVuY2VzLg0KPj4gSSBkbyBub3Qgc2VlIHdoYXQgdGhlIHByb2JsZW0gaXMgd2l0 aCBhZGRpdGlvbmFsIGxlbmd0aCBhcyBsb25nIGFzDQo+PiB0aGlzIGFkZGl0aW9uYWwgbGVu Z3RoIGNvbWVzIHdpdGggYWRkaXRpb25hbCB1c2VmdWwgaW5mb3JtYXRpb24gYW5kDQo+PiB0 aGUgbWFudWFsIGlzIHdlbGwtc3RydWN0dXJlZCAoZS5nLiB3aXRoIChzdWIpKHN1YilzZWN0 aW9ucywgY2hhcHRlcnMNCj4+IGFuZCBpbmRpY2VzKSAtLSB3ZSBkbyBub3QgaGF2ZSBhIHBh Z2UgbGltaXQuDQo+Pg0KPj4gQXQgd29yc3QsIHBlcmhhcHMgdGhlIHNhbWUgaW5mb3JtYXRp b24gY291bGQgcGVyaGFwcyBiZSBlbmNvZGVkIHdpdGgNCj4+IGZld2VyIHdvcmRzPyBJIGNv dWxkIGNvbXBhcmUgdGhlIHR3byBwYXRjaGVzIHRvIHNlZSB3aGljaCBvbmUNCj4+IGZvcm11 bGF0ZXMgY2VydGFpbiBpbmZvcm1hdGlvbiBpbiB0aGUgZmV3ZXN0IHdvcmRzLCBhbmQgY2hv b3NlIHRoZQ0KPj4gbGVhc3QgdmVyYm9zZSBvZiB0aGUgdHdvIGZvciBlYWNoIHBpZWNlIG9m IGluZm9ybWF0aW9uIHRoYXQgaXMNCj4+IHByZXNlbnQgaW4gYm90aD8NCj4+DQo+PiBBbHNv LCBjb21wYXJpbmcgdGhlIHR3byBwYXRjaGVzLCBteSBwYXRjaCBoYXMgNDAgbW9yZSBsaW5l cywgYnV0DQo+PiBhYm91dCAyNSBvZiB0aGVtIGFyZSBmb3Igbm90aW5nIHRoZSBndWlkaW5n IHByaW5jaXBsZXMgKHdoaWNoIGFyZQ0KPj4gYWJzZW50IGluIHlvdXIgcGF0Y2gpLg0KPj4g Q29tcGVuc2F0aW5nIGZvciB0aGF0LCB0aGUgcGF0Y2hlcyBhcmUgYWJvdXQgdGhlIHNhbWUg bGVuZ3RoLCBzbyBJIGRvDQo+PiBub3QgdGhpbmsgdGhhdCAnc2hlZXIgbGVuZ3RoJyBpcyBh Y2N1cmF0ZSBoZXJlLg0KPiAyNSBsaW5lcyBjYWxsaW5nIGJhY2sgdG8gZWFybGllciBpbmZv cm1hdGlvbiBhcmUsIGltaG8sIGFuIGluZGljYXRvcg0KPiB0aGF0IHRoZSBzZWN0aW9uIGlz IHRvbyBsb25nLiAgSW1hZ2luZSB5b3UnZCBoYXZlIHR3ZW50eS1maXZlIGZ1bmN0aW9uDQo+ IGNhbGxzIHRvIGd1aWRpbmdfcHJpbmNpcGxlcyhuKSBpbiB5b3VyIHByb2dyYW0g4oCTIGF0 IHNvbWUgcG9pbnQsIHlvdSdkDQo+IHRyeSB0byBjYWNoZSB0aG9zZS4NCihkZWZpbmUgY2Fj aGVkLWd1aWRpbmctcHJpbmNpcGxlcw0KIMKgIChkZWxheSAobGlzdCAoZ3VpZGluZy1wcmlu Y2lwbGUtMCkNCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBbLi4u XQ0KIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWlkaW5nLXBy aW5jaXBsZS0yNCkpKSkNCg0KQ2FjaGluZyB0aGUgZ3VpZGluZyBwcmluY2lwbGVzIGRvZXMg bm90IHJlZHVjZSB0aGUgbGVuZ3RoLg0KDQpJIGRvbid0IHNlZSB0aGUgcHJvYmxlbSB3aXRo IGNhbGxpbmcgYmFjayB0byBlYXJsaWVyIGluZm9ybWF0aW9uLg0KQWxzbywgaXQgaXNuJ3Qg ZWFybGllciBpbmZvcm1hdGlvbiwgdGhlcmUgaXMgbm8gbmljZSBsaXN0IG9mIGd1aWRpbmcN CnByaW5jaXBsZXMgYW55d2hlcmUgZWxzZS4NCg0KPj4+IEdvaW5nIGRvd24gdG8gc3Vic3Vi c2VjdGlvbnMganVzdCB0byBmaW5kIG91dCB3aGVyZSBwYXRjaGVzIGFyZQ0KPj4+IGFwcHJv cHJpYXRlLCBpcyBpbWhvIG92ZXJraWxsLg0KPj4gVGhlICdnb2luZyBkb3duIHRvIHN1YnN1 YnNlY3Rpb24nIGlzIHRoZSBjYXNlIGZvciB5b3VyIHBhdGNoIHRvbywNCj4+IHRob3VnaD8g IEluIG15IGNhc2UsIGl0J3MgYSBzdWJzdWJzZWN0aW9uLCBpbiB5b3VyIGNhc2UgaXQncyBh IHRhYmxlDQo+PiBlbnRyeSBpbnNpZGUgYSBzdWJzZWN0aW9uLCBib3RoIGFyZSB0aGUgc2Ft ZSBsZXZlbCBvZiBuZXN0aW5nLg0KPiBUaGVzZSBhcmUgc3RpbGwgdHdvIHZlcnkgZGlmZmVy ZW50IGtpbmRzIG9mIG5lc3RpbmcuICBBIHRhYmxlIGZpdHMgb250bw0KPiBhICh2aXJ0dWFs KSBwYWdlIG1vcmUgZWFzaWx5IHRoYW4gc2V2ZXJhbCBzdWJzZWN0aW9ucy4NCkkgc3VwcG9z ZSB0YWJsZSBpdGVtcyBtaWdodCB0YWtlIHR3byBsZXNzIGxpbmUgb3Igc28gbGVzcyB0aGFu DQpzdWJzdWJzZWN0aW9ucywgYnV0IEkgZG9uJ3QgdGhpbmsgdGhhdCdzIHN1ZmZpY2llbnQg cmVhc29uIHRvIHN0ZXANCmF3YXkgZnJvbSBhIG5pY2Ugc2VjdGlvbiBzdHJ1Y3R1cmUuDQo+ PiBBbHNvLCBpdCdzIGEgbWF0dGVyIG9mIGRpZmZlcmVudCBzdHJ1Y3R1cmUgLS0gaW4gbXkg djIgYW5kIHYzIHBhdGNoLA0KPj4gSSBoYXZlIGEgJ3Byb2JsZW0gLT4gc29sdXRpb24nIHN0 cnVjdHVyZSAtLSB0aGUgaWRlYSBpcyB0aGF0IHRoZQ0KPj4gcGFja2FnZXMgaGFzIGEgcHJv YmxlbSwgdGhleSBsb29rIGF0IHRoZSBzZWN0aW9uLCB0aGV5IHJlYWQgdGhlDQo+PiBzdWJz dWJzZWN0aW9uIG5hbWVzLCBzZWxlY3QgdGhlDQo+PiBzdWJzdWJzZWN0aW9uIHRoYXQgbWF0 Y2hlcyB0aGVpciBwcm9ibGVtIGFuZCByZWFkIHRoZSBzb2x1dGlvbiAtLSBpbg0KPj4gc2hv cnQsIHRoZSBpZGVhIGlzIHRvIHByb3ZpZGUgYSBzb2x1dGlvbiB0byB0aGUgcHJvYmxlbS4N Cj4+DQo+PiBZb3VyIHN0cnVjdHVyZSBpcyB0aGUgb3RoZXIgd2F5IGFyb3VuZCAtLSBmb3Ig c29sdXRpb25zIChwYXRjaGVzLA0KPj4gc25pcHBldHMsIHBoYXNlcyksIGl0IGdpdmVzIHRo ZSBwZXJtaXR0ZWQgcHJvYmxlbXMgdG8gYXBwbHkgaXQgdG8uDQo+Pg0KPj4gU28geWVzLCB5 b3VyIHBhdGNoIGlzIG1vcmUgY29udmVuaWVudCBmb3IgZmluZGluZyBvdXQgd2hlcmUgcGF0 Y2hlcw0KPj4gYXJlIGFwcHJvcHJpYXRlLsKgIEkgZG8gbm90IHNlZSB0aGUgYmVuZWZpdCBv ZiB0aGF0IHRob3VnaCAtLSBhIG5ldw0KPj4gY29udHJpYnV0b3IgcGFja2FnaW5nIGEgdGhp bmcgd291bGRuJ3Qga25vdyBpbiBhZHZhbmNlIHdoaWNoDQo+PiBzb2x1dGlvbnMgY291bGQg YmUgYXBwcm9wcmlhdGUgZm9yIHRoZW0gKHlvdXIgJ3NvbHV0aW9uIC0+IHByb2JsZW0nDQo+ PiBwYXRjaD8pLCByYXRoZXIsIHRoZXkgc3RhcnQgd2l0aCBhIHByb2JsZW0gYW5kIGFyZSBz ZWFyY2hpbmcgZm9yIGFuDQo+PiBhcHByb3ByaWF0ZSBzb2x1dGlvbiAobXkgcHJvYmxlbS0+ c29sdXRpb24gcGF0Y2gpLg0KPiBJIHRoaW5rIHRoaXMgaWRlYSBjYW4gYmUgZGVidW5rZWQg cHJldHR5IGVhc2lseS4gIElmIEkgZ2l2ZSB5b3UgYQ0KPiBoYW1tZXIgYW5kIEkgdGVsbCB5 b3UgInRoaXMgaXMgYSBoYW1tZXIsIHlvdSBjYW4gdXNlIGl0IHRvIHB1dCBuYWlscw0KPiBp bnRvIGEgd2FsbCIsIGFuZCB5b3UgaGF2ZSBhIG5haWwgYW5kIHlvdSB3YW50IHRvIHB1dCBp dCBpbnRvIGEgd2FsbCwNCj4geW91IHdvbid0IGdvICJvaCBubywgaG93ZXZlciB3aWxsIEkg cHV0IHRoaXMgbmFpbCBpbnRvIGEgd2FsbD8iIOKAkyB5b3UNCj4gd2lsbCBzaW1wbHkgdXNl IHRoZSBoYW1tZXIgdG8gZG8gc28uDQpUaGUgcGF0Y2ggZG9lcyB0aGlzLCBjdXJyZW50bHku wqAgSXQgYWxyZWFkeSBwcm9wb3NlcyBhIG51bWJlciBvZiBoYW1tZXJzDQoocGF0Y2hlcywg c25pcHBldHMgYW5kIHBoYXNlcykgYW5kIHB1cnBvc2VzIChhZGRpbmcgbmV3IGZ1bmN0aW9u YWxpdHksDQpmaXhpbmcgdGVjaG5pY2FsIGlzc3VlcywgdW5idW5kbGluZywgLi4uKS4NCg0K QWxzbywgdGhlIHNjZW5hcmlvICJvaCBubywgaG93ZXZlciB3aWxsIEkgcHV0IHRoaXMgbmFp bCBpbnRvIGEgd2FsbCINCmFjdHVhbGx5IGhhcHBlbmVkIC0tIHNlZSB0aGUgU2hlcGhlcmQg ZGlzY3Vzc2lvbiwgd2hlcmUgdGhlcmUgd2FzDQphIGxvdCBvZiBkaXNhZ3JlZW1lbnQgb24g aG93IG5haWxzICg9IHNtYWxsIHdvcmstYXJvdW5kIGluIHRoZSBNYWtlZmlsZSkNCnNob3Vs ZCBiZSBwdXQgaW4gd2FsbHMgKD0gcGF0Y2hlcywgc25pcHBldCwgcGhhc2U/KS7CoMKgIEl0 IHdhcyB0aGUgd2hvbGUNCnJlYXNvbiB0byBzdGFydCB3cml0aW5nIGEgZG9jdW1lbnRhdGlv biBwYXRjaC4NCg0KPiBPZiBjb3Vyc2UsIGZvciB0aGlzIHRvIHdvcmsgSQ0KPiBhbHNvIGhh dmUgdG8gdGVsbCB5b3UgKmhvdyogdG8gdXNlIGEgaGFtbWVyIHRvIHB1dCBuYWlscyBpbnRv IGEgd2FsbCwNCj4gYnV0IHRoYXQncyBleGFjdGx5IHdoYXQgSSBkaWQgaW4gbXkgcGF0Y2gg YnkgaW5zZXJ0aW5nIHRoZSByaWdodCBub3Rlcw0KPiBpbnRvIHRoZSBHdWl4IG1hbnVhbC4N CkFsc28gYWxyZWFkeSB0aGUgY2FzZS4NCj4gTXkgc29sdXRpb24tPnByb2JsZW0gYXBwcm9h Y2ggaGFzIHRoZSBiZW5lZml0LCB0aGF0IGZvbGtzIGNhbiBqdXN0IGdvDQo+IG92ZXIgYWxs IHRoZSBzb2x1dGlvbnMsIGNoZWNrIGlmIHRoZWlyIHByb2JsZW0gZml0cywgYW5kIGFwcGx5 IHRoZSBvbmUNCj4gdGhhdCBzYXlzICJoZXJlLCB1c2UgdGhpcyIuDQoNCkEgcHJvYmxlbS0+ c29sdXRpb24gc3RydWN0dXJlIGlzIHVzZWZ1bCBmb3IgdGhhdCB0b28/DQoNCkFuZCBpdCBh bHJlYWR5IGxpc3RzIGFsbCB0aGUgc29sdXRpb25zIChzbmlwcGV0cywgcGhhc2VzIGFuZCBw YXRjaGVzKQ0KYW5kIGluZm9ybWF0aW9uIHRvIGRlY2lkZSB3aGV0aGVyIHRoZSBzb2x1dGlv biBmaXRzIHRoZWlyIHByb2JsZW0NCih0aGUgZ3VpZGluZyBwcmluY2lwbGVzLCBhbmQgdGhl IHdvcmtlZC1vdXQgY2FzZXMpLg0KDQo+IEFuZCBpZiB0aGV5IGRvbid0IGZpbmQgYW55dGhp bmcsIHRoZXkgc2VlDQo+IHRoZSBoYW5keSBsaXR0bGUgbGluZSBhdCB0aGUgYm90dG9tIHNh eWluZyAidXNlIHdoYXRldmVyIHlvdSB0aGluayBpcw0KPiBjb252ZW5pZW50Ii4NCk5vd2hl cmUgZGlkIHRoZSBwYXRjaCBpbXBseSB0aGF0IHRoZSBsaXN0ZWQgY2FzZXMgd2VyZSBhbGwg Y2FzZXMuIEluIGZhY3QsDQppbiB0d28gcGxhY2VzIGluIHRoZSBpbnRyb2R1Y3Rpb24gaXQg aXMgaW1wbGllZCB0aGF0IHRoZSBleGFtcGxlcyBhcmUgbm90DQpleGhhdXN0aXZlLCBhbmQg dGhhdCB0aGV5IGNhbiBjaG9vc2UgYWNjb3JkaW5nIHRvIGNvbnZlbmllbmNlOg0KDQogICog 4oCYVG8gbWFrZSB0aGluZ3MgbW9yZSBjb25jcmV0ZSBhbmQgdG8gcmVzb2x2ZSBjb25mbGlj dHMgYmV0d2VlbiB0aGUNCiAgICBwcmluY2lwbGVzLCBhIF9mZXdfIGNhc2VzIGhhdmUgYmVl biB3b3JrZWQgb3V0OuKAmQ0KDQogICAgKEVtcGhhc2lzIG9uIF9mZXdfIGFkZGVkKQ0KICAq IOKAmFdoZW4gdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gZG8gc29tZXRoaW5nLCBj aG9vc2Ugd2hpY2hldmVyDQogICAgbWV0aG9kDQogICAgaXMgdGhlIHNpbXBsZXN04oCZDQoN CiAgICAoSXQgc2F5cyDigJhzaW1wbGVzdOKAmSBpbnN0ZWFkIG9mIOKAmG1vc3QgY29udmVu aWVudOKAmSwgYnV0IHdoYXRldmVyLikNCg0KPiAgICBJIGFsc28gZXhwYW5kIGEgbGl0dGxl IG9uIHRoZSBiZW5lZml0cyBhbmQgZHJhd2JhY2tzIG9mDQo+IHRoZXNlIGFwcHJvYWNoZXMg YXMgeW91IHdvdWxkIHdoZW4gZGVzY3JpYmluZyBkZXNpZ24gcGF0dGVybnMuDQoNClRoaXMg aXMgYWxzbyBkb25lIGluIG15IHBhdGNoLiBFLmcuLA0KDQogICog4oCYVGhlcmUgYXJlIGEg ZmV3IGJlbmVmaXRzIGZvciBzbmlwcGV0cyBoZXJlOg0KDQogICAgV2hlbiB1c2luZyBzbmlw cGV0cywgdGhlIGJ1bmRsZWQgbGlicmFyeSBkb2VzIG5vdCBvY2N1ciBpbiB0aGUgc291cmNl DQoNCiAgICByZXR1cm5lZCBieSBAY29kZXtndWl4IGJ1aWxkIC0tc291cmNlfSwgc28gdXNl cnMgYW5kIHJldmlld2VycyBkbyBub3QNCg0KICAgIGhhdmUgdG8gd29ycnkgYWJvdXQgd2hl dGhlciB0aGUgYnVuZGxlZCBsaWJyYXJ5IGNvbnRhaW5zIG1hbHdhcmUsDQoNCiAgICB3aGV0 aGVyIGl0IGlzIG5vbi1mcmVlLCBpZiBpdCBjb250YWlucyBwcmUtY29tcGlsZWQgYmluYXJp ZXMgLi4uIFRoZXJlDQoNCiAgICBhcmUgYWxzbyBsZXNzIGxpY2Vuc2luZyBjb25jZXJuczog aWYgdGhlIGJ1bmRsZWQgbGlicmFyaWVzIGFyZSByZW1vdmVkLA0KDQogICAgaXQgYmVjb21l cyBsZXNzIGxpa2VseSB0aGF0IHRoZSBsaWNlbnNpbmcgY29uZGl0aW9ucyBhcHBseSB0byBw ZW9wbGUNCg0KICAgIHNoYXJpbmcgdGhlIHNvdXJjZSByZXR1cm5lZCBieSBAY29tbWFuZHtn dWl4IGJ1aWxkIC0tc291cmNlfSwgZXNwZWNpYWxseSBpZg0KDQogICAgdGhlIGJ1bmRsZWQg bGlicmFyeSBpcyBub3QgYWN0dWFsbHkgdXNlZCBvbiBHdWl4IHN5c3RlbXMuQGZvb3Rub3Rl e1RoaXMNCg0KICAgIGlzIEBlbXBoe25vdH0gYSBjbGFpbSB0aGF0IHlvdSBjYW4gc2ltcGx5 IGlnbm9yZSB0aGUgbGljZW5zZXMgb2YNCg0KICAgIGxpYnJhcmllcyB3aGVuIHRoZXkgYXJl IHVuYnVuZGxlZCBhbmQgcmVwbGFjZWQgYnkgR3VpeCBwYWNrYWdlcyAtLSB0aGVyZQ0KDQog ICAgYXJlIGxlc3MgY29uY2VybnMsIG5vdCBub25lLn0NCg0KICAgIEFzIHN1Y2gsIHNuaXBw ZXRzIGFyZSByZWNvbW1lbmRlZCBoZXJlLuKAmQ0KDQogICog4oCYRm9yIHBoYXNlcywgdGhl IHByb2JsZW0gaXMgdGhhdCBwaGFzZXMgZG8gbm90IGluZmx1ZW5jZSB0aGUgcmVzdWx0IG9m DQogICAgQGNvbW1hbmR7Z3VpeCBidWlsZCAtLXNvdXJjZX0u4oCZDQoNCj4gWW91ciBwcm9i bGVtLT5zb2x1dGlvbiBhcHByb2FjaCBpbnN0ZWFkIGxlYXZlcyBwZW9wbGUgd29uZGVyaW5n IHdoZW4NCj4gdGhlaXIgcGFydGljdWxhciB1c2UgY2FzZSBoYXMgbm90IGJlZW4gZGVzY3Jp YmVkLg0KU2VlIG15IHJlcGx5IHRvIOKAmEFuZCBpZiB0aGV5IGRvbid0IGZpbmQgYW55dGhp bmcsIHRoZXkgc2VlIHRoZSBoYW5keSBsaXR0bGUNCmxpbmUgYXQgdGhlIGJvdHRvbSBzYXlp bmcgInVzZSB3aGF0ZXZlciB5b3UgdGhpbmsgaXMgY29udmVuaWVudOKAmS4NCj4gSXQgZ2l2 ZXMgdGhlbSBhIHNvbHV0aW9uIHJhdGhlciB0aGFuIHRoZSB0b29scyB0byBidWlsZCBzb2x1 dGlvbnMgd2l0aC4NCg0KSXQgZG9lcyBnaXZlIHRoZSB0b29sczogc25pcHBldHMsIHBhdGNo ZXMgYW5kIHBoYXNlcy7CoCBBbmQgYXMgdG9vbHMNCmZvciBkZWNpZGluZyBiZXR3ZWVuIHRo ZSB0aHJlZSBmb3Igbm90LXlldC1kb2N1bWVudGVkIGNhc2VzLCB0aGVyZSBhcmUNCnRoZSBn dWlkaW5nIHByaW5jaXBsZXMuwqAgQXMgYSBkZW1vbnN0cmF0aW9uIG9uIGhvdyB0byB1c2Ug dGhlc2UgZ3VpZGluZw0KcHJpbmNpcGxlcywgdmFyaW91cyBjYXNlcyBoYXZlIGJlZW4gd29y a2VkIG91dCBiYXNlZCBvbiB0aGUgZ3VpZGluZw0KcHJpbmNpcGxlcy4NCg0KU3VtbWFyaXNl ZCwgaXQgZ2l2ZXMgYm90aCB0aGUgdG9vbHMgX2FuZF8gdGhlIHNvbHV0aW9ucy4NCg0KQWxz bywgImdpdmluZyB0aGUgdG9vbHMgdG8gYnVpbGQgc29sdXRpb25zIHdpdGgiIGRvZXMgbm90 IGhlbHAgd2l0aCB0aGUNCnByb2JsZW0gdGhhdCBJIGFpbWVkIHRvIHNvbHZlIC0tIHRoZXJl IHdhcyBkaXNhZ3JlZW1lbnQgb24gd2hhdCB0aGUNCmFwcHJvcHJpYXRlIHRvb2xzIGFyZSAo c2VlOiBTaGVwaGVyZCksIHNvIGl0IG5vdCBqdXN0IG5lZWRzIHRvIGdpdmUgdGhlDQp0b29s cywgYnV0IGFsc28gdGhlIHNvbHV0aW9ucy4NCg0KR3JlZXRpbmdzLA0KTWF4aW1lDQo= --------------fiI7W13Wn7SOCrw0E7hFeOyo Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

On 07-09-2022 10:09, Liliana Marie Prikler wrote:

Am Dienstag, dem 06.09.2022 =
um 22:21 +0200 schrieb Maxime Devos:

        
We also avoid spelling o=
ut the non-free filename where possible,
preferring keep lists over remove lists, which this kind of patches
would be.
Should we? I'm not seeing =
the point of that. I have not experienced
any such avoidance myself, see e.g. 'tennix', 'neverball' and
'shogun'.  It is, to my knowledge, not forbidden to mention non-free
software by name in code, as long as its not a recommendation
(explicit or implied).
Indeed,  there is no hard ru=
le, hence "avoid" rather than "forbid".

What I also meant is, that to my knowledge there is no soft rule either.

Again, why should we avoid this, what's the point of that?


          
+@subsubsection Fixing=
 technical issues (compilation errors, test
failures, other bugs ...)
[...]
I am pretty sure that mo=
st of these are *not* done in snippets, but
rather phases, if they only affect Guix.=C2=A0 In particular, grep for
failing-tests and you will find a few phases disabling them.
I do not think that ignori=
ng a test counts as a bug fix.=C2=A0 I'll add it
to this subsubsection, at cost of some additional length.
I do think it counts as "fix=
ing technical issues such as test
failures".
How does ignoring a test fix the technical issue identified by the test
(sometimes, the technical issue being a bug in the test itself)?
In fact, as far as files=
 that will not be installed are concerned,
I think phases ought to be preferred, because they're easier to
take away if an actual fix is made.
I do not see a difference =
in hardness/easyness between removing a
phase and removing a snippet (both are just a matter of opening
an editor, pointing it at gnu/packages/... and removing a few lines),
though I do consider removing a patch to be slightly harder (because
gnu/local.mk is easy to forget).
There still is the differenc=
e that phases are clearly delimited while
snippets are a block of code that shouldn't get too large.

Snippets are delimited clearly as well, though, with the 'snippet' field?

And the limitations of snippet length and phases length are the same
-- no limits, though conciseness is appreciate as always.

For the store path embed=
ding, that's a rather roundabout way of
saying that contributers *ought to* embed store paths of certaing
things, such as commands invoked via exec et al.
It's not? It's kind of implied, yes, but the purpose isn't being a
'you should embed store paths' (subsub)section, but rather, 'if you
go embedding store paths (at least for fixing a technical issue), do
it in a phase'.

I'm not following what the complaint is, I suppose a section could be
added somewhere to properly document the 'embedding store file names'
practice, and insert a cross-reference, but that wasn't the purpose
of the patch and going by later responses, you seem opposed to making
things longer.

The alternative would be to remove this information, but then
valuable information would be lost (there had been some cases where
store file names were embedded in origin).
I think my version at least =
hinted at this practice in a more concise
way, so it's not impossible to mention. [...]

I agree it's possible -- as I replied previously:

I suppose a section could =
be added somewhere to properly document the
'embedding store file names' practice, and insert a cross-reference,
      
I don't think documenting the how of the practice should be done in this section, properly explaining 'search-input-file' / 'search-input-directory',
'inputs / native-inputs', 'bash' being an implicit input but you still
have to add it to 'inputs' in some cases because of cross-compilation,
this-package-input and this-package-native-input ... would make the
subsubsection a bit too long I think, distracting from other situations,
hence the proposal for a cross-reference.

How about leaving the 'how to embed store file names' for a separate
documentation patch and section, adding a cross-reference later?

Otherwise, if the stor=
e
+file name were embedded in the source, the result of
@command{guix build
+--source} would be unusable on non-Guix systems and also likely
unusable
+on Guix systems of another architecture.
Why are you repeating a =
guiding principle?
I'm showing why, in this c=
ase, a phase must be used, by noting that
not doing so would be contrary to one of the principles.

If not repeating the principle is desired, I could perhaps number
them, and refer to the principles by number instead of restating
them? Would reduce the length a little.
I think calling back to a gu=
iding principle in and of itself shows that
the section has grown too long to remember it by the point you come to
this example,
This has nothing to do with length and remembering, but rather with explaining why a phase must be used -- to explain that, I state which
principle applies (as mentioned previously). If I removed the
explanations, I would just be stating how to do things, without giving
a logical reasoning on the 'why'.
and I think that's more prob=
lematic than merely the
callback.  If you didn't need to divide this into subsubsections, you
could introduce the guiding principles in a way that feels more
natural.
I consider it more natural to have the 'guiding principles' _before_ the
concrete cases, as they are meant to be 'guiding' and 'principles'.=C2= =A0 It's
like 'starting from first principles', there introducing the first principles
as you go is ad-hoc.

The guiding principles also need to be outside the examples, in case
one of the examples doesn't apply to the packager's use case, such<= br> that they can fall-back to the guiding principles.

Also, in your patch you are dividing things in subsubsections as well,
just under a different name and different representation (table entries
in a subsection), as mentioned previously.

+@subsubsection Adding=
 new functionality
+To add new functionality, a patch is almost always the most
convenient
+choice of the three -- patches are usually multi-line changes,
which
are
+convenient to do with patches and inconvenient to do with phases
or
+snippets.
Uhm, what?=C2=A0 Patches=
 are the preferred form of patches?
No, I meant that patches are (usually) the preferred method for
adding new functionality, and that multi-line changes are convenient
to do with patches.=C2=A0 =E2=80=98which=E2=80=99 refers to the =E2=80=98=
multi-line changes=E2=80=99 here,
not =E2=80=98patches=E2=80=99.
I still find this wording ve=
ry confusing.  Perhaps "To add new
functionality, a patch is almost always the best choice.  For one, it
is likely that the new functionality requires changing multiple lines
of source code, which is more convenient to do with a patch than with a
snippet.  Further, patches can be taken from and submitted to upstreams
more easily.  If your patch has not been submitted to upstream,
consider doing so."
It loses some information (that patches are preferred) and
(after re-adding the conclusion) is more verbose, which appears
to be considered very important.
[...]
Overall, I'm not convinced that we have enough guiding principles
to call them that,
I don't think there's any lower limit on how many guiding principles
to have, except for perhaps 2 (because otherwise it should have been
singular or there aren't any).=C2=A0 At how few guiding principles stop
the guiding principles from being guiding principles for you, and
why?

For example, on <https://www.gnu.org/philosophy/free-sw=
=2Ehtml>, four=20
guiding principles are mentioned (which are named 'essential
freedoms' there), and
<https://en.wikipedia.org/wiki/Guiding_Principles&=
gt; has 5 =E2=80=98Guiding=20
Principles=E2=80=99.
An enumeration ought to have=
 at least three elements (otherwise it's
just a pair), and I think if we do proper counting and omit no-
brainers, such as the "only free software" part that has already been
mentioned, we come very close to skirting that line.
The "only free software" is mentioned elsewhere, yes, but it is one of the principles for deciding between snippets, phases and patches.<= br> While you call it a no-brainer, it is sometimes neglected, so it sounds
important to me to explicitly list it.

Merging the 3th and 4th @item, I count 4 principles, so it fits with
an enumeration.

Also, I'm not following your point here -- your complaint was that they
aren't guiding principles (based on the number of them), but your response is that they might not form an enumeration?=C2=A0 They are= named
the guiding principles, not the guiding enumeration.=C2=A0 What hav= e
enumerations to do with anything?

which (along with its sh=
eer length) is my main
complaint with the way you've phrased things.
(I'm assuming "its =3D the patch as a whole" here)

I could remove another section of the manual to compensate for the
additional length, but I doubt that's what you intended.=C2=A0 I do not
see the problem with the sheer length -- we have a bit of a
documentation problem in Guix, there is lots of useful information
that is currently undocumented.
I do not think there have been any complaints about the manual being
too long, if anything, it's too short.
I personally tend towards "l=
ess verbose", hence my complaint of
describing something with many words that could be described with
fewer.  A section can still be too long while the chapter around it is
too short.

Do you have anything in particular in mind?

I've written some document=
ation, it was originally a bit hard to
follow so in a next version I've restructured it a bit and explained
more, this restructuring and explanation entailed some additional
length.

There had been some proposals for additional cases to document, so
they were added, increasing the length.=C2=A0 You have added new
information is your patch, it was considered useful so I've
integrated some of it in my patch, increasing the length.=C2=A0 (I didn't=

integrate all of the new parts, if I did, it would increase even
further.=C2=A0 (If desired, in can integrate the rest, at cost  of some
time.)).
My patch did not just state =
some things you missed, it also omitted
things that I think are either not necessary or probably better
documented elsewhere.
What particular things do you have in mind, and where do you
think they should better be documented?=C2=A0 I can move things
around a bit and add cross-references.
I do not see what the prob=
lem is with additional length as long as
this additional length comes with additional useful information and
the manual is well-structured (e.g. with (sub)(sub)sections, chapters
and indices) -- we do not have a page limit.

At worst, perhaps the same information could perhaps be encoded with
fewer words? I could compare the two patches to see which one
formulates certain information in the fewest words, and choose the
least verbose of the two for each piece of information that is
present in both?

Also, comparing the two patches, my patch has 40 more lines, but
about 25 of them are for noting the guiding principles (which are
absent in your patch).
Compensating for that, the patches are about the same length, so I do
not think that 'sheer length' is accurate here.
25 lines calling back to ear=
lier information are, imho, an indicator
that the section is too long.  Imagine you'd have twenty-five function
calls to guiding_principles(n) in your program =E2=80=93 at some point, y=
ou'd
try to cache those.
(define cached-guiding-principles
=C2=A0 (delay (list (guiding-principle-0)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 [...]
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (guiding-principle-24))))

Caching the guiding principles does not reduce the length.

I don't see the problem with calling back to earlier information.<= br> Also, it isn't earlier information, there is no nice list of guiding
principles anywhere else.

Going down to subsubsect=
ions just to find out where patches are
appropriate, is imho overkill.
The 'going down to subsubsection' is the case for your patch too,
though?  In my case, it's a subsubsection, in your case it's a table
entry inside a subsection, both are the same level of nesting.
These are still two very dif=
ferent kinds of nesting.  A table fits onto
a (virtual) page more easily than several subsections.
I suppose table items might take two less line or so less than
subsubsections, but I don't think that's sufficient reason to step away from a nice section structure.
Also, it's a matter of dif=
ferent structure -- in my v2 and v3 patch,
I have a 'problem -> solution' structure -- the idea is that the
packages has a problem, they look at the section, they read the
subsubsection names, select the
subsubsection that matches their problem and read the solution -- in
short, the idea is to provide a solution to the problem.

Your structure is the other way around -- for solutions (patches,
snippets, phases), it gives the permitted problems to apply it to.

So yes, your patch is more convenient for finding out where patches
are appropriate.=C2=A0 I do not see the benefit of that though -- a new
contributor packaging a thing wouldn't know in advance which
solutions could be appropriate for them (your 'solution -> problem'
patch?), rather, they start with a problem and are searching for an
appropriate solution (my problem->solution patch).
I think this idea can be deb=
unked pretty easily.  If I give you a
hammer and I tell you "this is a hammer, you can use it to put nails
into a wall", and you have a nail and you want to put it into a wall,
you won't go "oh no, however will I put this nail into a wall?" =E2=80=93=
 you
will simply use the hammer to do so.
The patch does this, currently.=C2=A0 It already proposes a number of= hammers
(patches, snippets and phases) and purposes (adding new functionality,
fixing technical issues, unbundling, ...).

Also, the scenario "oh no, however will I put this nail into a wall"
actually happened -- see the Shepherd discussion, where there was a lot of disagreement on how nails (=3D small work-around in the Makefile)
should be put in walls (=3D patches, snippet, phase?).=C2=A0=C2=A0 = It was the whole
reason to start writing a documentation patch.

Of course, for this to work =
I
also have to tell you *how* to use a hammer to put nails into a wall,
but that's exactly what I did in my patch by inserting the right notes
into the Guix manual.
Also already the case.
My solution->problem appr=
oach has the benefit, that folks can just go
over all the solutions, check if their problem fits, and apply the one
that says "here, use this".

A problem->solution structure is useful for that too?

And it already lists all the solutions (snippets, phases and patches)
and information to decide whether the solution fits their problem (the guiding principles, and the worked-out cases).

And if they don't find anyth=
ing, they see
the handy little line at the bottom saying "use whatever you think is
convenient".
Nowhere did the patch imply that the listed cases were all cases. In fact,
in two places in the introduction it is implied that the examples are not
exhaustive, and that they can choose according to convenience:
  • =E2=80=98To make things more concrete and to resolve conflicts = between the
    principles, a _few_ cases have been worked out:=E2=80=99

    (Emphasis on _few_ added)
  • =E2=80=98When there is more than one way to do something, choos= e whichever method
    is the simplest=E2=80=99

    (It says =E2=80=98simplest=E2=80=99 instead of =E2=80=98most conv= enient=E2=80=99, but whatever.)
  I also expand a little on =
the benefits and drawbacks of
these approaches as you would when describing design patterns.

This is also done in my patch. E.g.,

  • =E2=80=98There are a few benefits for snippets here:

    When using snippets, the bundled library does not occur in=
     the source
    returned by @code{guix build --source}, so users and revie=
    wers do not
    have to worry about whether the bundled library contains m=
    alware,
    whether it is non-free, if it contains pre-compiled binari=
    es ... 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 @command{guix build --sourc=
    e}, especially if
    the bundled library is not actually used on Guix systems.@=
    footnote{This
    is @emph{not} a claim that you can simply ignore the licen=
    ses of
    libraries when they are unbundled and replaced by Guix pac=
    kages -- there
    are less concerns, not none.}
    
            
    As such, snippets are recommended here.=E2=80=99
  • =E2=80=98For phases, the problem is that phases do not influenc= e the result of
    @command{guix build --source}.=E2=80=99
Your problem->solution ap=
proach instead leaves people wondering when
their particular use case has not been described.
See my reply to =E2=80=98And if they don't find anything, they see th= e handy little
line at the bottom saying "use whatever you think is convenient=E2=80= =99.
It gives them a solution rat=
her than the tools to build solutions with.

It does give the tools: snippets, patches and phases.=C2=A0 And as= tools
for deciding between the three for not-yet-documented cases, there are
the guiding principles.=C2=A0 As a demonstration on how to use thes= e guiding
principles, various cases have been worked out based on the guiding
principles.

Summarised, it gives both the tools _and_ the solutions.

Also, "giving the tools to build solutions with" does not help with the
problem that I aimed to solve -- there was disagreement on what the
appropriate tools are (see: Shepherd), so it not just needs to give the
tools, but also the solutions.

Greetings,
Maxime
--------------fiI7W13Wn7SOCrw0E7hFeOyo-- --------------lT8JlkWSD5VQXD90Dz1boRGV 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----- --------------lT8JlkWSD5VQXD90Dz1boRGV-- --------------N4yS7ui6DXqk1oJogkEaW0eQ-- --------------bYZznqRF4e00yv03Q3Otn4Cv Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYxnOKwUDAAAAAAAKCRBJ4+4iGRcl7oE4 AQDtdxmMVTnJacU9WxjP4u0o+5DrGsvJxnT41XavjvSmfgD/UucFg4ulPdrlNij3rvlwEFU2y+1/ /n00uv4kVb+vswI= =7etQ -----END PGP SIGNATURE----- --------------bYZznqRF4e00yv03Q3Otn4Cv--