ipython/ipython — pull request #4547 by mgaitan (2013-11-15 21:34:45+00:00)
Title: Support wheel package (and upload it to PyPi)

[Wheels](https://pypi.python.org/pypi/wheel) are the [new standard](http://www.python.org/dev/peps/pep-0427) of python distribution and are intended to replace eggs. Among other advantages, they offer faster installation and allow secure digital signing.

As IPython is a pure-python [1] package compatible with Python 2 and 3, it can be declared as a "wheel universal", in order to build a `.whl` package valid for any platform/python version.
To build the package (It requires `setuptools > 0.8` and `wheel`. )

$ python setup.py bdist_wheel

or (to build and upload to pypi):

$ python setup.py bdist_wheel upload

In order to compare the results, the `.whl` is 64% lighter than the standard `tar.gz` generated through `sdist`:

(ipython)mgaitan@traful:~/lab/ipython$ ls -hl dist/
-rw-rw-r-- 1 mgaitan mgaitan 3,1M nov 15 18:08 ipython-2.0.0_dev-py2.py3-none-any.whl
-rw-rw-r-- 1 mgaitan mgaitan 8,5M nov 15 17:44 ipython-2.0.0-dev.tar.gz

And it's also much faster to install

(ipython)mgaitan@traful:~/lab/ipython$ time pip install dist/ipython-2.0.0-dev.tar.gz
Unpacking ./dist/ipython-2.0.0-dev.tar.gz
Running setup.py egg_info for package from file:///home/mgaitan/lab/ipython/dist/ipython-2.0.0-dev.tar.gz
[...] // clipped
Successfully installed ipython
Cleaning up...

real	0m2.091s
user	0m1.840s
sys	0m0.396s

(ipython)mgaitan@traful:~/lab/ipython$ time pip install dist/ipython-2.0.0_dev-py2.py3-none-any.whl
Unpacking ./dist/ipython-2.0.0_dev-py2.py3-none-any.whl
Cleaning up...

real	0m0.328s
user	0m0.256s
sys	0m0.068s

Moreover, `pip >= 1.4` supports wheels. (with `--use-wheel` flag).

This will means terabytes of bandwith and energy saved :).

[1]: although it contains data file as statics for the notebook