On 7/1/12 8:50 PM, Marcus wrote:
FWIW I have started a "pypi2rpm" project that creates RPM out of PyPI projects, we use at Mozilla to deploy our apps, http://pypi.python.org/pypi/pypi2rpm
It's just a glue script on the top of an isolated bdist_rpm command and distutils2.version (for sorting versions) but you can also pass your spec file for a given
project and have Fedora/RHEL specific options (like adding python26- prefixes etc)


Hello Tarek:
if you have anything that details your rpm deployment workflow at mozilla, i'd love to see it.
I work in a very active build environment, and repetitive"setup.py build" time is pain point.
currently, we have a pretty fragile virtualenv caching strategy, and I've even considered patching distutils so that "setup.py build" would somehow work against a cache.
currently, my mindset is to migrate to a modular rpm install strategy (managed by puppet) to prevent wasteful build time.

Marcus
P.S. Daniel's "wheel" format is another possible to answer to my concern


To speed up deployments, we use pip's --download-cache option, so all builds on the box share the downloaded tarballs.

We also use our own local mirror, and an extra apache directory for packages that are not on pypi.

I have also added a proxy that returns a 404 when pip tries to hit the net, to simulate the --allow-hosts option easy_install has.

Everything is driven from a Makefile. Example: https://github.com/mozilla-services/tokenserver/blob/master/Makefile
The script to create RPMs is at https://github.com/mozilla-services/mopytools

HTH
Tarek