On Thursday, April 2, 2015 at 10:33:02 AM UTC-5, Thomas Hallgren wrote: > > John, > > The HI-14's requested behavior was not implemented as an afterthought. On > the contrary. Since all facts have been available in the top scope since > Puppet 3.5, there was simply no need for a specific handling of facts in > Hiera and the approach taken was very deliberate. We knew that whatever we > would put in place would be applicable for all variables in the scope. We > also knew that since scope variables are not the only structured data out > there, it would be somewhat congested to create solution that would work > *only* with scope variables but not with everything else. I think that > would have been a really bad decision and as far as I can remember it was > never brought up to discussion. > >
Am I misspelling of the word "interpolation", or something? Is it too similar to the word "interpretation" that I have been using to talk about how hiera translates keys into corresponding values? I'm getting frustrated here. I have not suggested that the new feature should have been restricted to facts specifically or even to variables generally. Although HI-14 uses facts as its examples, the text is not so restrictive, and I agree that such a solution would have been awkward. No, I am saying that the change should have been restricted to the context of interpolation tokens, on account of that being the only context contemplated by the feature request. Protestations notwithstanding, that aspect of the change has clearly gotten little love, even though it is both the actual intended target and by far the most important part. It provides for doing things with Hiera that were difficult or impossible to do before. The change to key interpretation, on the other hand, is largely a solution without a problem, and, moreover, without any request or change approval that I have seen. I probably wouldn't be so on about it if it did not constitute a breaking change, but I find it pretty concerning that a breaking change is introduced without request, approval, or any particular justification other than possibly that it was more convenient to make the change than to avoid making it. Mustering up some charity, I am prepared to believe that the changes were implemented based mostly on the ticket title, without an effective analysis of the actual problem as set forth in the description text. That's only a possible explanation, though, not a justification. The current solution works with: > > %{scope('some.dotted.key')} > Yes. > > and > > %{hiera('some.dotted.key')} > Why? > > and > > Hiera.lookup('some.dotted.key') > Why? > > The interpolated hiera lookup is implicitly doing the last one so they > need to come as a package. > Fine, the last two need to come as a package, but why did either one need to come at all? What would have been the problem with, say, %{hiera('some').dotted.key} or %{hiera('some')[dotted][key]} or any of probably a dozen other alternatives? Surely wherever Hiera.lookup('some.dotted.key') now returns an object, Hiera.lookup('some')['dotted']['key'] always did return that same object. My apologies. Please feel no obligation to respond to those implementation-directed comments. With the interpolation angle actually covered (its total lack of documentation notwithstanding), my concern is now much more with how and why the change ended up exceeding its requested scope than with the details of change itself. The merits of the change to key semantics aside, that change should not have been implemented under the auspices of HI-14 as it is written. In the end, of course, PL's change management processes are none of my responsibility. I am speaking from the perspective of a concerned bystander with a vested interest in Puppet and PuppetLabs remaining strong and effective, and playing fast and loose with the change management process is not supportive of continuing effectiveness. Frankly, at this point I am even more more concerned that no one seems to want to acknowledge that there even was a problem with how this went down than I am with the fact that it did go down. But if I am whistling in the wind, then so be it. 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 puppet-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/c522c4a4-832b-4915-909d-877af185ef5f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.