On Fri, 2011-03-04 at 04:43 -0800, Andrey Petrov wrote:
> Re: Excessive dependencies.
> 
> 
> Right now when you 'pip install pyramid' on a fresh environment, you
> get 18 packages installed:
> 
> 
> Chameleon, Mako, MarkupSafe, Paste, PasteDeploy, PasteScript, WebOb,
> pyramid, repoze.lru, translationstring, venusian, zope.component,
> zope.configuration, zope.deprecation, zope.event, zope.i18nmessageid,
> zope.interface, zope.schema

Pyramid depends on 12 distributions directly, the other 7 are transitive
dependencies (you missed setuptools above).

The dependency graph looks like this:

Pyramid
   |
   |------- setuptools
   |
   |------- Chameleon
   |
   |------- Mako
   |          |
   |          ------ MarkupSafe
   |
   |------- PasteScript
   |            |
   |            |---- Paste
   |            
   |------- PasteDeploy
   |            |
   |            |---- Paste
   |
   |------- WebOb
   |
   |------- repoze.lru
   |
   |------- translationstring
   |
   |------- venusian
   |
   |-------- zope.component
   |               |
   |               |---- zope.interface
   |               |
   |               ------ zope.i18nmessageid
   |
   |-------- zope.configuration
   |               |
   |               |---- zope.interface
   |               |
   |               |---- zope.schema
   |               |
   |               |---- zope.i18nmessageid
   |               
   |
   |
   |-------- zope.configuration
   |               |
   |               |--- zope.schema
   |
   |
   |-------- zope.deprecation
   |
   |-------- zope.interface


Of these, the only ones to very easily *not* install would be Mako,
Chameleon, PasteScript, Paste, and PasteDeploy.  The others are core
dependencies that really can't very easily be externalized.

Doing that would take us down to 13 dependencies.  We could indeed make
"pyramid_chameleon" and "pyramid_mako" and "pyramid_paste" packages to
restore the functionality for users of those dependencies.

Would that actually service any particular goal?  Would having fewer
"rails" in the core actually make anybody happier?

- C


> What about this alternative: Instead of installing all the possible
> dependencies in advance, we only install the bare minimum* needed to
> generate a project template and populate the project's setup.py (or
> requirements.txt) with all the necessary additional dependencies
> depending on which template was used or what options were chosen.
> 
> 
> Perhaps we could even auto-pip install -r requirements.txt as soon as
> the project template is created.
> 
> 
> This would cut down the base pyramid dependencies to just pyramid and
> Paste*, and the consequent project dependencies would be a few shorter
> than the total.
> 
> 
> Sounds like there is probably a magnitude of reasons why this is a bad
> idea, but worth bringing up.
> 
> 
> [*] Or perhaps instead of the absolute bare minimum, it could be a
> "reasonable minimum".
> 
> 
> - shazow
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "pylons-devel" group.
> To post to this group, send email to pylons-devel@googlegroups.com.
> To unsubscribe from this group, send email to pylons-devel
> +unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/pylons-devel?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
"pylons-devel" group.
To post to this group, send email to pylons-devel@googlegroups.com.
To unsubscribe from this group, send email to 
pylons-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/pylons-devel?hl=en.

Reply via email to