Skip to content

Calls to Deprecation function cause catalog compilation to fail if strict setting is set to error #1373

Closed
@alexjfisher

Description

@alexjfisher

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions