From: Sean Anderson <seanga2@gmail.com>
To: u-boot@lists.denx.de
Subject: [PATCH v3 2/4] patman: Suppress empty changelog entries
Date: Sun, 3 May 2020 17:55:31 -0400 [thread overview]
Message-ID: <20200503215533.360196-3-seanga2@gmail.com> (raw)
In-Reply-To: <20200503215533.360196-1-seanga2@gmail.com>
Patman outputs a line for every edition of the series in every patch,
regardless of whether any changes were made. This can result in many
redundant lines in patch changelogs, especially when a patch did not exist
before a certain revision. For example, the existing behaviour could result
in a changelog of
Changes in v7: None
Changes in v6: None
Changes in v5:
- Make a change
Changes in v4: None
Changes in v3:
- New
Changes in v2: None
With this patch applied and with --no-empty-changes, the same patch would
look like
(no changes since v5)
Changes in v5:
- Make a change
Changes in v3:
- New
This is entirely aesthetic, but I think it reduces clutter, especially for
patches added later on in a series.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
---
Changes in v3:
- Document empty changelog suppression in README
- Fix KeyError when running tests
- Fix no changes message being output for revision 1
- Fix no changes message sometimes being output before every
non-newest-revision change
- Make the newest_version logic more robust (and ugly)
- Update commit subject
Changes in v2:
- Add a note when there are no changes in the current revision
- Make this the default behaviour, and remove the option
tools/patman/README | 21 ++++++++++++++++++++
tools/patman/series.py | 44 +++++++++++++++++++++++++++++++-----------
2 files changed, 54 insertions(+), 11 deletions(-)
diff --git a/tools/patman/README b/tools/patman/README
index 02d5829744..d1d9891c4c 100644
--- a/tools/patman/README
+++ b/tools/patman/README
@@ -474,6 +474,27 @@ print out the command line patman would have used.
not later when you can't remember which patch you changed. You can always
go back and change or remove logs from commits.
+7. Patches will have no changelog entries for revisions where they did not
+change. For clarity, if there are no changes for this patch in the most
+recent revision of the series, a note will be added. For example, a patch
+with the following tags in the commit
+
+ Series-version: 5
+ Series-changes: 2
+ - Some change
+
+ Series-changes: 4
+ - Another change
+
+would have a changelog of
+
+ (no changes since v4)
+
+ Changes in v4:
+ - Another change
+
+ Changes in v2:
+ - Some change
Other thoughts
==============
diff --git a/tools/patman/series.py b/tools/patman/series.py
index 6d9d48b123..4359442174 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -146,38 +146,60 @@ class Series(dict):
Changes in v4:
- Jog the dial back closer to the widget
- Changes in v3: None
Changes in v2:
- Fix the widget
- Jog the dial
- etc.
+ If there are no new changes in a patch, a note will be added
+
+ (no changes since v2)
+
+ Changes in v2:
+ - Fix the widget
+ - Jog the dial
"""
+ versions = sorted(self.changes, reverse=True)
+ newest_version = 1
+ try:
+ newest_version = max(newest_version, int(self.version))
+ except (ValueError, KeyError):
+ pass
+ try:
+ newest_version = max(newest_version, versions[0])
+ except IndexError:
+ pass
+
final = []
process_it = self.get('process_log', '').split(',')
process_it = [item.strip() for item in process_it]
need_blank = False
- for change in sorted(self.changes, reverse=True):
+ for version in versions:
out = []
- for this_commit, text in self.changes[change]:
+ for this_commit, text in self.changes[version]:
if commit and this_commit != commit:
continue
if 'uniq' not in process_it or text not in out:
out.append(text)
- line = 'Changes in v%d:' % change
- have_changes = len(out) > 0
if 'sort' in process_it:
out = sorted(out)
+ have_changes = len(out) > 0
+ line = 'Changes in v%d:' % version
if have_changes:
out.insert(0, line)
- else:
- out = [line + ' None']
- if need_blank:
- out.insert(0, '')
+ if version < newest_version and len(final) == 0:
+ out.insert(0, '')
+ out.insert(0, '(no changes since v%d)' % version)
+ newest_version = 0
+ # Only add a new line if we output something
+ if need_blank:
+ out.insert(0, '')
final += out
need_blank = have_changes
- if self.changes:
+
+ if len(final) > 0:
final.append('')
+ elif newest_version != 1:
+ final = ['(no changes since v1)', '']
return final
def DoChecks(self):
--
2.26.2
next prev parent reply other threads:[~2020-05-03 21:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-03 21:55 [PATCH v3 0/4] patman: Add changelog customization options Sean Anderson
2020-05-03 21:55 ` [PATCH v3 1/4] patman: Modify functional tests for new behavior Sean Anderson
2020-05-04 14:17 ` Simon Glass
2020-05-03 21:55 ` Sean Anderson [this message]
2020-05-04 14:39 ` [PATCH v3 2/4] patman: Suppress empty changelog entries Simon Glass
2020-05-04 16:59 ` Sean Anderson
2020-05-04 19:26 ` Simon Glass
2020-05-03 21:55 ` [PATCH v3 3/4] patman: Add new tags for finer-grained changelog control Sean Anderson
2020-05-04 14:39 ` Simon Glass
2020-05-03 21:55 ` [PATCH v3 4/4] patman: Support multi-line changes in changelogs Sean Anderson
2020-05-04 14:39 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200503215533.360196-3-seanga2@gmail.com \
--to=seanga2@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox