From: Simon Glass <simon.glass@canonical.com> 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 <simon.glass@canonical.com> --- 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] -- 2.43.0