[Python-Dev] first pass at a release checker
Anthony Baxter
anthony at interlink.com.au
Wed Oct 1 09:52:50 EDT 2003
Here's the first hack at a quick script for checking a release
tarball for sanity. Please suggest additional checks to make.
At the moment it checks:
tarball name
tarball unpacks to a correctly named directory
no CVS directories in the tarball
no Release date: XXX in Misc/NEWS
"configure ; make ; make test" works
Additional checks I plan to add at some point:
check the version number in Include/patchlevel.h
check the version number and build number in the windows-specific area
Where should something like this (cleaned up a bit) be checked in?
Tools/something?
Anthony
def Error(message):
import sys
print "ERROR:", message
sys.exit(1)
def searchFile(filename, searchPattern, badPattern):
import re
searchRe = re.compile(searchPattern)
badPatternRe = re.compile(badPattern)
for line in open(filename):
if searchRe.match(line):
if badPatternRe.search(line):
Error("found %s in %s"%(badPattern, filename))
def main(tarball):
import os
# make tarball path absolute
if tarball[0] != "/":
tarball = os.path.join(os.getcwd(), tarball)
if tarball[-4:] != ".tgz":
Error("tarball should end in .tgz")
# Check tarball is gzipped, maybe check compression level?
reldir = "checkrel-%d"%(os.getpid())
os.mkdir(reldir)
os.chdir(reldir)
print "extracting in %s"%reldir
print "tarball is %s"%(tarball)
os.system("tar xzf %s"%(tarball))
relname = os.path.basename(tarball)[:-4]
entries = os.listdir(".")
if len(entries) != 1 or entries[0] != relname:
Error("tarball should have only created %s"%relname)
os.chdir(relname)
for dirpath, dirnames, filenames in os.walk('.'):
if "CVS" in dirnames:
Error("%s contains a CVS directory!"%dirpath)
# additional checks go here.
searchFile("Misc/NEWS", "^\*Release date:", "XXX")
os.system("./configure")
os.system("make")
os.system("make testall")
import sys
main(sys.argv[1])
More information about the Python-Dev
mailing list