Mercurial > piecrust2
changeset 797:be8b233cc69a
cm: Add a "Bugfixes" section to the CHANGELOG and order things alphabetically.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Wed, 07 Sep 2016 23:15:07 -0700 |
parents | 3900169ac81b |
children | 6997ab31fc2d |
files | garcon/changelog.py |
diffstat | 1 files changed, 25 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/garcon/changelog.py Wed Sep 07 23:14:36 2016 -0700 +++ b/garcon/changelog.py Wed Sep 07 23:15:07 2016 -0700 @@ -9,8 +9,6 @@ hg_log_template = ("{if(tags, '>>{tags};{date|shortdate}\n')}" "{desc|firstline}\n\n") -re_add_tag_changeset = re.compile('^Added tag [^\s]+ for changeset [\w\d]+$') -re_merge_pr_changeset = re.compile('^Merge pull request') re_tag = re.compile('^\d+\.\d+\.\d+([ab]\d+)?(rc\d+)?$') re_change = re.compile('^(\w+):') re_clean_code_span = re.compile('([^\s])``([^\s]+)') @@ -21,17 +19,28 @@ 'showconfig', 'showrecord', 'sources', 'theme', 'themes', 'admin', 'publish'] category_core = [ - 'internal', 'bug', 'templating', 'formatting', 'performance', + 'internal', 'templating', 'formatting', 'performance', 'data', 'config', 'rendering', 'render', 'debug', 'reporting', 'linker', 'pagination', 'routing', 'caching', 'cli'] +category_bugfixes = [ + 'bug'] category_project = ['build', 'cm', 'docs', 'tests', 'setup'] categories = [ ('commands', category_commands), ('core', category_core), + ('bugfixes', category_bugfixes), ('project', category_project), ('miscellaneous', None)] category_names = list(map(lambda i: i[0], categories)) +re_add_tag_changeset = re.compile('^Added tag [^\s]+ for changeset [\w\d]+$') +re_merge_pr_changeset = re.compile('^Merge pull request') +re_merge_changes_changeset = re.compile('^Merge(d?) changes') +message_blacklist = [ + re_add_tag_changeset, + re_merge_pr_changeset, + re_merge_changes_changeset] + def generate(out_file, last=None): print("Generating %s" % out_file) @@ -76,7 +85,7 @@ _write_version_changes( templates, current_version, current_version_info, - current_changes, fp) + current_changes, fp, out_ext) current_version += 1 current_version_info = tags, tag_date @@ -89,9 +98,12 @@ if skip or current_version == 0: continue - if re_add_tag_changeset.match(line): - continue - if re_merge_pr_changeset.match(line): + for blre in message_blacklist: + if blre.match(line): + skip = True + break + + if skip: continue m = re_change.match(line) @@ -113,10 +125,10 @@ _write_version_changes( templates, current_version, current_version_info, - current_changes, fp) + current_changes, fp, out_ext) -def _write_version_changes(templates, version, version_info, changes, fp): +def _write_version_changes(templates, version, version_info, changes, fp, ext): tokens = { 'num': str(version), 'version': version_info[0], @@ -136,9 +148,11 @@ tpl = _multi_replace(templates['category_title'], tokens) fp.write(tpl) + msgs = list(sorted(msgs)) for msg in msgs: - msg = msg.replace('`', '``').rstrip('\n') - msg = re_clean_code_span.sub(r'\1`` \2', msg) + if ext == '.rst': + msg = msg.replace('`', '``').rstrip('\n') + msg = re_clean_code_span.sub(r'\1`` \2', msg) fp.write('* ' + msg + '\n')