Replies inline; I've butchered the quoting but will try to keep the 
attribution correct.

[John Bollinger] Part of my premise here is that you cannot reasonably 
> infer from a class declaration alone -- regardless of the form of the 
> declaration -- whether its declaring class intends to contain the declared 
> one.  There has to be something to distinguish the contained case from the 
> non-contained one.


This was a valuable piece of insight, thanks.

[Luke] Maybe PuppetDB makes this all irrelevant because it actually builds 
> a graph that contains both, and makes that graph easily accessible, but… if 
> it's good for PuppetDB, why isn't it good for Puppet?
>

We absolutely plan to consolidate down to one catalog format, which should 
be the one used by PuppetDB. I think the graph refactoring work you'd like 
to see is desirable but should come as a byproduct of writing new code to 
produce and consume these, rather than trying to shoehorn those changes 
onto the anchor pattern work.
 

> [Andy] Here are the possibilities:
>
  * resource like syntax for classes expresses containment:
>
>       class container { class { contained: parameter => value } }
>
>   * a function declares the class *and* expresses containment
>
>       class container { contain(contained, { parameter => value }) }
>
>   * a function expresses containment, but does not declare the class
>
>       class container { class { contained: parameter => value } 
> contain(contained) }
>
>   * a new "resource type" expresses containment
>
>      class container { contain { contained: parameter => value } }
>

I'm most in favour of number 3 here, a function to express the containment 
as a separate thing to declaring the class.
 

[Nick Lewis] A 'contain' function was the decision we came to last time I 
> was involved in a conversation about this. That turned into ticket #13045, 
> which was closed with the decision that it should be fixed in Puppet
>
 

> [Luke] I'm in favor of it as a simple, optional, backward-compatible fix. 
> Basically, if you're using the anchor pattern now, you can use the contain 
> function instead, and properly represents what's going on.
>

+1

 --eric0

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to