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>
This commit is contained in:
Paul Elliott 2021-03-05 12:22:51 +00:00 committed by Gilles Peskine
parent 384a0880c4
commit c24a1e86da
2 changed files with 14 additions and 0 deletions

View File

@ -0,0 +1,2 @@
Changes
* Make assemble_changelog.py script enforce 80 character line limit

View File

@ -101,6 +101,9 @@ STANDARD_CATEGORIES = (
b'Changes', b'Changes',
) )
# The maximum line length for an entry
MAX_LINE_LENGTH = 80
CategoryContent = namedtuple('CategoryContent', [ CategoryContent = namedtuple('CategoryContent', [
'name', 'title_line', # Title text and line number of the title 'name', 'title_line', # Title text and line number of the title
'body', 'body_line', # Body text and starting line number of the body 'body', 'body_line', # Body text and starting line number of the body
@ -241,6 +244,15 @@ class ChangeLog:
line_offset + category.title_line, line_offset + category.title_line,
'Unknown category: "{}"', 'Unknown category: "{}"',
category.name.decode('utf8')) 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 self.categories[category.name] += category.body
def __init__(self, input_stream, changelog_format): def __init__(self, input_stream, changelog_format):