From patchwork Sat Apr 4 21:29:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 2147 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338406; bh=tt5cjM9qmbnpGxeOkCTIYzpQT/amy4ys+vrtHSGnYUI=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=M33CNn0gIoVkLLeXmylVtEX40tx4X4FIR/3iVy5XeXok2PtHNyY8P8TxIgudN2z28 AWL3dbK0T0frzWQ/ViK6xtaYAiTzlmoJf4tpvUiblUPj+mUWY0gNrWyJPYZsmAG4za Ot83JHvg3OsT5eLbBgwex92Jcf7NKN4e+FKzh2n2dHqtxj7bxd9vJbPn+uplV6IF5t DZCzeigaofBW06pXUB+QsxDi+ob9vJyC3hL+GLqdESW1YDcPQRQh5vP/xnQV9BLZtv CwsZnl5zf9hlnKZkbno0RDMk/PR00zh445EQpPnrecceCthjzTr5NmP2a+pW3c9hLu ed+OkuZBb+ICA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 007F068F53 for ; Sat, 4 Apr 2026 15:33:26 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id 3JuZNlwFuB2G for ; Sat, 4 Apr 2026 15:33:25 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338405; bh=tt5cjM9qmbnpGxeOkCTIYzpQT/amy4ys+vrtHSGnYUI=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=BWiCHg6ma8GHSvFdsv8KDTpOWawkPW50YMxbsH1KKLWaX4q6RhcneLUDikWjJI9aX nX3C9CmFY/KFYT7EMPycc8xzSMh+9RKWdSUkmvEQjDUZFyP6W4RZycZIq0XIilb/yQ 9YmRsasNR/83eEvpcHS/o3vXSKeaeOuO0fGhAvFv2mJxkZCyjO5h7ghqqzUUT3aQx8 XHKYuRmlMJthFVzZHjzfJvNhTDbgWSo0wrC9ui5ra3B2v36yiQU6uDgsxxXVoaGvct 2+npxmAAM2g7Cn/cdFCSo2k7w9Ekd39JAY9e/1jhix6IhvlonIJc+90rt1CYXW6q9N jJUbmp76IOrqw== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E3FB56833B for ; Sat, 4 Apr 2026 15:33:25 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338403; bh=9nGmM9FmnFfo8dJXK1z8d8ZAdKDg9uQWT2S/LpJ2j94=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=J9YBDX5t56TolmuED0oRYoK/dsCyXG0nf1rCJORAXev0HCHpW2ZJHoAC9ZnqpvEA4 STcQrNaD7Hlutp9y1MztILtrUdK3gP/iDNooHN6tdkV2O9jaKxKoxeQMdS54GqjPFE NZEJ6z1jO7qrRg934ARaPPPt6K1Jqy7yUsUrxehFDB1xceDy0do67S0stnHFAZxteO WzZYw3niCu2eRJzwYXuS2LcGsuOXifX/t7nFNrcXgaxWCA4+1tY4YB28f8enuFMwUd oKYXjemvGXPt/WFt3PMAYIQ3gtbBUN19O1TOvY0FU77UUpRlTfuNaYQvUXc5+PLYSw cxYYuYb3mw94g== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E5DFA64DB2; Sat, 4 Apr 2026 15:33:23 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id LwT4TpfYpbVR; Sat, 4 Apr 2026 15:33:23 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338399; bh=9eqyueivYSLC+2tFN3qFQtGDPPa4gVy8Xvc9pBghwfY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=XvLWvjSC/6y/5jLCKUIL5GRM5ciJIxSkTxXpDfGtin0+ehpCRjpOijo4lMdVkM5J6 eeFRPSDdrCg+l7pjpqltrZhWO5bc9XfIkY/NQGnVscYM3RTrjyeG1ndiCXCXy5mRbp 3xNGyW7OIXbnrJsJ2OJy5dIcjNVN/dXlbTQTFuRh/+ed8O/my+oLVw9RDmODsS6WAO QJot2DkQKPIjdS14nLZKMJqFuuX2Ci6mthV0/EFaQ0eWxN9KFv4KNu0VAbbWSyDegV 5eeCZPwjFIg+LO9dSJ5aFAS/2kGjM6sbok7Qc+OAdK/lxeGVcl8QRPC0+pjqXqNkP0 f401PdFDVXvYg== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 0851F5E7B4; Sat, 4 Apr 2026 15:33:18 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Sat, 4 Apr 2026 15:29:09 -0600 Message-ID: <20260404213020.372253-34-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260404213020.372253-1-sjg@u-boot.org> References: <20260404213020.372253-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: GPT2GGY2XTTTSZVURESKL47AHEVZUBBK X-Message-ID-Hash: GPT2GGY2XTTTSZVURESKL47AHEVZUBBK X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Simon Glass X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 33/37] patman: Add review and notes command-line arguments List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass Add new arguments to the review subparser: - --gmail-account, --signoff, --spelling for draft creation - --learn-voice/--voice-count for voice profile learning - --sync for draft status synchronisation - -f/--force for re-reviewing completed series Add series subcommands: - save-notes: store review-handling notes in the database - show-notes: display notes from all previous versions Signed-off-by: Simon Glass --- tools/patman/cmdline.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tools/patman/cmdline.py b/tools/patman/cmdline.py index bee9fd21483..cbb6e4742b7 100644 --- a/tools/patman/cmdline.py +++ b/tools/patman/cmdline.py @@ -324,6 +324,13 @@ def add_series_subparser(subparsers): series_subparsers.add_parser('rm') + snotes = series_subparsers.add_parser('save-notes') + snotes.add_argument( + 'notes_file', nargs='?', default='review-notes.txt', + help='Path to the review notes file (default: review-notes.txt)') + + series_subparsers.add_parser('show-notes') + sup = series_subparsers.add_parser('set-upstream') sup.add_argument('upstream_name', nargs='?', help='Name of the upstream for this series') @@ -548,6 +555,9 @@ def add_review_subparser(subparsers): review.add_argument( '--create-drafts', action='store_true', help='Create Gmail draft emails for each review') + review.add_argument( + '--gmail-account', type=str, default=None, + help='Gmail account to create drafts in (e.g. user@gmail.com)') review.add_argument( '--no-cover', action='store_true', help='Skip reviewing the cover letter') @@ -560,6 +570,29 @@ def add_review_subparser(subparsers): review.add_argument( '--apply-only', action='store_true', help='Only download and apply patches, skip AI review') + review.add_argument( + '--signoff', type=str, default='', + help="Sign-off for reviews with comments (from .patman settings)") + review.add_argument( + '--spelling', type=str, default='British', + help="Spelling convention for review comments (from .patman " + "settings)") + review.add_argument( + '--learn-voice', type=str, nargs='?', const='gmail', + choices=['gmail', 'patchwork'], + help="Analyse past reviews to build a voice profile " + "(from 'gmail' or 'patchwork', default: gmail)") + review.add_argument( + '--voice-count', type=int, default=20, + help='Number of review emails/comments to collect for ' + '--learn-voice (default: 20)') + review.add_argument( + '--sync', action='store_true', + help='Check if review drafts have been sent and record the ' + 'final email content') + review.add_argument( + '-f', '--force', action='store_true', + help='Force re-review even if the series was already reviewed') return review