Issue #2636 has been updated by R.I. Pienaar.

Thought about it some more, the comments expressed in person about 'but this is 
how Ruby does it too' is wrong,

A current foo module that has foo::bar has:

<pre>
foo
`-- manifests
    |-- bar.pp
    `-- init.pp
</pre>

This is not at all like any programming language, if it was like a normal 
programming language it would be something like:

<pre>
foo
`-- manifests
    |-- foo
    |   `-- bar.pp
    `-- foo.pp
</pre>

In todays module organization if you add foo::baz and foo::baz::quux it looks 
like:

<pre>
foo
`-- manifests
    |-- bar.pp
    |-- baz
    |   `-- quux.pp
    |-- baz.pp
    `-- init.pp
</pre>

Which is like Ruby and other similar languages but very unlike how the module 
namespace works today.  So in puppet language we mix 2 models, one with a flat 
everything in one structure and one more ruby like.

I like the everything in one structure and think it will resonate better with 
sysadmins than the ruby structure and this is why I think the nested example 
should also support being everything in a flat structure in addition to the 
current method - or to deprecate the current method over time.

The module would ideally support looking like this:

<pre>
foo
`-- manifests
    |-- init.pp
    |-- bar.pp
    `-- baz
        |-- init.pp
        `-- quux.pp

</pre>

Which greatly improves consistency, each level of the modules namespace works 
the same way and on the same basic design rather than a mixture of puppet style 
and ruby style in one place.
----------------------------------------
Feature #2636: Improvement to module organization
https://projects.puppetlabs.com/issues/2636

Author: R.I. Pienaar
Status: Needs Decision
Priority: Normal
Assignee: Nigel Kersten
Category: modules
Target version: 
Affected Puppet version: 0.25.0
Keywords: 
Branch: 


hello,

In the case where someone wants to create classes like this:

apache
apache::php
apache::php::gd
apache::php::mysql
etc

it would be nice if all php related classes was in one sub directory, currently 
that isn't possible without the help of import, it would be great if the above 
classes could be laid out like this in addition to the current behaviour:

apache/manifests/php/init.pp <- apache::php
apache/manifests/php/gd.pp <- apache::php::gd

at present we would need to have apache/manifests/php.pp apache::php class in a 
different directory than the rest of the php stuff.



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://projects.puppetlabs.com/my/account

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Bugs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to