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):