Issue #2053 has been updated by Andrew Parker.
I think that killing relative names would be great in terms of "principle of least surprise", but I'm uncertain what the deprecation and replacement would look like. Simply warning that something would result in a relative lookup seems unfriendly because they would have to use the ugly `::` prefix which during the dynamic scope deprecation period caused a lot of unhappiness. So what would the deprecation and new world look like? ---------------------------------------- Bug #2053: Relative namespacing of class/define names results in big surprises https://projects.puppetlabs.com/issues/2053#change-68771 Author: Lawrence Ludwig Status: Needs Decision Priority: Normal Assignee: eric sorenson Category: modules Target version: Affected Puppet version: 0.24.7 Keywords: telly deprecation modules classes namespaces names Branch: Due to Puppet's relative namespacing of class names, `include bar` does not mean "declare class `bar`." It actually means "try to declare class `<current namespace>::bar`, class `<parent of current namespace>::bar`, and so on, declaring class `bar` only as a last result." class bar { notice("From class bar") } class foo::bar { notice("From class foo::bar") } class foo { include bar } include foo This is maximally surprising, especially considering the prevalence of things like: class apache::nagios { include nagios # joke's on you, because this just includes apache::nagios again } (Test code from original report: <http://pastie.org/409446>) -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
