Skip to content

Commit

Permalink
Pass calling scope to stdlib::ensure_packages from shim
Browse files Browse the repository at this point in the history
Make the `ensure_packages` shim an Internal function and pass scope to
the namespaced version so as to not change the behaviour of where
packages are contained.

When the function was first ported to the new API, it was discussed that
the existing behaviour might not be 'correct', but changing it would be
a breaking change that might have consequences for many users.

In namespacing the function in 9.0.0 we accidentally created a situation
where the namespaced version worked as before, but the non-namespaced
version, (the shim), now behaved differently.

Fixes #1365
  • Loading branch information
alexjfisher committed Jun 2, 2023
1 parent f38c42a commit 16a23cf
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions lib/puppet/functions/ensure_packages.rb
@@ -1,14 +1,13 @@
# frozen_string_literal: true

# THIS FILE WAS GENERATED BY `rake regenerate_unamespaced_shims`

# @summary DEPRECATED. Use the namespaced function [`stdlib::ensure_packages`](#stdlibensure_packages) instead.
Puppet::Functions.create_function(:ensure_packages) do
Puppet::Functions.create_function(:ensure_packages, Puppet::Functions::InternalFunction) do
dispatch :deprecation_gen do
scope_param
repeated_param 'Any', :args
end
def deprecation_gen(*args)
def deprecation_gen(scope, *args)
call_function('deprecation', 'ensure_packages', 'This function is deprecated, please use stdlib::ensure_packages instead.')
call_function('stdlib::ensure_packages', *args)
scope.call_function('stdlib::ensure_packages', args)
end
end

0 comments on commit 16a23cf

Please sign in to comment.