diff options
author | Nick Mathewson <nickm@torproject.org> | 2014-12-22 09:34:55 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2014-12-22 09:34:55 -0500 |
commit | 8b532a8c81577701c1af75d4641f7acb1ce5fc91 (patch) | |
tree | 3adc270cd1a6ddb2ae09764a0ce1f1f46576b754 /scripts | |
parent | 1c05dfd0b6ae9303d1f815a4d610655f32c0cc50 (diff) | |
download | tor-8b532a8c81577701c1af75d4641f7acb1ce5fc91.tar.gz tor-8b532a8c81577701c1af75d4641f7acb1ce5fc91.zip |
Short python script to lint the changes files
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/maint/lintChanges.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/scripts/maint/lintChanges.py b/scripts/maint/lintChanges.py new file mode 100755 index 0000000000..43f2f21685 --- /dev/null +++ b/scripts/maint/lintChanges.py @@ -0,0 +1,46 @@ +#!/usr/bin/python + +import sys +import re + + + +def lintfile(fname): + have_warned = [] + def warn(s): + if not have_warned: + have_warned.append(1) + print fname,":" + print "\t",s + + m = re.search(r'(\d{3,})', fname) + if m: + bugnum = m.group(1) + else: + bugnum = None + + with open(fname) as f: + contents = f.read() + + if bugnum and bugnum not in contents: + warn("bug number %s does not appear"%bugnum) + + lines = contents.split("\n") + isBug = ("bug" in lines[0] or "fix" in lines[0]) + + contents = " ".join(contents.split()) + + if isBug and not re.search(r'(\d+)', contents): + warn("bugfix does not mention a number") + elif isBug and not re.search(r'Fixes bug (\d+)', contents): + warn("bugfix does not say 'Fixes bug XXX'") + + if re.search(r'[bB]ug (\d+)', contents) and not re.search(r'Bugfix on ', contents): + warn("bugfix does not say 'bugfix on X.Y.Z'") + + +if __name__=='__main__': + for fname in sys.argv[1:]: + if fname.endswith("~"): + continue + lintfile(fname) |