Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
PUP 4.9.0
-
None
-
None
-
-
Agent
-
2
-
AP 2017-02-08
-
Bug Fix
-
-
No Action
-
Current tests should catch this
Description
In Puppet 4.9.0, we removed the vendored `semantic` gem, replacing it with `semantic_puppet`. Per the twitter thread at https://twitter.com/rnelson0/status/826584129818984451, this causes issues with any module based on https://github.com/garethr/puppet-module-skeleton/. The Skeleton loads the `semantic` gem from Puppet's vendor dir to validate a module's metadata.json.
A cursory github search shows a distressing number of instances of the string "puppet/vendor/semantic/lib/semantic", although this is probably over-representing usage https://github.com/search?q=puppet%2Fvendor%2Fsemantic%2Flib%2Fsemantic&type=Code&utf8=%E2%9C%93
Some good news: Recent versions of the skeleton use a pure ruby validator for metadata.json, and the requirement on Puppet's vendored semantic is vestigal. Removing that line is an easy fix for those using recent versions's of the skeleton. Unfortunately, we don't yet know how widespread older versions are.
Additional Notes
- This change was introduced via https://github.com/puppetlabs/puppet/pull/5400
In Scope
- introduces a shim redirecting 'semantic' to 'semantic_puppet' so that modules / CI will not break as a result of requiring the non-existing 'semantic' library.