Issue #2053 has been updated by John Bollinger.
Ultimately, it might be useful to deprecate name resolution falling back to top scope, too. The only reason to keep that special case is that it is extensively used (and that's a very good reason), but that fallback is still inconsistent with what I would generally expect from relative name resolution. ---------------------------------------- Bug #2053: Relative namespacing of class/define names results in big surprises https://projects.puppetlabs.com/issues/2053#change-86821 Author: Lawrence Ludwig Status: Accepted Priority: Normal Assignee: Lee Lowder 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 resort." 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 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-bugs?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
