From patchwork Thu Feb 26 20:00:33 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1964 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=1772136200; bh=/48Ul1PSIc5zM2upiPUR1RmCVWcedGpF9I07MVLGYhg=; 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=ZXM8EtDwb+pBbQdaieDrxlUUOhyKr2M06uSv8cHwjurDLNJ5L0ihwxluo/Q+uNR2T hlQN6q25ghdsz2Ncj6TsDkyMLb5zGI4VorsTNPyioOmULeLCcA3ZChKZo8qpUr+xWe xK0axXSWwg2WocKXLvZV0Oy7+XS39JlfSwb84CbhQtvM+Lzk5PTaZvhd8ha055gbOf W8ri4W0cYCw7OaOeEwv/mhk/MzCsLU5MAkOVytoLSNx5isLZqsYBWwjVL2mSvi8B8R 4fkTQn61LY6Q1fqpvBzA8NNRDqm1dupn+WzwLZ+L0qzrBqmrezYhnAs0v3uWzuoj2a ldHRepsz0JWuA== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 0C30269E3F for ; Thu, 26 Feb 2026 13:03:20 -0700 (MST) 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 Blmg1WrQxNsM for ; Thu, 26 Feb 2026 13:03:19 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1772136199; bh=/48Ul1PSIc5zM2upiPUR1RmCVWcedGpF9I07MVLGYhg=; 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=dSWJP3qVpRwhPfxkyZySdsRGw6GlydN0sCANzRxQrqvp68CFZyZzlP1tzl/VtS1rE WTKxEicjpayaqpZq4ee7mMMPoPop9uSZIDg61vBdWSSLbIaXxbttY3umyx1FCDHq+M e4tk6giNIUP0MEkKkC05me+KAXM5vbVlrI/JDXJBsl2w9/2aXmQvg/Z+yoLHRPKXpo D4GCJ8OH1HjHqCtA3xQKx8dzcArRlBo7U8C/kAYwyLcI0UupaP1ZRq7WuT0KwQisFd NarUzK53MsoHUQdd+2kJAirAqtxsqNNmp8ey2l7MLyVM19f6izE++CWXzgvR8qjXes OnRPTTZI+mWsA== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E8D7769E39 for ; Thu, 26 Feb 2026 13:03:19 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1772136198; bh=CS9o2xmNloYWB+ydredPxpcDohX//kukM6M3HYgqhlI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vX7fRxGZoNEnhNiWvw9GXUvNS6/0cRZBLCiDb0k8b5ZgJsLtWMayyml/CafLe8waa VjQsjZ7Y4qd7LfSBnywidbnla32k+5/+hXJ1bydEO/GDrSQqCprrP+XnhR128L6B4Z WiKjwdYgUwFkoTOf2W0+42895/NAR3x7/NG+DoLOFkzHMxkbWcuFgySvYTUfTEmkkW 8LtqVGkiiWJlUbNnP0qKsZ3yBnoO4cqHauckJSw9RmB48FCWo7v4kgEFpbdlR6aap4 dSKp79v9IxS5Q2fv08Rb8iVbL4EjypJRk/P43MuJWgqUgyitOZy8wBQ8menL2fKJJO zBaP9t9B++Rmg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 8DBD669E4B; Thu, 26 Feb 2026 13:03:18 -0700 (MST) 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 6EpcVS4_AoPx; Thu, 26 Feb 2026 13:03:18 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1772136194; bh=RyiuYiXcrgJ5mnZmlJuD1gqd9hmSw6qbHzyM+sWWifk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ulnUmh3GmklUTLdtm1RRaxr/9aIGJySe/NUISRiiEzMEkceGb46G5ZCnFL1xsAudr p8BLBBmahTCvnJ6ptQ3CsfmFAVpjYjy0cTyvEFWoHYjVVQLiFeD9TR/hPdAAkyUhUD rssDVBGTypDClqYwHBdYZwsDfs3IzjpADDa3hs5bG+iF5YD7q9KPzGlbCHbVOPq+uu W0vf5Po4cDyw7Itad+wexNgZ3QXQTZkmrl3OtlyKAqeUzgtBP/RUdVCSK7krQPrkhs 3wntX5tEYRsBSflzilw9F7bz9G5t3yt+J9Zqi/zq2lttUxbHhyNLt7NZix0FV7Dyk1 FyhFkGaQwHPgQ== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id E374369D8A; Thu, 26 Feb 2026 13:03:13 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Thu, 26 Feb 2026 13:00:33 -0700 Message-ID: <20260226200106.1727176-28-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260226200106.1727176-1-sjg@u-boot.org> References: <20260226200106.1727176-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: NZTHQOIG4PPXL2R7JUSN4IRJWFUCM6FS X-Message-ID-Hash: NZTHQOIG4PPXL2R7JUSN4IRJWFUCM6FS 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 27/32] patman: Update series description when adding a new version 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 When adding a new version to an existing series, the description (cover letter subject) is not updated, so it gets stale if the title changes between versions. Update it each time a new version is added. Signed-off-by: Simon Glass --- tools/patman/cser_helper.py | 4 ++-- tools/patman/cseries.py | 8 +++++--- tools/patman/database.py | 27 ++++++++++++++++++++------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/tools/patman/cser_helper.py b/tools/patman/cser_helper.py index a60e02878a5..dd654738c06 100644 --- a/tools/patman/cser_helper.py +++ b/tools/patman/cser_helper.py @@ -1369,10 +1369,10 @@ class CseriesHelper: updated += 1 if cover: info = SerVer(svid, None, None, None, cover.id, - cover.num_comments, cover.name, None) + cover.num_comments, cover.name, None, None) else: info = SerVer(svid, None, None, None, None, None, patches[0].name, - None) + None, None) self.db.ser_ver_set_info(info) return updated, 1 if cover else 0 diff --git a/tools/patman/cseries.py b/tools/patman/cseries.py index 47da57acc0f..0f1766f5539 100644 --- a/tools/patman/cseries.py +++ b/tools/patman/cseries.py @@ -84,11 +84,13 @@ class Cseries(cser_helper.CseriesHelper): series_id = self.db.series_add(ser.name, desc, ups=ups) added = True msg += f" series '{ser.name}'" - elif ups: - self.db.series_set_upstream(series_id, ups) + else: + if ups: + self.db.series_set_upstream(series_id, ups) + self.db.series_set_desc(series_id, desc) if version not in self._get_version_list(series_id): - svid = self.db.ser_ver_add(series_id, version, link) + svid = self.db.ser_ver_add(series_id, version, link, desc) msg += f" v{version}" if not added: msg += f" to existing series '{ser.name}'" diff --git a/tools/patman/database.py b/tools/patman/database.py index a5952c6d2b6..e1ec0dc00e2 100644 --- a/tools/patman/database.py +++ b/tools/patman/database.py @@ -25,7 +25,7 @@ LATEST = 5 SerVer = namedtuple( 'SER_VER', 'idnum,series_id,version,link,cover_id,cover_num_comments,name,' - 'archive_tag') + 'archive_tag,desc') # Record from the pcommit table: # idnum (int): record ID @@ -493,6 +493,17 @@ class Database: # pylint:disable=R0904 self.execute( 'UPDATE series SET name = ? WHERE id = ?', (name, series_idnum)) + def series_set_desc(self, series_idnum, desc): + """Update description for a series + + Args: + series_idnum (int): ID num of the series + desc (str): New description + """ + self.execute( + 'UPDATE series SET desc = ? WHERE id = ?', + (desc, series_idnum)) + def series_set_upstream(self, series_idnum, ups): """Update upstream for a series @@ -617,7 +628,7 @@ class Database: # pylint:disable=R0904 if self.rowcount() != 1: raise ValueError(f'No ser_ver updated (svid {svid})') - def ser_ver_add(self, series_idnum, version, link=None): + def ser_ver_add(self, series_idnum, version, link=None, desc=None): """Add a new ser_ver record Args: @@ -625,13 +636,15 @@ class Database: # pylint:disable=R0904 version version (int): Version number to add link (str): Patchwork link, or None if not known + desc (str or None): Series description for this version Return: int: ID num of the new ser_ver record """ self.execute( - 'INSERT INTO ser_ver (series_id, version, link) VALUES (?, ?, ?)', - (series_idnum, version, link)) + 'INSERT INTO ser_ver (series_id, version, link, desc) ' + 'VALUES (?, ?, ?, ?)', + (series_idnum, version, link, desc)) return self.lastrowid() def ser_ver_get_for_series(self, series_idnum, version=None): @@ -648,8 +661,8 @@ class Database: # pylint:disable=R0904 ValueError: There is no matching idnum/version """ base = ('SELECT id, series_id, version, link, cover_id, ' - 'cover_num_comments, name, archive_tag FROM ser_ver ' - 'WHERE series_id = ?') + 'cover_num_comments, name, archive_tag, desc ' + 'FROM ser_ver WHERE series_id = ?') if version: res = self.execute(base + ' AND version = ?', (series_idnum, version)) @@ -690,7 +703,7 @@ class Database: # pylint:disable=R0904 """ res = self.execute( 'SELECT id, series_id, version, link, cover_id, ' - 'cover_num_comments, name, archive_tag FROM ser_ver') + 'cover_num_comments, name, archive_tag, desc FROM ser_ver') items = res.fetchall() return [SerVer(*x) for x in items]