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--