From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id yIjHFP5Nt2AF5QAAgWs5BA (envelope-from ) for ; Wed, 02 Jun 2021 11:23:10 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 6MgREP5Nt2CWZgAA1q6Kng (envelope-from ) for ; Wed, 02 Jun 2021 09:23:10 +0000 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 D79E42DAD9 for ; Wed, 2 Jun 2021 11:23:09 +0200 (CEST) Received: from localhost ([::1]:55168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1loN5g-00071j-W4 for larch@yhetil.org; Wed, 02 Jun 2021 05:23:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1loN5a-0006wS-76 for guix-patches@gnu.org; Wed, 02 Jun 2021 05:23:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:55573) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1loN5Z-0005se-Tb for guix-patches@gnu.org; Wed, 02 Jun 2021 05:23:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1loN5Z-0006tR-OB for guix-patches@gnu.org; Wed, 02 Jun 2021 05:23:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48696] [PATCH 0/3] Documenting commit reverts and revocation Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 02 Jun 2021 09:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48696 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Christopher Baines Cc: 48696@debbugs.gnu.org Received: via spool by 48696-submit@debbugs.gnu.org id=B48696.162262576326456 (code B ref 48696); Wed, 02 Jun 2021 09:23:01 +0000 Received: (at 48696) by debbugs.gnu.org; 2 Jun 2021 09:22:43 +0000 Received: from localhost ([127.0.0.1]:38886 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1loN5H-0006sc-B6 for submit@debbugs.gnu.org; Wed, 02 Jun 2021 05:22:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35278) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1loN5F-0006sM-Iv for 48696@debbugs.gnu.org; Wed, 02 Jun 2021 05:22:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40764) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1loN5A-0005XO-B4; Wed, 02 Jun 2021 05:22:36 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=58798 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1loN5A-0004ry-2p; Wed, 02 Jun 2021 05:22:36 -0400 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20210527123554.4267-1-ludo@gnu.org> <20210527123554.4267-2-ludo@gnu.org> <87y2c0f0i4.fsf@cbaines.net> <87eedpet69.fsf@gnu.org> <87k0ngfra8.fsf@cbaines.net> Date: Wed, 02 Jun 2021 11:22:34 +0200 In-Reply-To: <87k0ngfra8.fsf@cbaines.net> (Christopher Baines's message of "Sun, 30 May 2021 11:29:51 +0100") Message-ID: <87tumgwrhh.fsf_-_@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1622625790; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: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; bh=eNtElud3peEyFI56yjhQOUI1lt+tV2hT+uttlWcKaMk=; b=W7st84CqIaXVcGcvArYq2jloUXiR7USrCEErMlOZJF29+Pg/HFJTqOzDtIjNA6lOT84+08 GcIqCMbPYNjv+k4Cl1nc6IN1Z0gHIVffKRdhlob4S9lrTmGqYuGoEjtTfH/1jbPdkctQiB dVLv0KFvp7YgPEHM2lh8H6YKptIL2ASi+jO3l7HgXzW2TbHYpopLqAhl3cxitGEmAGAsA3 OtWHXXpWpgKyYe6s0eVqZfzETwTcGrjCe7+TsV8iBT9zLHVKVMbsRfNqJZ1bJtP3hgRB27 ksMZRqzQdQMOHc4iw20bTSEOI1OpioJRDSaRpyX3XKo4Wapcqu3/cEfRSl1L9g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1622625790; a=rsa-sha256; cv=none; b=bOONCTrtzXVXu27Csz8T62lzTLBSI8jOz/pBBHtx7Ywhm/pUZcMkf15RlgcpR5z/agCVvP ZrjfLqRvxBPrK6X44KsHjZ1t8XChT3lENRcAQ2T8+a5U6x+sGK/QobZLpU2Pdo/hXykx0C x4nngfexnkWRvKCvVA2G1dszJmmH7HR1gx0LgmuhMZeT2KT0Mn3AlLUuHUfj4spAFDF6xE eddUI0MEBQSxjjGx1hJGUI9y4b8RBCLeOv0JgsRnQECIHHoA1Lrae8/DIviixLJjPCDHHP 5klW97SitSFxQOrgE4pLsW3US92wlN/l4+a2LOoYHPBG8j8S4eFYP2QtJFq27A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -2.93 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: D79E42DAD9 X-Spam-Score: -2.93 X-Migadu-Scanner: scn0.migadu.com X-TUID: 45u29Cg9WngC Hi Chris, Christopher Baines skribis: > Ludovic Court=C3=A8s writes: [...] >> I think you have a point though. Could you propose different wording >> for this section? >> >> (My goal for this section was to (1) spell out circumstances that may >> lead to reverts, (2) explain the implications of committer >> accountability, and (3) define our community standards in terms of >> focusing on addressing issues and not on blaming individuals.) > > What I would like to see is more like this: > > Problems happen, while minimising there occurrence is important, it's > also important to respond to problems in a useful way. There are two > priorities, mitigating the impact and understanding what happened in > order to reduce the chance of similar incidents in the future. The > responsibility for both these things primarily lies with those > involved, but like everything this is a group effort. > > When working to mitigate the impact of a problem, obviously the > response is very much dependent on the situation. If it's possible to > fix things that are broken, that's preferable. If that's infeasible, > then promptly reverting changes to return to a working state is > justified (as with any commit, note why the change is being made in > the commit message). > > Once the problem has been dealt with to some extent, then it's the > responsibility of those involved to make sure the situation is > understood. If you are working to understand what happened, focus on > gathering information and avoid assigning any blame. Do ask those > involved to describe what has happened, don't ask them to explain the > situation, even if you think they have something to explain, as this > implicitly blames them, which is unhelpful. Accountability comes from > a consensus about the problem, learning from it and improving > processes so that it's less likely to reoccur. > > I'm not sure how much needs saying about reverts, but I did include > something. > > For committer accountability, that's where I'm talking about the > "responsibilities of those involved". I guess that's a little vague, but > what I'm trying to do there is trying to capture the group of relevant > people, for example, the person who proposed the breaking change, the > committer who pushed it, and the other person that reverted it. > > In terms of trying to focus on addressing issues and not blaming > individuals, I think just avoiding language that implicitly blames > people would be a big step forward. Whether that's enough, I'm unsure. OK. I like what you wrote; I think it addresses #3 and a bit of #2 above, but I find a bit too abstract, not sufficiently hands-on (when can commits be reverted? what=E2=80=99s the timeframe? who=E2=80=99s involved?)= , and lacking examples. =E2=80=9CProblems happen=E2=80=9D sounds unspecific to me (it re= minds me of Forest Gump :-)) and I=E2=80=99m uncomfortable with the passive voice that = tends to erase individuals. @subsection Addressing Issues =20=20 Peer review (@pxref{Submitting Patches}) and tools such as @command{guix lint} (@pxref{Invoking guix lint}) and the test suite (@pxref{Running the Test Suite}) should catch issues before they are pushed. Yet, commits that ``break'' functionality might occasionally go through. When that happens, there are two priorities: mitigating the impact, and understanding what happened to reduce the chance of similar incidents in the future. The responsibility for both these things primarily lies with those involved, but like everything this is a group effort. =20=20 Some issues can directly affect all users---for instance because they make @command{guix pull} fail or break core functionality, because they break major packages (at build time or run time), or because they introduce known security vulnerabilities. =20=20 @cindex reverting commits The people involved in authoring, reviewing, and pushing such commit(s) should be at the forefront to mitigate their impact in a timely fashion: by pushing a followup commit to fix it (if possible), or by reverting it to leave time to come up with a proper fix, and by communicating with other developers about the problem. =20=20 If these persons are unavailable to address the issue in time, other committers are entitled to revert the commit(s), explaining in the commit log and on the mailing list what the problem was, with the goal of leaving time to the original committer, reviewer(s), and author(s) to propose a way forward. =20=20 Once the problem has been dealt with, it is the responsibility of those involved to make sure the situation is understood. If you are working to understand what happened, focus on gathering information and avoid assigning any blame. Do ask those involved to describe what happened, do not ask them to explain the situation---this would implicitly blame them, which is unhelpful. Accountability comes from a consensus about the problem, learning from it and improving processes so that it's less likely to reoccur. There=E2=80=99s still =E2=80=9Cthe people involved=E2=80=9D, =E2=80=9Cthese= persons=E2=80=9D, and =E2=80=9Csuch commits=E2=80=9D (I removed =E2=80=9Cfaulty=E2=80=9D), because I couldn=E2=80=99t think of a= way of avoiding these without making the text too abstract or dismissing the idea entirely (the idea that if I push a breaking change, others can expect me to be spend time =E2=80=9Cmitigating the effort=E2=80=9D). Also, I think it=E2=80=99s useful to distinguish between =E2=80=9CI revert = my commit=E2=80=9D and =E2=80=9Csomeone reverts my commit=E2=80=9D due to their different soci= al and emotional implications (our goal is precisely to suggest that these implications are out of place in this group effort that Guix is, but we can=E2=80=99t deny that they preexist). WDYT? Thanks for taking the time to work on it! Ludo=E2=80=99.