/scripts/mkrelease.py
https://bitbucket.org/jpellerin/nose/ · Python · 79 lines · 47 code · 18 blank · 14 comment · 6 complexity · a2bf07ceba171a2736ef0e206828d05d MD5 · raw file
- #!/usr/bin/env python2.6
- #
- #
- # create and upload a release
- import os
- import sys
- import urllib
- from urllib2 import urlopen
- from commands import getstatusoutput
- success = 0
- sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
- import nose
- version = nose.__version__
- SIMULATE = 'exec' not in sys.argv
- if SIMULATE:
- print("# simulated run: run as scripts/mkrelease.py exec "
- "to execute commands")
- def runcmd(cmd):
- print cmd
- if not SIMULATE:
- (status,output) = getstatusoutput(cmd)
- if status != success:
- sys.stderr.write(output)
- sys.stderr.write("\n")
- raise Exception('command did not exit successfully')
- def cd(dir):
- print "cd %s" % dir
- if not SIMULATE:
- os.chdir(dir)
- def main():
- tag = 'release_%s' % version
- # create tag
- runcmd("hg tag -fm 'Tagged release %s' %s" %
- (version, tag))
- # clone a fresh copy
- runcmd('hg clone -r %s . /tmp/nose_%s' % (tag, tag))
- # build release in clone
- cd('/tmp/nose_%s' % tag)
- # remove dev tag from setup
- runcmd('cp setup.cfg.release setup.cfg')
- # build included docs, run tests
- runcmd('tox')
- # make the distributions
- runcmd('python setup.py sdist upload -s')
- # TODO(Kumar) put this back when this bug is fixed:
- # http://bugs.python.org/issue10571
- # runcmd('python3.2 setup.py bdist_egg upload -s')
- runcmd('python setup.py register')
- rtd = 'http://readthedocs.org/build/1137'
- print 'POST %s' % rtd
- if not SIMULATE:
- u = urlopen(rtd,
- # send dummy params to force a POST
- urllib.urlencode({'build': 1}))
- print u.read()
- u.close()
- print '*'
- print "* it's live! Now you can show/hide old releases on PyPI"
- print '*'
- if __name__ == '__main__':
- main()