[Distutils] Setuptools: omit namespace package directories?

Jim Fulton jim at zope.com
Fri Feb 9 15:15:44 CET 2007

On Feb 9, 2007, at 3:08 AM, Thomas Lotze wrote:

> Jim Fulton wrote:
>>> when writing a buildout recipe, the cleanest thing is to use several
>>> namespaces, like zc.recipe.egg does.
>> I don't agree that this is cleanest.  I made a mistake by  
>> introducing the
>> recipe namespace.  New recipes I write won't use this.  "Flat is  
>> better
>> than nested."
> To comment on buildout specifically, which I had only brought up as an
> example, though:
>   While I agree with "flat is better than nested" most of the time, I
>   don't when it comes to buildout recipes. It's the nature of buildout
>   that some recipes deal with software that has a name of its own, or
>   with general concepts. You wouldn't want to call a recipe for  
> installing
>   libfoo something like zc.foo or zc.libfoo

Right, I'd call it zc.libfoorecipe.

> as everybody would think it's
>   your libfoo binding, and a name such as gocept.download is a bit too
>   non-descriptive for my taste. So there should be a hint at  
> buildout or
>   recipes in the (dotted) name. Personally, I prefer a recipe  
> namespace
>   for recipes that deal with third-party software or generalities,  
> and a
>   recipe subpackage for one's own projects. Anything else feels rather
>   non-elegant to me, but this might just be a matter of taste.  
> What's your
>   preferred naming scheme for new recipes?


Abstractly, namespace.recipe.foo is appealing except for the  
directory management issue. But the directory management issue is a  
significant one.


>> IMO, the only needed hygiene is the top-level namespace.  (Maybe a  
>> huge
>> organization would need sub namespaces, but we don't.)
> I don't think it's a matter of running out of names when you have  
> to name
> too many unrelated things,

Maybe not for you, but it is for me. In particular, I want to be able  
to name something without worrying about whether someone else has  
taken the name.  The zc namespace protects me from that.  I only need  
one level of namespace for that.

> but one of finding concise and descriptive
> names for related or generic stuff. Descriptive and unique names in  
> a flat
> namespace tend to grow long and in some cases, unreadable unless you
> violate PEP 8 and  stick in an underscore or two.
> For example, I'm writing a bunch of buildout recipes for Apache  
> stuff, and
> I'm not going to choose names such as tl.apache or  
> tl.buildoutmodpython.
> Without introducing a namespace for my buildout recipes,  
> buildout_apache
> and buildout_modpython is the least annoying naming scheme I can  
> come up
> with.

Why not just tl.apacherecipes, which could contain all of your apache  

> (BTW: Did I just miss something, or do recipes for these really not
> exist yet?)

I don't know, are you done yet? ;)


Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org

More information about the Distutils-SIG mailing list