Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-7156

Puppet 4.9.0 removes vendored `semantic` gem, used publicly

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: PUP 4.9.0
    • Fix Version/s: PUP 4.9.1
    • Component/s: None
    • Labels:
      None
    • Template:
    • Acceptance Criteria:
      Hide

      Modules based on garethr/puppet-module-skeleton don't fail.

      Show
      Modules based on garethr/puppet-module-skeleton don't fail.
    • Team:
      Agent
    • Story Points:
      2
    • Sprint:
      AP 2017-02-08
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Hide
      Puppet 4.9.0 replace a vendored library, 'semantic' with a new one, 'semantic_puppet'. While strictly speaking these are private puppet internals, some modules have made use of the vendored library. Puppet 4.9.1 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.
      Show
      Puppet 4.9.0 replace a vendored library, 'semantic' with a new one, 'semantic_puppet'. While strictly speaking these are private puppet internals, some modules have made use of the vendored library. Puppet 4.9.1 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.
    • QA Risk Assessment:
      No Action
    • QA Risk Assessment Reason:
      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

      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.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              moses Moses Mendoza
              Reporter:
              branan Branan Riley
              QA Contact:
              Stan Duffy
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support