stankevich/puppet-python — pull request #20 by fgimian (2013-06-04 02:06:18+00:00)
Title: Stability & performance improvements along with a few new features (take what you wish)

Hey there,

I've made some relatively big changes to the puppet-python module to improve on the following aspects:

* Touched up a syntax error which was causing problems with running on our servers.
* Made virtualenv detection more robust by searching for the activate executable rather than just the virtualenv directory.
* Removed recursive permission checking on the virtualenv. This was causing huge CPU usage on my server (> 95%) and very long delays when big packages were installed. To ensure that permissions are correct, I had to add an owner parameter to the pip class.
* Added the ability to set environment variables in all classes that call pip (useful for libraries that have C dependencies, like cx_Oracle or gevent).
* Cleaned up several permission problems which would occur by explicitly setting cwd and log-path where necessary.
* Made the pip package independent from the dev package in the python class.
* Updated all documentation with my changes.

Naturally, my changes break some backwards compatibility:

* All pip definitions MUST include the owner field which specifies which user owns the virtualenv that packages will be installed in. Adding this greatly improves performance and efficiency of this module.
* You must explicitly specify pip => true in the python class if you want pip installed. As such, the pip package is now independent of the dev package and so one can exist without the other.

I will likely continue my fork as I plan to remove some functionality for my own use. But I just thought I'd share my changes with you in case you were interested in making use of anything :)

If you have any questions, please let me know
Fotis