Description
In stdlib 9.0 many functions were namespaced and non-namespaced deprecated shims were introduced to maintain compatibility with modules that haven't yet switched over to using the namespaced versions.
This largely works as intended, but (originally in #1365) it's been noted that the deprecation
function will actually fail a catalog compile when strict
is set to error
, and that this is also the default in the upcoming Puppet 8.
This makes it very difficult for users to upgrade to stdlib 9 unless they're prepared to turn the strict
setting back to off
or warning
(and there are many other good reasons for setting strict
to error
). Since lots of modules are now also being updated to use the namespaced versions (requiring stdlib 9.0), upgrading a single affected component module now means having to upgrade all modules that use stdlib functions.
Possible solutions include:
- Still leaving the shims documented as deprecated, but removing the calls to the
deprecation
function - Adjusting deprecation so that it never raises an error
(This issue replaces #1365 where 2 separate issues were being discussed)