From 16a23cf9c03db63e21732d0a2e1af91901625f77 Mon Sep 17 00:00:00 2001 From: Alexander Fisher Date: Fri, 2 Jun 2023 18:03:19 +0100 Subject: [PATCH] Pass calling scope to `stdlib::ensure_packages` from shim 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 --- lib/puppet/functions/ensure_packages.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/puppet/functions/ensure_packages.rb b/lib/puppet/functions/ensure_packages.rb index 0d8c5a773..fd26cbc11 100644 --- a/lib/puppet/functions/ensure_packages.rb +++ b/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