On Thu, Aug 15, 2013 at 11:11 PM, Luke Kanies <[email protected]> wrote:
> On Aug 15, 2013, at 10:32 AM, Jeff McCune <[email protected]> wrote: > > On Thu, Aug 15, 2013 at 9:45 AM, Luke Kanies <[email protected]> wrote: > >> On Aug 15, 2013, at 9:40 AM, Jeff McCune <[email protected]> wrote: >> >> On Wed, Aug 14, 2013 at 3:25 PM, Andy Parker <[email protected]> wrote: >> >>> >>> >>>> Are we making any effort to help ensure end users who refactor their >>>> code don't end up with dramatically different behavior? >>>> >>> >>> The only effort that we are making, and that I think we can make, is to >>> keep promoting dependencies as the right way. As we were putting together >>> tests for this there were a couple cases that caught us by surprise about >>> the order in which things would be executed because of the relationship >>> between dependencies and manifest order. >>> >> >> This makes sense, but I do wonder if there's a way to implement ordering >> of resources within a manifest while also preserving the behavior of >> providing a stable ordering between manifests and classes as a whole. >> >> Is it feasible to provide a stable ordering of manifest files, regardless >> of the parse-order they were included, while also providing the parse >> ordering of resources within a class? >> >> >> What is the goal of that? >> > > The goal is to provide a user experience as close to as good as we have > currently. With the current behavior of Puppet users can change the > ordering of include statements and rest assured that the behavior of > catalog application is unaffected. With the new behavior described here I > no longer have this confidence. If I transpose two "include" lines then > the behavior of a puppet agent run will be very different and it's > difficult for the end user to predict what this new behavior will be. > > Today, all I have to do is write my manifests in any way I choose then do > a single puppet agent run. If I see the results I want to see then I'm > assured these results will persist and will have the same ordering across > the entire fleet. With the new behavior, if someone changes the ordering > of class declarations then it's difficult to predict what will happen > across the entire fleet. > > > Shouldn't it be exactly easy to predict the results? If someone changes > the order, the new order will be based on file order. Right? > > Because file order isn't unique we couldn't actually use that. Instead what we did is use the order that the resources were added to the catalog. The ordering is predictable but the total order of the catalog will vary more as refactors are done than it would have under the old system. In a world in which dependencies are used, then this won't matter. In many ways the catalog insertion order matches much more closely the "imperative language" paradigm that a lot of new users seem to have as their mental model for how puppet works. The mental model will fall apart if you push it too far, but it will hold up in many of the basic situations. Because of the number of concerns about the effect this will have, we are going to make this configurable and non-default for now. If people like the new ordering, then we can make it the default in a 4.0 release. https://projects.puppetlabs.com/issues/22205 > > -- > Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | > +1-615-594-8199 > Join us at PuppetConf 2013, August 22-23 in San Francisco - > http://bit.ly/pupconf13 > > -- > 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. > -- Andrew Parker [email protected] Freenode: zaphod42 Twitter: @aparker42 Software Developer *Join us at PuppetConf 2013, August 22-23 in San Francisco - * http://bit.ly/pupconf13* **Register now and take advantage of the Final Countdown discount - save 15%!* -- 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.
