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

Re-vendor semantic_puppet gem

    XMLWordPrintable

Details

    • Task
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • None
    • PUP 4.9.0
    • None
    • None
      • Acceptance tests pass
      • Puppet_server builds earlier than 2.7.2 that do not include semantic_puppet, will not crash when loading the Puppet code
    • Agent
    • 3
    • AP 2017-01-25, AP 2017-02-08
    • Not Needed
    • No Action
    • Build, test, infrastructure tickets not risk-assessed

    Description

      Channeling moses from https://groups.google.com/a/puppet.com/forum/#!topic/team-agent-and-platform/_1q5BWWyvxk

      Background
      In PA-621, puppet-agent added a package conflict with puppet-server <
      2.7.2 and pe-puppet-server < 2017.0.1.3. This was required because
      puppet added new vendored gem dependencies, and only puppet-server >=
      2.7.2 satisfies those dependencies too. For even more context, see
      "extra context" at the bottom.

      One approach that has been settled on is to:

      • Re-vendor the semantic_puppet gem so that the puppet-server packages don't need to have the gem installed (and to later specify it as a gem dependency in Puppet 5 when there is greater latitude to make compatibility changes)
      • See if the hocon gem is already properly guarded as a Hiera backend for when the gem is missing (it looks to be already)
      • Make it so that gettext will work / load when the gem is present, but will not fail to load when the gem is not present (on older Puppet servers that don't have the gems vendored, we will stub the _ function)

      This ticket covers vendoring version 0.1.4 of the semantic_puppet gem back into the Puppet repository. Rather than reverting all of the language related changes that were originally proposed in https://github.com/puppetlabs/puppet/pull/5094 and that ultimately landed in https://github.com/puppetlabs/puppet/pull/5399, it seems simpler to just grab the same code thats present in the gem and include that temporarily, removing the references to external dependencies at the same time.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ethan Ethan Brown
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support