On Sep 3, 2013, at 12:06 PM, Andy Parker <[email protected]> wrote:

> On Tue, Sep 3, 2013 at 11:34 AM, Drew Blessing <[email protected]> 
> wrote:
> I've been following this discussion for some time. As it progressive I've 
> found myself fighting internally, going one way and then the other about how 
> this should really be.  I keep coming back to the same place -  this is a bug 
> and Luke's original statement is very important:
> 
> The fix should require no changes to syntax or usage; merely the cessation of 
> use of the anchor pattern.
> 
> 
> I don't think adding a new 'contain' function is really appropriate.  From a 
> module developer standpoint what does 'contain' mean? Why should I use it? 
> When should I use it? I think it will cause so many questions that you'll end 
> up with a whole different problem on your hands.  On top of that you will 
> have people that just continue to use 'include' and the problem will still be 
> there.  
> 
> 
> This is the tradeoff between changing existing language constructs to match 
> some user's expectations, and thereby breaking some manifests, or adding 
> something new to express the specific concept of containment, and thereby 
> requiring users to make a conscious choice about what they want. I agree that 
> pawning this off on a user is not ideal, which is why I've argued for 
> changing the semantics of the resource like syntax for classes. However, as 
> jcbollinger has rightly pointed out, that change would break a lot of things, 
> and would also be a major shift in the way many users understand the language.
> 
> This is the reality we find ourselves in. Over the course of the discussion, 
> I think jcbollinger's proposal is probably the best for existing users. Those 
> who are currently using anchors would be able to change to the new contain() 
> function. Existing manifests would not need to change, but they could be 
> updated to use the new function.  Luke also brought up another alternative 
> for creating a new container kind (module {} or something like that). I think 
> that would be another good avenue to explore.

How difficult would it be to build tools to help our users understand when they 
might be making a mistake in this area?

That is, can we subtly encourage users to use 'contain' by providing compiler 
hints and such?

[…]


-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199

-- 
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