release
102 lines
| 3.0 KiB
| text/plain
|
TextLexer
/ tools / release
fperez
|
r0 | #!/bin/sh | ||
# IPython release script | ||||
PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' ` | ||||
version=`ipython -Version` | ||||
ipdir=~/ipython/ipython | ||||
echo | ||||
echo "Releasing IPython version $version" | ||||
echo "==================================" | ||||
echo "Marking ChangeLog with release information and making NEWS file..." | ||||
# Stamp changelog and save a copy of the status at each version, in case later | ||||
# we want the NEWS file to start from a point before the very last release (if | ||||
# very small interim releases have no significant changes). | ||||
cd $ipdir/doc | ||||
cp ChangeLog ChangeLog.old | ||||
cp ChangeLog ChangeLog.$version | ||||
daystamp=`date +%Y-%m-%d` | ||||
echo $daystamp " ***" Released version $version > ChangeLog | ||||
echo >> ChangeLog | ||||
cat ChangeLog.old >> ChangeLog | ||||
rm ChangeLog.old | ||||
# Build NEWS file | ||||
echo "Changes between the last two releases (major or minor)" > NEWS | ||||
echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS | ||||
echo >> NEWS | ||||
diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS | ||||
cp ChangeLog ChangeLog.previous | ||||
# Clean up build/dist directories | ||||
rm -rf $ipdir/build/* | ||||
rm -rf $ipdir/dist/* | ||||
# Perform local backup | ||||
cd $ipdir/tools | ||||
./bkp.py | ||||
# Build source and binary distros | ||||
cd $ipdir | ||||
./setup.py sdist --formats=gztar | ||||
#./setup.py bdist_rpm --release=py$PYVER | ||||
python2.3 ./setup.py bdist_rpm --release=py23 --python=/usr/bin/python2.3 | ||||
# A 2.4-specific RPM, where we must use the --python option to ensure that | ||||
# the resulting RPM is really built with 2.4 (so things go to | ||||
# lib/python2.4/...) | ||||
python2.4 ./setup.py bdist_rpm --release=py24 --python=/usr/bin/python2.4 | ||||
fperez
|
r92 | # Build eggs | ||
vivainio
|
r145 | python2.3 ./eggsetup.py bdist_egg | ||
python2.4 ./eggsetup.py bdist_egg | ||||
fperez
|
r92 | |||
fperez
|
r0 | # Call the windows build separately, so that the extra Windows scripts don't | ||
# get pulled into Unix builds (setup.py has code which checks for | ||||
# bdist_wininst) | ||||
#./setup.py bdist_wininst --install-script=ipython_win_post_install.py | ||||
# For now, make the win32 installer with a hand-built 2.3.5 python, which is | ||||
# the only one that fixes a crash in the post-install phase. | ||||
$HOME/tmp/local/bin/python2.3 setup.py bdist_wininst \ | ||||
--install-script=ipython_win_post_install.py | ||||
# Register with the Python Package Index (PyPI) | ||||
echo "Registering with PyPI..." | ||||
cd $ipdir | ||||
./setup.py register | ||||
# Upload all files | ||||
cd $ipdir/dist | ||||
echo "Uploading distribution files..." | ||||
fperez
|
r95 | scp * ipython@ipython.scipy.org:www/dist/ | ||
fperez
|
r0 | |||
echo "Uploading backup files..." | ||||
cd ~/ipython/backup | ||||
fperez
|
r95 | scp `ls -1tr | tail -1` ipython@ipython.scipy.org:www/backup/ | ||
fperez
|
r0 | |||
echo "Updating webpage..." | ||||
cd $ipdir/doc | ||||
www=~/ipython/homepage | ||||
cp ChangeLog NEWS $www | ||||
rm -rf $www/doc/* | ||||
cp -r manual.pdf manual/ $www/doc | ||||
cd $www | ||||
./update | ||||
# Alert package maintainers | ||||
echo "Alerting package maintainers..." | ||||
maintainers='fperez@colorado.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com' | ||||
#maintainers='fperez@colorado.edu' | ||||
for email in $maintainers | ||||
do | ||||
echo "Emailing $email..." | ||||
mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \ | ||||
$email < NEWS | ||||
done | ||||
echo "Done!" | ||||