diff --git a/tools/release_windows.py b/tools/release_windows.py new file mode 100644 index 0000000..13460e2 --- /dev/null +++ b/tools/release_windows.py @@ -0,0 +1,46 @@ +""" +build [and upload] Windows IPython releases + +usage: + +python tools/release_windows.py [--github] [--pypi] + +Meant to be run on Windows + +Requires that you have python and python3 on your PATH +""" + +import glob +import os +import shutil +import sys + +from toollib import sh +try: + import gh_api +except ImportError: + gh_api = None + +github = '--github' in sys.argv + +cmd_t = "{py} setup.py bdist_wininst --plat-name=py{v}-{plat}" + +if '--pypi' in sys.argv: + cmd_t += ' --upload' + +for py in ['python', 'python3']: + # deliberately mangle the name, + # so easy_install doesn't find these and do horrible wrong things + v = 3 if py.endswith('3') else 2 + try: + shutil.rmtree('build') + except OSError: + pass + for plat in ['32b-Windows', '64b-Windows']: + cmd = cmd_t.format(**locals()) + sh(cmd) + if github and gh_api: + exe = glob.glob(os.path.join("dist", "ipython-*{v}-{plat}.exe".format(**locals())))[0] + print ("Uploading %s to GitHub" % exe) + desc = "IPython Installer for Python {v}.x on {plat}".format(**locals()) + gh_api.post_download('ipython/ipython', exe, description=desc)