diff util/generate_changelog.py @ 572:442cf576ae25

cm: CHANGELOG generator can handle future versions.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 31 Oct 2015 21:46:05 -0700
parents 9a00e694b42c
children 7940861ff9bc
line wrap: on
line diff
--- a/util/generate_changelog.py	Sat Oct 31 08:59:53 2015 -0700
+++ b/util/generate_changelog.py	Sat Oct 31 21:46:05 2015 -0700
@@ -1,7 +1,8 @@
 import os
 import os.path
 import re
-import sys
+import time
+import argparse
 import subprocess
 
 
@@ -32,11 +33,18 @@
 
 
 def generate():
-    out_file = 'CHANGELOG.rst'
-    if len(sys.argv) > 1:
-        out_file = sys.argv[1]
+    parser = argparse.ArgumentParser(description='Generate CHANGELOG file.')
+    parser.add_argument(
+            'out_file',
+            nargs='?',
+            default='CHANGELOG.rst',
+            help='The output file.')
+    parser.add_argument(
+            '--last',
+            help="The version for the last few untagged changes.")
+    args = parser.parse_args()
 
-    print("Generating %s" % out_file)
+    print("Generating %s" % args.out_file)
 
     if not os.path.exists('.hg'):
         raise Exception("You must run this script from the root of a "
@@ -49,7 +57,7 @@
 
     templates = _get_templates()
 
-    with open(out_file, 'w') as fp:
+    with open(args.out_file, 'w') as fp:
         fp.write(templates['header'])
 
         skip = False
@@ -57,6 +65,13 @@
         current_version = 0
         current_version_info = None
         current_changes = None
+
+        if args.last:
+            current_version = 1
+            cur_date = time.strftime('%Y-%m-%d')
+            current_version_info = args.last, cur_date
+            current_changes = {}
+
         for line in hglog.splitlines():
             if line == '':
                 skip = False