From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id Lg4pA/PvKmMmrj0AWB0awg (envelope-from ) for ; Wed, 21 Sep 2022 07:05:23 -0400 Received: by simark.ca (Postfix, from userid 112) id 001AA1E112; Wed, 21 Sep 2022 07:05:22 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=YGjsYcRP; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 5323C1E07B for ; Wed, 21 Sep 2022 07:05:22 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 735A53857C50 for ; Wed, 21 Sep 2022 11:05:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 735A53857C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1663758321; bh=G6mU3+cP/CF8RIG+ejT8dnBUWaGbNTbThYOnwVJsFK8=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=YGjsYcRPbR93Qy6+pPtOLwJx+QoLqfNDZbi93ZckNiQQb9QuUxt/vM0pv6DMBBqAr F4SrakUiiP7WFjj1lbWJ1rVXdELGSaMrxMHjoXSGwpLgG1sA0cBgaNXd5ndqw/tOyZ VT0xAMLAQU8CPaoLpZNrHUkRBGmVmhxxEmEvIiIA= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 7A989385840C for ; Wed, 21 Sep 2022 11:04:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7A989385840C Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-124-UVs3a4VsMt2Ps86SBVZZpg-1; Wed, 21 Sep 2022 07:04:50 -0400 X-MC-Unique: UVs3a4VsMt2Ps86SBVZZpg-1 Received: by mail-ed1-f70.google.com with SMTP id dz21-20020a0564021d5500b0045217702048so4090690edb.5 for ; Wed, 21 Sep 2022 04:04:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:subject:from:to:content-language :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date; bh=G6mU3+cP/CF8RIG+ejT8dnBUWaGbNTbThYOnwVJsFK8=; b=dZKrXmifaBRuRgDrKToOJpUUuFbZ0vp3LnhMfTMdii6Gy1Pv/3M53ATo3xlo+CCVqM rreYX4UaZQZKaa8/mm1Hzeeo3ZQBEc0ohex2jqqknTGJvl/xmmKMUEk8hthR8S1RGsD8 34AZaoYz/w3xykeoyFYyemAUmnn19+U9V6blJI8Y6fAcqrvuUzO6Avflbxcw/nDW3THN bVdTIgn8fvzAuOsbk0W2d16/bkyCJ3h5jyhmCzcAHAwATYOacPYCeKMOfJzzHyeoYRTl jeztqcGSNDo0JOfVB1idcL6p+kn4YAbwxUJ7L/HTwHVNcKCKVL/KH/UjEQGik2POw3Pa 018A== X-Gm-Message-State: ACrzQf1CjuS+qTkSI1aYD+oRhg4mHSp1qSTqqOL6ztUQdM0CqN3YNaKn eiwmX9heGbYHwdSataPJCv2Zlg+ATi+sUvmDdyLXaK8fpH2ErcjBeAeoGRUZ5TVPrtQBWgWlGae yxWtkpRKnEgpXNTBObyYB2nGmvpDtO0ytfUBSVc3lUTQRA5vrrmNvFOyyXRHtqA== X-Received: by 2002:a17:906:7944:b0:73c:838:ac3d with SMTP id l4-20020a170906794400b0073c0838ac3dmr20480127ejo.242.1663758288946; Wed, 21 Sep 2022 04:04:48 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4e8LLppqdXprkf+Mo87HfD8ES59Fmpijo3bPFK1fyyrUUslYJ9ubXoBTUuMkc9eD2sdnfrmg== X-Received: by 2002:a17:906:7944:b0:73c:838:ac3d with SMTP id l4-20020a170906794400b0073c0838ac3dmr20480101ejo.242.1663758288551; Wed, 21 Sep 2022 04:04:48 -0700 (PDT) Received: from [192.168.0.45] (ip-213-220-232-121.bb.vodafone.cz. [213.220.232.121]) by smtp.gmail.com with ESMTPSA id lb3-20020a170907784300b007306a4ecc9dsm1206908ejc.18.2022.09.21.04.04.47 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Sep 2022 04:04:47 -0700 (PDT) Message-ID: Date: Wed, 21 Sep 2022 13:04:47 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 To: gdb@sourceware.org Subject: Proposal: Add review tags to patch review workflow. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: gdb@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Bruno Larsen via Gdb Reply-To: Bruno Larsen Errors-To: gdb-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb" TL;DR: I want to introduce the usage of 3 new review tags to the GDB patch review workflow. They are: Reviewed-by, Approved-by and Tested-by. * Reviewed-by would be used by reviewers such as myself, who may look over the code but don't have the authority to approve it for pushing, essentially working as a +1. * Approved-by would be used by maintainers who have the authority to approve code for pushing when they want to do so. Referenced as a +2 later in this email. * Tested-by would be used by new contributors or reviewers who aren't familiar with the code touched by a given patch, but who are able to verify that the test doesn't introduce regressions. I will now dive into motivation and specifics of the proposal. ---- Motivation: As a new contributor, I see 4 main issues with the current patch review workflow: 1. It is sometimes hard to be sure that the reviewer has approved your patch, exemplified by a few recent patches which were already approved and were still pinged by their authors, such as https://sourceware.org/pipermail/gdb-patches/2022-August/191474.html 2. Patch review as it is now looks rather thankless. Sometimes a patch may go through various rounds of review, taking a lot of time from the contributor and reviewer, but if the latter never suggested enough code to warrant a Co-Authored-By tag, the only person mentioned at the final commit will be the original writer. I have personally wanted to thank reviewers who were especially helpful in understanding issues. 3. As a new contributor, it is not always obvious when a LGTM means the patch can be pushed. While one can always check the maintainers file, it would be nice if this information was baked into a review. 4. On the other hand, it's not always obvious to new reviewers (non-approvers) that their LGTM makes any difference, possibly discouraging them from giving positive feedback and making the community feel less lively than it is. Adding Reviewed-by (R-b) tags by itself would solve the first 2 issues, since it only is given once the review is finished and the patch is good to go from the reviewer's perspective. Approved-by (A-b) tags were mentioned during the GDB BoF at Cauldron 2022, as a way to fix issues 3 and 4, along with allowing for maintainers to give only +1, instead of +2, when they are not sure about a certain change. Tested-by (T-b) were also mentioned at the BoF as a way to give another option for new reviewers, especially if they have different hardware or setups. The workflow: The basic usage is as simple as I explained above, if all a reviewer is comfortable with doing is confirming that the error is fixed and testing for regression, they can reply with a T-b tag; if they are comfortable sharing a positive opinion on the proposed code, but can't approve or are not sure if the patch should be approved, they can reply with an R-b tag; and if they wish to approve a patch, they reply with A-p. Questions arose when thinking of new versions of a given patch. The workflow used by Glibc, which inspired great part of this proposal, makes it so the tags are dropped only when a patch has been "sufficiently changed". Cosmetic things like fixing typos or moving a proposed function from one place to another would not invalidate R-b tags, while reworking the solution would. The submitter has some space to decide that they think the patch has changed enough to warrant a new review (and invalidate the previous R-b), or the reviewer may ask their tag to be removed if they disagree with a change. In case the explanation is not clear, the follow example shows how these would be used in a fictional patch that requires 3 versions before it is ready. --- From: newcontributorcom Subject: [PATCH] Fix GDB's behavior I fixed bug number PR/XXXXX by making GDB kick and scream instead of failing silently. --- From: newreviewercom Subject: Re: [PATCH] Fix GDB's behavior I'm not sure how good this solution is, but I verified that in my setup this doesn't regress anything and fixes the issue. Tested-by: New Reviewer reviewercom> --- From: otherreviewercom Subject: Re: [PATCH] Fix GDB's behavior The solution looks good, but I have some style nits, see below. --- From: newcontributorcom Subject: [PATCHv2] Fix GDB's behavior I fixed bug number PR/XXXXX by making GDB kick and scream instead of failing silently. Tested-by: New Reviewer reviewercom> --- From: otherreviewercom Subject: Re: [PATCHv2] Fix GDB's behavior Thanks, this looks good now! Reviewed-by: Other Contributor contributorcom> --- From: approvergdbcom Subject: [PATCHv2] Fix GDB's behavior I don't think this is a good solution, because you haven't fixed the problem, just complained about it. Please ensure that the patch makes GDB behave correctly with this input, though I'm not opposed to keeping the warning for other unexpected errors. --- From: newcontributorcom Subject: [PATCHv3] Fix GDB's behavior I fixed bug number PR/XXXXX by making GDB work as expected, and also added a warning for unexpected inputs. --- From: othermaintainercom Subject: Re: [PATCHv3] Fix GDB's behavior Hi! This patch still looks good. R-b: Other Maintainer maintainercom> --- From: approvergdbcom Subject: Re: [PATCHv3] Fix GDB's behavior I like this solution much better, thank you! Approved-by: Approver gdbcom> --- From: newcontributorcom Subject: Re: Re: [PATCHv3] Fix GDB's behavior Thank you, I pushed it! -- Cheers, Bruno