diff --git a/scripts/assemble_changelog.py b/scripts/assemble_changelog.py index 09d9dce73..e8a1c2179 100755 --- a/scripts/assemble_changelog.py +++ b/scripts/assemble_changelog.py @@ -201,6 +201,8 @@ class ChangeLog: # a version that is not yet released. Something like "3.1a" is accepted. _version_number_re = re.compile(br'[0-9]+\.[0-9A-Za-z.]+') _incomplete_version_number_re = re.compile(br'.*\.[A-Za-z]') + _only_url_re = re.compile(br'^\s*\w+://\S+\s*$') + _has_url_re = re.compile(br'.*://.*') def add_categories_from_text(self, filename, line_offset, text, allow_unknown_category): @@ -219,14 +221,18 @@ class ChangeLog: category.name.decode('utf8')) body_split = category.body.splitlines() - re_has_url = re.compile('.*http[s]?://.*') for line_number, line in enumerate(body_split, 1): - if not re_has_url.match(line.decode('utf-8')) and \ + if not self.__class__._only_url_re.match(line) and \ len(line) > MAX_LINE_LENGTH: + long_url_msg = '. URL exceeding length limit must be ' \ + 'alone in it\'s line.' if \ + self.__class__._has_url_re.match(line) else "" raise InputFormatError(filename, category.body_line + line_number, - 'Line is longer than allowed: Length {} (Max {})', - len(line), MAX_LINE_LENGTH) + 'Line is longer than allowed: ' + 'Length {} (Max {}){}', + len(line), MAX_LINE_LENGTH, + long_url_msg) self.categories[category.name] += category.body