[Python-checkins] r73630 - sandbox/trunk/release/release.py
benjamin.peterson
python-checkins at python.org
Sun Jun 28 22:27:40 CEST 2009
Author: benjamin.peterson
Date: Sun Jun 28 22:27:39 2009
New Revision: 73630
Log:
eat my own dog food; convert this to Python 3
Modified:
sandbox/trunk/release/release.py
Modified: sandbox/trunk/release/release.py
==============================================================================
--- sandbox/trunk/release/release.py (original)
+++ sandbox/trunk/release/release.py Sun Jun 28 22:27:39 2009
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
"""An assistant for making Python releases.
@@ -6,8 +6,6 @@
Additions by Barry Warsaw and Benjamin Peterson
"""
-from __future__ import with_statement
-
import sys
import os
import hashlib
@@ -18,9 +16,9 @@
import tempfile
import time
-from contextlib import nested, contextmanager
+from contextlib import contextmanager
from string import Template
-from urlparse import urlsplit, urlunsplit
+from urllib.parse import urlsplit, urlunsplit
COMMASPACE = ', '
SPACE = ' '
@@ -30,16 +28,16 @@
# Ideas stolen from Mailman's release script, Lib/tokens.py and welease
def error(*msgs):
- print >> sys.stderr, '**ERROR**'
+ print('**ERROR**', file=sys.stderr)
for msg in msgs:
- print >> sys.stderr, msg
+ print(msg, file=sys.stderr)
sys.exit(1)
def run_cmd(args, silent=False):
cmd = SPACE.join(args)
if not silent:
- print 'Executing %s' % cmd
+ print('Executing %s' % cmd)
try:
if silent:
code = subprocess.call(cmd, shell=True, stdout=PIPE)
@@ -86,14 +84,14 @@
"""
start_tag = comment_start + '--start constants--' + comment_end
end_tag = comment_start + '--end constants--' + comment_end
- with nested(open(fn), open(fn + '.new', 'w')) as (infile, outfile):
+ with open(fn) as infile, open(fn + '.new', 'w') as outfile:
found_constants = False
waiting_for_end = False
for line in infile:
if line[:-1] == start_tag:
- print >> outfile, start_tag
- print >> outfile, updated_constants
- print >> outfile, end_tag
+ print(start_tag, file=outfile)
+ print(updated_constants, file=outfile)
+ print(end_tag, file=outfile)
waiting_for_end = True
found_constants = True
elif line[:-1] == end_tag:
@@ -108,7 +106,7 @@
def tweak_patchlevel(tag, done=False):
- print 'Updating Include/patchlevel.h...',
+ print('Updating Include/patchlevel.h...', end=' ')
template = Template("""\
#define PY_MAJOR_VERSION\t$major
#define PY_MINOR_VERSION\t$minor
@@ -131,41 +129,41 @@
substitutions['text'] += '+'
new_constants = template.substitute(substitutions)
constant_replace('Include/patchlevel.h', new_constants)
- print 'done'
+ print('done')
def bump(tag):
- print 'Bumping version to %s' % tag
+ print('Bumping version to %s' % tag)
wanted_file = 'Misc/RPM/python-%s.spec' % tag.basic_version
- print 'Updating %s' % wanted_file,
+ print('Updating %s' % wanted_file, end=' ')
if not os.path.exists(wanted_file):
specs = os.listdir('Misc/RPM/')
for file in specs:
if file.startswith('python-'):
break
full_path = os.path.join('Misc/RPM/', file)
- print '\nrenaming %s to %s' % (full_path, wanted_file)
+ print('\nrenaming %s to %s' % (full_path, wanted_file))
run_cmd(['svn', 'rename', '--force', full_path, wanted_file])
- print 'File was renamed; please commit'
+ print('File was renamed; please commit')
run_cmd(['svn', 'commit'])
new = '%define version ' + tag.text + \
'\n%define libver ' + tag.basic_version
constant_replace(wanted_file, new, '#', '')
- print 'done'
+ print('done')
tweak_patchlevel(tag)
- print 'Updating Lib/idlelib/idlever.py...',
+ print('Updating Lib/idlelib/idlever.py...', end=' ')
with open('Lib/idlelib/idlever.py', 'w') as fp:
new = 'IDLE_VERSION = "%s"\n' % tag.next_text
fp.write(new)
- print 'done'
+ print('done')
- print 'Updating Lib/distutils/__init__.py...',
+ print('Updating Lib/distutils/__init__.py...', end=' ')
new = '__version__ = "%s"' % tag.text
constant_replace('Lib/distutils/__init__.py', new, '#', '')
- print 'done'
+ print('done')
extra_work = False
other_files = ['README', 'Misc/NEWS']
@@ -179,15 +177,15 @@
'LICENSE',
'Doc/license.rst',
]
- print '\nManual editing time...'
+ print('\nManual editing time...')
for fn in other_files:
- print 'Edit %s' % fn
+ print('Edit %s' % fn)
manual_edit(fn)
- print 'Bumped revision'
+ print('Bumped revision')
if extra_work:
- print 'configure.in has change; re-run autotools !'
- print 'Please commit and use --tag'
+ print('configure.in has change; re-run autotools !')
+ print('Please commit and use --tag')
def manual_edit(fn):
@@ -196,7 +194,7 @@
@contextmanager
def changed_dir(new):
- print 'chdir\'ing to %s' % new
+ print('chdir\'ing to %s' % new)
old = os.getcwd()
os.chdir(new)
try:
@@ -211,35 +209,35 @@
if not os.path.isdir('dist'):
error('dist/ is not a directory')
else:
- print 'created dist directory'
+ print('created dist directory')
def tarball(source):
"""Build tarballs for a directory."""
- print 'Making .tgz'
+ print('Making .tgz')
base = os.path.basename(source)
tgz = base + '.tgz'
bz = base + '.tar.bz2'
run_cmd(['tar cf - %s | gzip -9 > %s' % (source, tgz)])
- print "Making .tar.bz2"
+ print("Making .tar.bz2")
run_cmd(['tar cf - %s | bzip2 -9 > %s' %
(source, bz)])
- print 'Calculating sha1 sums'
+ print('Calculating sha1 sums')
checksum_tgz = hashlib.sha1()
with open(tgz, 'rb') as data:
checksum_tgz.update(data.read())
checksum_bz2 = hashlib.sha1()
with open(bz, 'rb') as data:
checksum_bz2.update(data.read())
- print ' %s %8s %s' % (
- checksum_tgz.hexdigest(), int(os.path.getsize(tgz)), tgz)
- print ' %s %8s %s' % (
- checksum_bz2.hexdigest(), int(os.path.getsize(bz)), bz)
+ print(' %s %8s %s' % (
+ checksum_tgz.hexdigest(), int(os.path.getsize(tgz)), tgz))
+ print(' %s %8s %s' % (
+ checksum_bz2.hexdigest(), int(os.path.getsize(bz)), bz))
with open(tgz + '.sha1', 'w') as fp:
fp.write(checksum_tgz.hexdigest())
with open(bz + '.sha1', 'w') as fp:
fp.write(checksum_bz2.hexdigest())
- print 'Signing tarballs'
+ print('Signing tarballs')
os.system('gpg -bas ' + tgz)
os.system('gpg -bas ' + bz)
@@ -248,13 +246,13 @@
make_dist()
old_cur = os.getcwd()
with changed_dir('dist'):
- print 'Exporting tag:', tag.text
+ print('Exporting tag:', tag.text)
archivename = 'Python-%s' % tag.text
run_cmd(['svn', 'export', '-q',
'http://svn.python.org/projects/python/tags/r%s'
% tag.nickname, archivename])
with changed_dir(archivename):
- print 'Removing .hgignore and .bzrignore'
+ print('Removing .hgignore and .bzrignore')
for name in ('.hgignore', '.bzrignore'):
try:
os.unlink(name)
@@ -266,8 +264,8 @@
if os.path.exists('Python/opcode_targets.h'):
# This file isn't in Python < 3.1
touchables.append('Python/opcode_targets.h')
- print 'Touching:', COMMASPACE.join(name.rsplit('/', 1)[-1]
- for name in touchables)
+ print('Touching:', COMMASPACE.join(name.rsplit('/', 1)[-1]
+ for name in touchables))
for name in touchables:
os.utime(name, None)
@@ -275,7 +273,7 @@
shutil.copytree(docdist, 'docs')
with changed_dir(os.path.join(archivename, 'Doc')):
- print 'Removing doc build artifacts'
+ print('Removing doc build artifacts')
shutil.rmtree('build')
shutil.rmtree('dist')
shutil.rmtree('tools/docutils')
@@ -290,13 +288,13 @@
os.mkdir('src')
with changed_dir('src'):
tarball(os.path.join("..", archivename))
- print '\n**Now extract the archives in dist/src and run the tests**'
- print '**You may also want to run make install and re-test**'
+ print('\n**Now extract the archives in dist/src and run the tests**')
+ print('**You may also want to run make install and re-test**')
def build_docs():
"""Build and tarball the documentation"""
- print "Building docs"
+ print("Building docs")
with changed_dir('Doc'):
run_cmd(['make', 'dist'])
return os.path.abspath('dist')
@@ -307,12 +305,12 @@
def scp(from_loc, to_loc):
run_cmd(['scp %s %s' % (from_loc, to_loc)])
with changed_dir('dist'):
- print "Uploading source tarballs"
+ print("Uploading source tarballs")
scp('src', '/data/python-releases/%s' % tag.nickname)
- print "Upload doc tarballs"
+ print("Upload doc tarballs")
scp('docs', '/data/python-releases/doc/%s' % tag.nickname)
- print "* Now change the permissions on the tarballs so they are " \
- "writable by the webmaster group. *"
+ print("* Now change the permissions on the tarballs so they are " \
+ "writable by the webmaster group. *")
class Tag(object):
@@ -348,8 +346,8 @@
def branch(tag):
if tag.patch > 0 or tag.level != "f":
- print 'It doesn\'t look like you\'re making a final release.'
- if raw_input('Are you sure you want to branch?') != "y":
+ print('It doesn\'t look like you\'re making a final release.')
+ if input('Are you sure you want to branch?') != "y":
return
url = urlsplit(get_current_location())
new_path = 'python/branches/release%s%s-maint' % (tag.major, tag.minor)
@@ -389,7 +387,7 @@
"""
def update_news():
- print "Updating Misc/NEWS"
+ print("Updating Misc/NEWS")
with open('Misc/NEWS') as fp:
lines = fp.readlines()
for i, line in enumerate(lines):
@@ -404,7 +402,7 @@
fp.writelines(lines[:start+1])
fp.write(insert)
fp.writelines(lines[end-1:])
- print "Please fill in the the name of the next version."
+ print("Please fill in the the name of the next version.")
manual_edit('Misc/NEWS')
More information about the Python-checkins
mailing list