##// END OF EJS Templates
relnotes: more improvements
av6 -
r41590:2a42a632 default draft
parent child Browse files
Show More
@@ -14,6 +14,7 rules = {
14 r"\(issue": 100,
14 r"\(issue": 100,
15 r"\(BC\)": 100,
15 r"\(BC\)": 100,
16 r"\(API\)": 100,
16 r"\(API\)": 100,
17 r"\(SEC\)": 100,
17 # core commands, bump up
18 # core commands, bump up
18 r"(commit|files|log|pull|push|patch|status|tag|summary)(|s|es):": 20,
19 r"(commit|files|log|pull|push|patch|status|tag|summary)(|s|es):": 20,
19 r"(annotate|alias|branch|bookmark|clone|graft|import|verify).*:": 20,
20 r"(annotate|alias|branch|bookmark|clone|graft|import|verify).*:": 20,
@@ -21,6 +22,7 rules = {
21 r"(mq|shelve|rebase):": 20,
22 r"(mq|shelve|rebase):": 20,
22 # newsy
23 # newsy
23 r": deprecate": 20,
24 r": deprecate": 20,
25 r": new.*(extension|flag|module)": 10,
24 r"( ability|command|feature|option|support)": 10,
26 r"( ability|command|feature|option|support)": 10,
25 # experimental
27 # experimental
26 r"hg-experimental": 20,
28 r"hg-experimental": 20,
@@ -29,22 +31,23 rules = {
29 # bug-like?
31 # bug-like?
30 r"(fix|don't break|improve)": 7,
32 r"(fix|don't break|improve)": 7,
31 r"(not|n't|avoid|fix|prevent).*crash": 10,
33 r"(not|n't|avoid|fix|prevent).*crash": 10,
34 r"vulnerab": 10,
32 # boring stuff, bump down
35 # boring stuff, bump down
33 r"^contrib": -5,
36 r"^contrib": -5,
34 r"debug": -5,
37 r"debug": -5,
35 r"help": -5,
38 r"help": -5,
39 r"minor": -5,
36 r"(doc|metavar|bundle2|obsolete|obsmarker|rpm|setup|debug\S+:)": -15,
40 r"(doc|metavar|bundle2|obsolete|obsmarker|rpm|setup|debug\S+:)": -15,
37 r"(check-code|check-commit|check-config|import-checker)": -20,
41 r"(check-code|check-commit|check-config|import-checker)": -20,
38 r"(flake8|lintian|pyflakes|pylint)": -20,
42 r"(flake8|lintian|pyflakes|pylint)": -20,
39 # cleanups and refactoring
43 # cleanups and refactoring
40 r"(cleanup|white ?space|spelling|quoting)": -20,
44 r"(clean ?up|white ?space|spelling|quoting)": -20,
41 r"(flatten|dedent|indent|nesting|unnest)": -20,
45 r"(flatten|dedent|indent|nesting|unnest)": -20,
42 r"(typo|hint|note|comment|TODO|FIXME)": -20,
46 r"(typo|hint|note|comment|TODO|FIXME)": -20,
43 r"(style:|convention|one-?liner)": -20,
47 r"(style:|convention|one-?liner)": -20,
44 r"_": -10,
45 r"(argument|absolute_import|attribute|assignment|mutable)": -15,
48 r"(argument|absolute_import|attribute|assignment|mutable)": -15,
46 r"(scope|True|False)": -10,
49 r"(scope|True|False)": -10,
47 r"(unused|useless|unnecessary|superfluous|duplicate|deprecated)": -10,
50 r"(unused|useless|unnecessar|superfluous|duplicate|deprecated)": -10,
48 r"(redundant|pointless|confusing|uninitialized|meaningless|dead)": -10,
51 r"(redundant|pointless|confusing|uninitialized|meaningless|dead)": -10,
49 r": (drop|remove|delete|rip out)": -10,
52 r": (drop|remove|delete|rip out)": -10,
50 r": (inherit|rename|simplify|naming|inline)": -10,
53 r": (inherit|rename|simplify|naming|inline)": -10,
@@ -54,9 +57,12 rules = {
54 r": (move|extract) .* (to|into|from|out of)": -20,
57 r": (move|extract) .* (to|into|from|out of)": -20,
55 r": implement ": -5,
58 r": implement ": -5,
56 r": use .* implementation": -20,
59 r": use .* implementation": -20,
60 r": use .* instead of": -20,
61 # code
62 r"_": -10,
63 r"__": -5,
64 r"\(\)": -5,
57 r"\S\S\S+\.\S\S\S\S+": -5,
65 r"\S\S\S+\.\S\S\S\S+": -5,
58 r": use .* instead of": -20,
59 r"__": -5,
60 # dumb keywords
66 # dumb keywords
61 r"\S+/\S+:": -10,
67 r"\S+/\S+:": -10,
62 r"\S+\.\S+:": -10,
68 r"\S+\.\S+:": -10,
@@ -92,6 +98,15 groupings = [
92 (r"shelve|unshelve", "extensions"),
98 (r"shelve|unshelve", "extensions"),
93 ]
99 ]
94
100
101 def wikify(desc):
102 desc = desc.replace("(issue", "(Bts:issue")
103 desc = re.sub(r"\b([0-9a-f]{12})\b", r"Cset:\1", desc)
104 # stop ParseError from being recognized as a (nonexistent) wiki page
105 desc = re.sub(r" ([A-Z][a-z]+[A-Z][a-z]+)\b", r" !\1", desc)
106 # prevent wiki markup of magic methods
107 desc = re.sub(r"\b(\S*__\S*)\b", r"`\1`", desc)
108 return desc
109
95 def main():
110 def main():
96 desc = "example: %(prog)s 4.7.2 --stoprev 4.8rc0"
111 desc = "example: %(prog)s 4.7.2 --stoprev 4.8rc0"
97 ap = argparse.ArgumentParser(description=desc)
112 ap = argparse.ArgumentParser(description=desc)
@@ -148,10 +163,8 def main():
148 if re.search(rule, desc):
163 if re.search(rule, desc):
149 score += val
164 score += val
150
165
151 desc = desc.replace("(issue", "(Bts:issue")
152
153 if score >= cutoff:
166 if score >= cutoff:
154 commits.append(desc)
167 commits.append(wikify(desc))
155 # Group unflagged notes.
168 # Group unflagged notes.
156 groups = {}
169 groups = {}
157 bcs = []
170 bcs = []
@@ -266,7 +266,6
266 * diff: disable diff.noprefix option for diffstat (Bts:issue5759)
266 * diff: disable diff.noprefix option for diffstat (Bts:issue5759)
267 * evolution: make reporting of new unstable changesets optional
267 * evolution: make reporting of new unstable changesets optional
268 * extdata: abort if external command exits with non-zero status (BC)
268 * extdata: abort if external command exits with non-zero status (BC)
269 * fancyopts: add early-options parser compatible with getopt()
270 * graphlog: add another graph node type, unstable, using character "*" (BC)
269 * graphlog: add another graph node type, unstable, using character "*" (BC)
271 * hgdemandimport: use correct hyperlink to python-bug in comments (Bts:issue5765)
270 * hgdemandimport: use correct hyperlink to python-bug in comments (Bts:issue5765)
272 * httppeer: add support for tracing all http request made by the peer
271 * httppeer: add support for tracing all http request made by the peer
@@ -277,17 +276,18
277 * morestatus: don't crash with different drive letters for repo.root and CWD
276 * morestatus: don't crash with different drive letters for repo.root and CWD
278 * outgoing: respect ":pushurl" paths (Bts:issue5365)
277 * outgoing: respect ":pushurl" paths (Bts:issue5365)
279 * remove: print message for each file in verbose mode only while using '-A' (BC)
278 * remove: print message for each file in verbose mode only while using '-A' (BC)
280 * rewriteutil: use precheck() in uncommit and amend commands
281 * scmutil: don't try to delete origbackup symlinks to directories (Bts:issue5731)
279 * scmutil: don't try to delete origbackup symlinks to directories (Bts:issue5731)
282 * sshpeer: add support for request tracing
280 * sshpeer: add support for request tracing
283 * subrepo: add config option to reject any subrepo operations (SEC)
281 * subrepo: add config option to reject any subrepo operations (SEC)
284 * subrepo: disable git and svn subrepos by default (BC) (SEC)
282 * subrepo: disable git and svn subrepos by default (BC) (SEC)
283 * subrepo: disallow symlink traversal across subrepo mount point (SEC)
285 * subrepo: extend config option to disable subrepos by type (SEC)
284 * subrepo: extend config option to disable subrepos by type (SEC)
286 * subrepo: handle 'C:' style paths on the command line (Bts:issue5770)
285 * subrepo: handle 'C:' style paths on the command line (Bts:issue5770)
287 * subrepo: use per-type config options to enable subrepos
286 * subrepo: use per-type config options to enable subrepos
288 * svnsubrepo: check if subrepo is missing when checking dirty state (Bts:issue5657)
287 * svnsubrepo: check if subrepo is missing when checking dirty state (Bts:issue5657)
289 * test-bookmarks-pushpull: stabilize for Windows
288 * test-bookmarks-pushpull: stabilize for Windows
290 * test-run-tests: stabilize the test (Bts:issue5735)
289 * test-run-tests: stabilize the test (Bts:issue5735)
290 * tests: show symlink traversal across subrepo mount point (SEC)
291 * tr-summary: keep a weakref to the unfiltered repository
291 * tr-summary: keep a weakref to the unfiltered repository
292 * unamend: fix command summary line
292 * unamend: fix command summary line
293 * uncommit: unify functions _uncommitdirstate and _unamenddirstate to one
293 * uncommit: unify functions _uncommitdirstate and _unamenddirstate to one
General Comments 0
You need to be logged in to leave comments. Login now