##// END OF EJS Templates
Remove unnecessary metaclass and allow registration of magic classes....
Remove unnecessary metaclass and allow registration of magic classes. This lets us register uninstantiated magic classes as well, making the init logic a bit cleaner in the main shell class.

File last commit:

r6605:f833039d
r6927:580a081f
Show More
release
65 lines | 1.5 KiB | text/plain | TextLexer
#!/usr/bin/env python
"""IPython release script.
This should ONLY be run at real release time.
"""
from __future__ import print_function
from toollib import *
# Get main ipython dir, this will raise if it doesn't pass some checks
ipdir = get_ipdir()
tooldir = pjoin(ipdir, 'tools')
distdir = pjoin(ipdir, 'dist')
# Where I keep static backups of each release
ipbackupdir = os.path.expanduser('~/ipython/backup')
# Start in main IPython dir
cd(ipdir)
# Load release info
execfile(pjoin('IPython','core','release.py'))
# Build site addresses for file uploads
release_site = '%s/release/%s' % (archive, version)
backup_site = '%s/backup/' % archive
# Start actual release process
print()
print('Releasing IPython')
print('=================')
print()
print('Version:', version)
print()
print('Source IPython directory:', ipdir)
print()
# Perform local backup, go to tools dir to run it.
cd(tooldir)
sh('./make_tarball.py')
sh('mv ipython-*.tgz %s' % ipbackupdir)
# Build release files
sh('./build_release %s' % ipdir)
# Register with the Python Package Index (PyPI)
print( 'Registering with PyPI...')
cd(ipdir)
sh('./setup.py register')
# Upload all files
for cmd in [sdists, eggs] + win_builds:
sh(cmd + ' upload')
cd(distdir)
print( 'Uploading distribution files...')
# Make target dir if it doesn't exist
sh('ssh %s "mkdir -p %s/release/%s" ' % (archive_user, archive_dir, version))
sh('scp * %s' % release_site)
print( 'Uploading backup files...')
cd(ipbackupdir)
sh('scp `ls -1tr *tgz | tail -1` %s' % backup_site)
print('Done!')