return {
name: group
for group, names in {
- cls.PRIORITY: {''},
+ cls.PRIORITY: {'priority'},
cls.CORE: {
'aes',
'cache',
'misc',
'test',
},
- cls.EXTRACTOR: {'extractor', 'extractors'},
+ cls.EXTRACTOR: {'extractor'},
cls.DOWNLOADER: {'downloader'},
cls.POSTPROCESSOR: {'postprocessor'},
}.items()
for commit_infos in cleanup_misc_items.values():
sorted_items.append(CommitInfo(
'cleanup', ('Miscellaneous',), ', '.join(
- self._format_message_link(None, info.commit.hash)
+ self._format_message_link(None, info.commit.hash).strip()
for info in sorted(commit_infos, key=lambda item: item.commit.hash or '')),
[], Commit(None, '', commit_infos[0].commit.authors), []))
def format_single_change(self, info):
message = self._format_message_link(info.message, info.commit.hash)
if info.issues:
- message = f'{message} ({self._format_issues(info.issues)})'
+ message = message.replace('\n', f' ({self._format_issues(info.issues)})\n', 1)
if info.commit.authors:
- message = f'{message} by {self._format_authors(info.commit.authors)}'
+ message = message.replace('\n', f' by {self._format_authors(info.commit.authors)}\n', 1)
if info.fixes:
fix_message = ', '.join(f'{self._format_message_link(None, fix.hash)}' for fix in info.fixes)
if authors != info.commit.authors:
fix_message = f'{fix_message} by {self._format_authors(authors)}'
- message = f'{message} (With fixes in {fix_message})'
+ message = message.replace('\n', f' (With fixes in {fix_message})\n', 1)
- return message
+ return message[:-1]
def _format_message_link(self, message, hash):
assert message or hash, 'Improperly defined commit message or override'
message = message if message else hash[:HASH_LENGTH]
- return f'[{message}]({self.repo_url}/commit/{hash})' if hash else message
+ if not hash:
+ return f'{message}\n'
+ return f'[{message}\n'.replace('\n', f']({self.repo_url}/commit/{hash})\n', 1)
def _format_issues(self, issues):
return ', '.join(f'[#{issue}]({self.repo_url}/issues/{issue})' for issue in issues)
logger.debug(f'Ignored {when!r}, not in commits {self._start!r}')
continue
- override_hash = override.get('hash')
+ override_hash = override.get('hash') or when
if override['action'] == 'add':
commit = Commit(override.get('hash'), override['short'], override.get('authors') or [])
logger.info(f'ADD {commit}')
elif override['action'] == 'change':
if override_hash not in self._commits:
continue
- commit = Commit(override_hash, override['short'], override['authors'])
+ commit = Commit(override_hash, override['short'], override.get('authors') or [])
logger.info(f'CHANGE {self._commits[commit.hash]} -> {commit}')
self._commits[commit.hash] = commit
for commit in self:
upstream_re = self.UPSTREAM_MERGE_RE.search(commit.short)
if upstream_re:
- commit.short = f'[upstream] Merged with youtube-dl {upstream_re.group(1)}'
+ commit.short = f'[core/upstream] Merged with youtube-dl {upstream_re.group(1)}'
match = self.MESSAGE_RE.fullmatch(commit.short)
if not match:
return CommitGroup.CORE, None, ()
prefix, _, details = prefix.partition('/')
- prefix = prefix.strip().lower()
+ prefix = prefix.strip()
details = details.strip()
- group = CommitGroup.get(prefix)
+ group = CommitGroup.get(prefix.lower())
if group is CommitGroup.PRIORITY:
prefix, _, details = details.partition('/')