[Twisted-Python] Progress report on splitting packages

exarkun at divmod.com exarkun at divmod.com
Tue Apr 20 11:09:36 MDT 2004


On Tue, 20 Apr 2004 11:53:29 -0400, Itamar Shtull-Trauring <itamar at itamarst.org> wrote:
>Three suggestions so far:
> 
> 1. Separate namespaces for each project.
> 
>   twisted.internet
>   conch

  Advantages:

    Easy on developers
    No distutils tricks required
  
  Disadvantages:

    Litters the top-level namespace
    Less uniquely named packages must be renamed

> 
> 2. Keep all projects and core under twisted.
> 
>   twisted.internet
>   twisted.conch
> 

  Advantages:

    Easy on users.
    Keeps the top-level namespace clean.
    Keeps Twisted projects conceptually tied together.
    
  Disadvantages:

    Distutils tricks required
    Missing projects confuse users ("importing twisted.conch failed?  But I have Twisted installed :(")


> 3. Separate namespace for projects, e.g. 't' or 'tmlabs' (Zope3 was
> considering using 'z', though it like it won't happen in the end -
> http://mail.zope.org/pipermail/zope3-dev/2004-April/010469.html)
> 
>   twisted.internet
>   t.conch or tmlabs.conch
> 

  Advantages:

    Keeps the top-level namespace clean.
    Keeps Twisted projects conceptually tied together.
  
  Disadvantages:

    May require distutils tricks.
    Missing projects confuse users, but probably less than in #2


  Amendments to the above advantage/disadvantage lists welcome.

  I mentioned "distutils tricks" a couple times.  So far I have heard both that distutils can and cannot do this.  I suspect that it can, but I would like to hear details on how this would work.  In particular, I would like to know whether "twisted.foo" would exist before the "foo" project was installed, and if it would, both what it would consist of and how it would be treated when twisted core is being upgraded after the "foo" project has been installed (can it cleanly avoid overwriting things?).


  I am not sure which of these I support yet, but I think I am leaning towards #3.

  Jp




More information about the Twisted-Python mailing list