From f08648d2da41a9e91848263e181f74fe4678e213 Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Fri, 5 Mar 2021 12:22:51 +0000 Subject: [PATCH] Make assemble changelog script enforce line length As I descovered, a changelog entry with a line length greater than 80 characters would still pass CI. This is a quick change to the script to make it detect these descrepancies and fail. Signed-off-by: Paul Elliott --- .../make_assemble_changelog_enforce_line_length.txt | 2 ++ scripts/assemble_changelog.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 ChangeLog.d/make_assemble_changelog_enforce_line_length.txt diff --git a/ChangeLog.d/make_assemble_changelog_enforce_line_length.txt b/ChangeLog.d/make_assemble_changelog_enforce_line_length.txt new file mode 100644 index 000000000..3baed0205 --- /dev/null +++ b/ChangeLog.d/make_assemble_changelog_enforce_line_length.txt @@ -0,0 +1,2 @@ +Changes + * Make assemble_changelog.py script enforce 80 character line limit diff --git a/scripts/assemble_changelog.py b/scripts/assemble_changelog.py index 8f7d1fdf9..e6dcc94d9 100755 --- a/scripts/assemble_changelog.py +++ b/scripts/assemble_changelog.py @@ -74,6 +74,9 @@ STANDARD_CATEGORIES = ( b'Changes', ) +# The maximum line length for an entry +MAX_LINE_LENGTH = 80 + CategoryContent = namedtuple('CategoryContent', [ 'name', 'title_line', # Title text and line number of the title 'body', 'body_line', # Body text and starting line number of the body @@ -214,6 +217,15 @@ class ChangeLog: line_offset + category.title_line, 'Unknown category: "{}"', category.name.decode('utf8')) + + body_split = category.body.splitlines() + for line in body_split: + if len(line) > MAX_LINE_LENGTH: + raise InputFormatError(filename, + line_offset + category.title_line, + 'Category body line too long: "{} ({})"', + category.name.decode('utf8'), len(line)) + self.categories[category.name] += category.body def __init__(self, input_stream, changelog_format):