From patchwork Sat Apr 4 21:28:48 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 2127 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=1775338297; bh=BxiNrCkv8Xp4SrWLD6vF1dg3UQwDJ1Vv2tPqKBdCsBo=; 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=hT8+Ts4n3uWcTbTmc0csTlCKPxiAAY6m/dmUq3206dF3oNgur7dC9yOlKZrBh9y75 tw5MwmV95/m6bR2zppZ1x1MOW/HY6ZXI41qm8Jk29vpaIEG4K7901ZCW4/G4LRzXNR P7WJ4j5lruvXCMF7Jy9Ci8EuroNOkTVqHdO4yrMY85jYVU3vvIirRhqsoLUG6Uf4z9 FDKu7XTY3Eja9bb0m/zuekuO5AvQTdRBBFH/kv3tnSMy+CfqUfqk7QJ3dQnPnhfat8 6aAeAeaibDDuMlydRr2InsveQvNGsw0AWdq23Lp86rTIJIi3RI7CCBSO56UjfaDXF2 FDKMscPkB6YOA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id B9A726A369 for ; Sat, 4 Apr 2026 15:31:37 -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 cPkrsgipCDro for ; Sat, 4 Apr 2026 15:31:37 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338297; bh=BxiNrCkv8Xp4SrWLD6vF1dg3UQwDJ1Vv2tPqKBdCsBo=; 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=hT8+Ts4n3uWcTbTmc0csTlCKPxiAAY6m/dmUq3206dF3oNgur7dC9yOlKZrBh9y75 tw5MwmV95/m6bR2zppZ1x1MOW/HY6ZXI41qm8Jk29vpaIEG4K7901ZCW4/G4LRzXNR P7WJ4j5lruvXCMF7Jy9Ci8EuroNOkTVqHdO4yrMY85jYVU3vvIirRhqsoLUG6Uf4z9 FDKu7XTY3Eja9bb0m/zuekuO5AvQTdRBBFH/kv3tnSMy+CfqUfqk7QJ3dQnPnhfat8 6aAeAeaibDDuMlydRr2InsveQvNGsw0AWdq23Lp86rTIJIi3RI7CCBSO56UjfaDXF2 FDKMscPkB6YOA== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id A75296A375 for ; Sat, 4 Apr 2026 15:31:37 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338296; bh=K7waL1Ly8W7ENWHSf6IlqDSI4nVPv5wJY2rMMln4hco=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nq5GGQ3LckTem7vz33BGxJaHDPMYf+B7DM16361HW4WjEV3OD8Nt9P267RTGXe+UO 84/FOYH1dwFsga8wQzSJVCWa0dJzWhFy7F8Lu5WanqbGpCHiEBYiU2DowWIqWNw6vA ZEh6c52/wwdpB8VK9DL7coxwDxgcOEhgMZWVsL3Ju0oVim5xygirXn5BRUvnIYZ4lu NWaZnYitdVh93gcdhItPCDl1y+ZRiJJfoyd695wYfOom4cD1Ht0RqeDj90gVcfbglA /SG9b4akHEzNgA7HDkjDeK2mw6nOU3WhcxBlSFksJB3eGPlJ25gCLfd/joBqsQaA4p le9q39NgE1UBA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 5F81B6A375; Sat, 4 Apr 2026 15:31:36 -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 jf73RECQITSk; Sat, 4 Apr 2026 15:31:36 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1775338292; bh=3Qnqd9Ir0/oVHeybtiqtw+Vo1ts4Z0dJwqlCvSv44d0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=izPzhx3FL12WmxxBlzdTLmbMqI8VbVvILkDku9LHesaFrMR/G17qksQOYEe3H+HW5 V6XZPdOH2equmT/RgFOCuvkmYM0HY/xexGVoIO7CPHIIOtdRIX2sx1EzmSEU1VfCzT msxyLbTxVtG2OO4tul9qmKmbp978TLS6YkIhn4ByVVj/jK0dFXVrYofq8kRjKAqqAt e13T19mcHb/JSYazA5mQiHEpUzV/XOVSpqEvyvVZo9KULR2yQgUFwetY8qlswxYBs9 WaSiqv+L0w6NnHg9rm8tB8KIg/naLjHkHLdclHzIY266UajvtCiS5EHi7JP7UV/bCN kIvVhCgkl/mnw== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 607186869D; Sat, 4 Apr 2026 15:31:32 -0600 (MDT) From: Simon Glass To: U-Boot Concept Date: Sat, 4 Apr 2026 15:28:48 -0600 Message-ID: <20260404213020.372253-13-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: 5SQ7DPICIST2VUM3M277SUJGZ7YOPSPI X-Message-ID-Hash: 5SQ7DPICIST2VUM3M277SUJGZ7YOPSPI 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 12/37] patman: Use per-version description for autolink search 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 The series-level description can become stale when the patch order changes between versions. Use the per-version description (stored in ser_ver) when available, falling back to the series-level description. Also set the per-version description during increment() and scan() so it is available for future autolink searches. Signed-off-by: Simon Glass --- tools/patman/cseries.py | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/tools/patman/cseries.py b/tools/patman/cseries.py index e75e55c2764..5569eb6f4f5 100644 --- a/tools/patman/cseries.py +++ b/tools/patman/cseries.py @@ -191,7 +191,19 @@ class Cseries(cser_helper.CseriesHelper): old_svid = self.get_series_svid(ser.idnum, max_vers) pcd = self.get_pcommit_dict(old_svid) - svid = self.db.ser_ver_add(ser.idnum, vers) + # Set the per-version description from the cover letter or + # first commit subject, so autolink can find the series on + # patchwork even if the patch order changes + meta_name = new_name if not dry_run else branch_name + new_series = patchstream.get_metadata(meta_name, 0, count, + git_dir=self.gitdir) + if new_series.get('cover'): + sv_desc = new_series.cover[0] # pylint: disable=E1136 + elif new_series.commits: + sv_desc = new_series.commits[0].subject + else: + sv_desc = None + svid = self.db.ser_ver_add(ser.idnum, vers, desc=sv_desc) self.db.pcommit_add_list(svid, pcd.values()) if not dry_run: self.commit() @@ -260,13 +272,18 @@ class Cseries(cser_helper.CseriesHelper): str: series description """ _, ser, version, _, _, _, _, _ = self._get_patches(series, version) + svinfo = self.get_ser_ver(ser.idnum, version) - if not ser.desc: + # Use the per-version description if available, since the + # series-level desc may be stale (e.g. patch order changed) + desc = svinfo.desc or ser.desc + if not desc: raise ValueError(f"Series '{ser.name}' has an empty description") + ser.desc = desc pws, options = self.loop.run_until_complete(pwork.find_series( ser, version)) - return pws, options, ser.name, version, ser.desc + return pws, options, ser.name, version, desc def link_auto(self, pwork, series, version, update_commit, wait_s=0): """Automatically find a series link by looking in patchwork @@ -939,6 +956,17 @@ class Cseries(cser_helper.CseriesHelper): self.db.series_set_desc(ser.idnum, branch_desc) tout.notice(f"Updated description to '{branch_desc}'") + # Update per-version description from cover letter or first + # commit, so autolink uses the right search term + if ser.cover: + sv_desc = ser.cover[0] # pylint: disable=E1136 + elif ser.commits: + sv_desc = ser.commits[0].subject + else: + sv_desc = None + if sv_desc: + self.db.ser_ver_set_desc(svid, sv_desc) + if not dry_run: self.commit() seq = len(ser.commits)