• Type: Task
    • Status: Resolved
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PUP 6.11.0
    • Component/s: None
    • Template:
    • Team:
    • Sprint:
      Platform Core KANBAN
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      De-vendors deep_merge from puppet and adds a runtime gem dependency on the deep_merge gem.
    • QA Risk Assessment:
      Needs Assessment


      Puppet vendors the deep_merge gem version 1.0.1. Puppet also implements deep_merge logic ( And there are other places where we should deeply merging objects.

      This ticket is to update calls sites to use the deep_merge gem, and unvendor the gem. It will need to be added as a runtime dependency to .gemspec and ext/project_data.yaml. To avoid breaking CI, we need to work backwards from the consumers of the puppet gem to puppet itself:

      1. add deep_merge gem to artifactory with kermintor in release-new-new
      2. add deep_merge gem component to puppet-runtime - at this point you need to know if it's client-side only, or both client and server, and whether the gem is pure ruby or contains native extensions:

      if you're adding a pure-ruby gem that must be available everywhere see ( This prefers settings[:puppet_gem_vendor_dir] if set, for example /opt/puppetlabs/puppet/lib/ruby/vendor_gems/gems, otherwise falls back to settings[:gem_home], for example /opt/puppetlabs/puppet/lib/ruby/gems/2.5.0/gems/.

      If you're adding client-side gem (eg for a provider) or a gem with native extensions, see

      3. add component to the different projects in puppet-runtime repo, see,,, etc

      4. dockerfile in puppet-agent installs the gem when building the puppet-agent docker image (

      5. add your gem to test to make sure it gets installed correctly:

      6. If the gem isn't client-only, add it to: jruby:

      7. Once it has been added everywhere it needs to be, actually remove vendored code from Puppet





              • Assignee:
                jorie Jorie Tappa
                josh Josh Cooper
              • Votes:
                0 Vote for this issue
                4 Start watching this issue


                • Created:

                  Zendesk Support