Message ID | 20200413215126.548213-2-seanga2@gmail.com |
---|---|
State | New |
Headers | show |
Series | patman: Add changelog customization options | expand |
Hi Sean, On Mon, 13 Apr 2020 at 15:51, Sean Anderson <seanga2 at gmail.com> wrote: > > 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 at gmail.com> > --- > > 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/patchstream.py | 2 +- > tools/patman/series.py | 40 +++++++++++++++++++++++++++---------- > 2 files changed, 30 insertions(+), 12 deletions(-) > Thanks for sending this series. I think the way that you have it working is fine. But a few problems: 1. patman --test fails 2. The new behaviour needs a few tests, or at least test changes 3. I think you should mention the suppression of change-log info in the README 4. For me I see strange output: Changes in v5: - This is my cover change (no changes since v4) Changes in v4: - Add linux/err.h header - Rename acpi-probed to linux,probed 5. Can you update your commit subjects to reflect what you are doing now? Regards, Simon
diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py index df3eb7483b..a83497d79f 100644 --- a/tools/patman/patchstream.py +++ b/tools/patman/patchstream.py @@ -340,7 +340,7 @@ class PatchStream: elif line == '---': self.state = STATE_DIFFS - # Output the tags (signeoff first), then change list + # Output the tags (signoff first), then change list out = [] log = self.series.MakeChangeLog(self.commit) out += [line] diff --git a/tools/patman/series.py b/tools/patman/series.py index a15f7625ed..ca42e5e966 100644 --- a/tools/patman/series.py +++ b/tools/patman/series.py @@ -146,38 +146,56 @@ 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(int(self.version), versions[0]) + except (IndexError, ValueError): + 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: + 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('') + else: + final = ['(no changes since v1)', ''] return final def DoChecks(self):
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 at gmail.com> --- 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/patchstream.py | 2 +- tools/patman/series.py | 40 +++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-)