On Tuesday, September 3, 2013 6:15:39 AM UTC-5, Sean Millichamp wrote:
>
> On Mon, 2013-09-02 at 23:50 -0700, Luke Kanies wrote: 
>
> > However, I still disagree that fixing bugs should constitute a change 
> > worth upping a major rev.  If it's a bug, then fixing it shouldn't be 
> > an incompatibility, should it? 
>
>

No, but Puppet's behavior with respect to classes (not) containing the 
classes they declare is not rightly characterized as a bug.  On the 
contrary, it is a documented, essential feature of classes that the same 
class can be declared in multiple places, and that is incompatible with 
automatic containment.  The fact that at most one declaration of a given 
class can use parameterized syntax is irrelevant, because use of a 
parameterized declaration of a class in one place does not prevent 
'include' or 'require' declarations of the same class appearing in other 
places.  There can be good reasons for such usage, and it is not safe for 
Puppet to assume that any one declaration among several can be chosen as 
the containment site.

Tying containment to parameterized-style declarations would not solve the 
problem anyway; it would only move it -- and break an unknown number of 
existing manifest sets in the process.  Where users want containment but 
not parameterized syntax, they would still be stuck with the anchor 
pattern.  Where users rely on Puppet's current behavior and documentation 
in their current manifest sets, altering Puppet to change the semantics of 
their existing code must be expected to break some of that code.

 

> I would argue that it has been the behavior for so long that fixing it 
> now could possibly break things in production and, at this point, it's 
> more or less past "a bug" and into a new feature. I'm sure there are 
> lots of users of Puppet at this point who have never known another 
> behavior. 
>
>

Inasmuch as the current behavior has always been the only alternative 
consistent with Puppet's documentation, even if it was not spelled out 
explicitly, I don't think the time factor is a required element in this 
equation.  But if you're not persuaded that this was never a bug in the 
first place, Sean's point is still sound: it is unreasonable to think that 
people will not have relied on the current behavior, whether intentionally 
or incidentally.  


John

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