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 <paul.elliott@arm.com>
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 0000000..3baed02
--- /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 8f7d1fd..e6dcc94 100755
--- a/scripts/assemble_changelog.py
+++ b/scripts/assemble_changelog.py
@@ -74,6 +74,9 @@
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 @@
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):