Skip to content

Commit 63deee0

Browse files
committed
release 0.12.3
1 parent 22992a0 commit 63deee0

File tree

2 files changed

+51
-33
lines changed

2 files changed

+51
-33
lines changed

CHANGES

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Flask Changelog
55
Version 0.12.3
66
--------------
77

8-
Bugfix release, unreleased
8+
Released on April 26th 2018
99

1010
- :func:`Request.get_json` no longer accepts arbitrary encodings.
1111
Incoming JSON should be encoded using UTF-8 per :rfc:`8259`, but

scripts/make-release.py

+50-32
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,41 @@
11
#!/usr/bin/env python
2-
# -*- coding: utf-8 -*-
3-
"""
4-
make-release
5-
~~~~~~~~~~~~
6-
7-
Helper script that performs a release. Does pretty much everything
8-
automatically for us.
9-
10-
:copyright: (c) 2015 by Armin Ronacher.
11-
:license: BSD, see LICENSE for more details.
12-
"""
132
from __future__ import print_function
14-
import sys
3+
154
import os
165
import re
17-
from datetime import datetime, date
18-
from subprocess import Popen, PIPE
6+
import sys
7+
from datetime import date, datetime
8+
from subprocess import PIPE, Popen
199

20-
_date_clean_re = re.compile(r'(\d+)(st|nd|rd|th)')
10+
_date_strip_re = re.compile(r'(?<=\d)(st|nd|rd|th)')
2111

2212

2313
def parse_changelog():
2414
with open('CHANGES') as f:
2515
lineiter = iter(f)
2616
for line in lineiter:
2717
match = re.search('^Version\s+(.*)', line.strip())
18+
2819
if match is None:
2920
continue
21+
3022
version = match.group(1).strip()
31-
if lineiter.next().count('-') != len(match.group(0)):
23+
24+
if next(lineiter).count('-') != len(match.group(0)):
3225
continue
26+
3327
while 1:
34-
change_info = lineiter.next().strip()
28+
change_info = next(lineiter).strip()
29+
3530
if change_info:
3631
break
3732

38-
match = re.search(r'released on (\w+\s+\d+\w+\s+\d+)'
39-
r'(?:, codename (.*))?(?i)', change_info)
33+
match = re.search(
34+
r'released on (\w+\s+\d+\w+\s+\d+)(?:, codename (.*))?',
35+
change_info,
36+
flags=re.IGNORECASE
37+
)
38+
4039
if match is None:
4140
continue
4241

@@ -46,15 +45,16 @@ def parse_changelog():
4645

4746
def bump_version(version):
4847
try:
49-
parts = map(int, version.split('.'))
48+
parts = [int(i) for i in version.split('.')]
5049
except ValueError:
5150
fail('Current version is not numeric')
51+
5252
parts[-1] += 1
5353
return '.'.join(map(str, parts))
5454

5555

5656
def parse_date(string):
57-
string = _date_clean_re.sub(r'\1', string)
57+
string = _date_strip_re.sub('', string)
5858
return datetime.strptime(string, '%B %d %Y')
5959

6060

@@ -65,9 +65,13 @@ def inject_version(match):
6565
before, old, after = match.groups()
6666
changed.append(True)
6767
return before + version_number + after
68+
6869
with open(filename) as f:
69-
contents = re.sub(r"^(\s*%s\s*=\s*')(.+?)(')(?sm)" % pattern,
70-
inject_version, f.read())
70+
contents = re.sub(
71+
r"^(\s*%s\s*=\s*')(.+?)(')" % pattern,
72+
inject_version, f.read(),
73+
flags=re.DOTALL | re.MULTILINE
74+
)
7175

7276
if not changed:
7377
fail('Could not find %s in %s', pattern, filename)
@@ -81,8 +85,9 @@ def set_init_version(version):
8185
set_filename_version('flask/__init__.py', version, '__version__')
8286

8387

84-
def build_and_upload():
85-
Popen([sys.executable, 'setup.py', 'release', 'sdist', 'bdist_wheel', 'upload']).wait()
88+
def build():
89+
cmd = [sys.executable, 'setup.py', 'sdist', 'bdist_wheel']
90+
Popen(cmd).wait()
8691

8792

8893
def fail(message, *args):
@@ -95,7 +100,9 @@ def info(message, *args):
95100

96101

97102
def get_git_tags():
98-
return set(Popen(['git', 'tag'], stdout=PIPE).communicate()[0].splitlines())
103+
return set(
104+
Popen(['git', 'tag'], stdout=PIPE).communicate()[0].splitlines()
105+
)
99106

100107

101108
def git_is_clean():
@@ -116,29 +123,40 @@ def main():
116123
os.chdir(os.path.join(os.path.dirname(__file__), '..'))
117124

118125
rv = parse_changelog()
126+
119127
if rv is None:
120128
fail('Could not parse changelog')
121129

122130
version, release_date, codename = rv
123-
dev_version = bump_version(version) + '-dev'
131+
dev_version = bump_version(version) + '.dev'
124132

125-
info('Releasing %s (codename %s, release date %s)',
126-
version, codename, release_date.strftime('%d/%m/%Y'))
133+
info(
134+
'Releasing %s (codename %s, release date %s)',
135+
version, codename, release_date.strftime('%d/%m/%Y')
136+
)
127137
tags = get_git_tags()
128138

129139
if version in tags:
130140
fail('Version "%s" is already tagged', version)
141+
131142
if release_date.date() != date.today():
132-
fail('Release date is not today (%s != %s)',
133-
release_date.date(), date.today())
143+
fail(
144+
'Release date is not today (%s != %s)',
145+
release_date.date(), date.today()
146+
)
134147

135148
if not git_is_clean():
136149
fail('You have uncommitted changes in git')
137150

151+
try:
152+
import wheel # noqa: F401
153+
except ImportError:
154+
fail('You need to install the wheel package.')
155+
138156
set_init_version(version)
139157
make_git_commit('Bump version number to %s', version)
140158
make_git_tag(version)
141-
build_and_upload()
159+
build()
142160
set_init_version(dev_version)
143161

144162

0 commit comments

Comments
 (0)