summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDavid Lord <davidism@gmail.com>2017-11-01 07:57:12 -0700
committerDavid Lord <davidism@gmail.com>2017-11-08 10:53:47 -0800
commitd9d3fc32f0b7584af5c371639bc7882449bb6f6d (patch)
tree1e3a7beaddef0d289de87b8fed084b651eb7be4d /scripts
parent072cdf97fa2899efe1d12715edf19706b6425fb5 (diff)
downloadjinja2-d9d3fc32f0b7584af5c371639bc7882449bb6f6d.tar.gz
clean up MANIFEST.in
clean up make-release.py for py3 add rst extension to CHANGES for GitHub clean up changelog formatting
Diffstat (limited to 'scripts')
-rw-r--r--scripts/make-release.py76
1 files changed, 46 insertions, 30 deletions
diff --git a/scripts/make-release.py b/scripts/make-release.py
index 6ea7162..51c3700 100644
--- a/scripts/make-release.py
+++ b/scripts/make-release.py
@@ -10,39 +10,42 @@
:copyright: (c) 2011 by Armin Ronacher.
:license: BSD, see LICENSE for more details.
"""
-import sys
+from __future__ import print_function
+
import os
import re
-from datetime import datetime, date
-from subprocess import Popen, PIPE
-
-try:
- import wheel
-except ImportError:
- wheel = None
+import sys
+from datetime import date, datetime
+from subprocess import PIPE, Popen
_date_strip_re = re.compile(r'(?<=\d)(st|nd|rd|th)')
def parse_changelog():
- with open('CHANGES') as f:
+ with open('CHANGES.rst') as f:
lineiter = iter(f)
for line in lineiter:
match = re.search('^Version\s+(.*)', line.strip())
+
if match is None:
continue
- length = len(match.group(1))
+
version = match.group(1).strip()
- if lineiter.next().count('-') != len(match.group(0)):
+
+ if next(lineiter).count('-') != len(match.group(0)):
continue
+
while 1:
- change_info = lineiter.next().strip()
+ change_info = next(lineiter).strip()
+
if change_info:
break
- match = re.search(r'(?:codename (.*),\s*)?'
- r'released on (\w+\s+\d+\w+\s+\d+)(?i)',
- change_info)
+ match = re.search(
+ r'(?:codename (.*),\s*)?released on (\w+\s+\d+\w+\s+\d+)(?i)',
+ change_info
+ )
+
if match is None:
continue
@@ -52,9 +55,10 @@ def parse_changelog():
def bump_version(version):
try:
- parts = map(int, version.split('.'))
+ parts = [int(i) for i in version.split('.')]
except ValueError:
fail('Current version is not numeric')
+
parts[-1] += 1
return '.'.join(map(str, parts))
@@ -66,13 +70,17 @@ def parse_date(string):
def set_filename_version(filename, version_number, pattern):
changed = []
+
def inject_version(match):
before, old, after = match.groups()
changed.append(True)
return before + version_number + after
+
with open(filename) as f:
- contents = re.sub(r"^(\s*%s\s*=\s*')(.+?)(')(?sm)" % pattern,
- inject_version, f.read())
+ contents = re.sub(
+ r"^(\s*%s\s*=\s*')(.+?)(')(?sm)" % pattern,
+ inject_version, f.read()
+ )
if not changed:
fail('Could not find %s in %s', pattern, filename)
@@ -92,23 +100,23 @@ def set_setup_version(version):
def build_and_upload():
- cmd = [sys.executable, 'setup.py', 'sdist', 'bdist_wheel', 'upload']
- if wheel is not None:
- cmd.insert(4, 'bdist_wheel')
+ cmd = [sys.executable, 'setup.py', 'sdist', 'bdist_wheel']
Popen(cmd).wait()
def fail(message, *args):
- print >> sys.stderr, 'Error:', message % args
+ print('Error:', message % args, file=sys.stderr)
sys.exit(1)
def info(message, *args):
- print >> sys.stderr, message % args
+ print(message % args, file=sys.stderr)
def get_git_tags():
- return set(Popen(['git', 'tag'], stdout=PIPE).communicate()[0].splitlines())
+ return set(
+ Popen(['git', 'tag'], stdout=PIPE).communicate()[0].splitlines()
+ )
def git_is_clean():
@@ -129,27 +137,35 @@ def main():
os.chdir(os.path.join(os.path.dirname(__file__), '..'))
rv = parse_changelog()
+
if rv is None:
fail('Could not parse changelog')
version, release_date, codename = rv
dev_version = bump_version(version) + '.dev'
- info('Releasing %s (codename %s, release date %s)',
- version, codename, release_date.strftime('%d/%m/%Y'))
+ info(
+ 'Releasing %s (codename %s, release date %s)',
+ version, codename, release_date.strftime('%d/%m/%Y')
+ )
tags = get_git_tags()
if version in tags:
fail('Version "%s" is already tagged', version)
+
if release_date.date() != date.today():
- fail('Release date is not today (%s != %s)', release_date.date(), date.today())
+ fail(
+ 'Release date is not today (%s != %s)',
+ release_date.date(), date.today()
+ )
if not git_is_clean():
fail('You have uncommitted changes in git')
- if wheel is None:
- print ('Warning: You need to install the wheel package '
- 'to upload a wheel distribution.')
+ try:
+ import wheel
+ except ImportError:
+ fail('You need to install the wheel package.')
set_init_version(version)
set_setup_version(version)