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

Re-vendor semantic_puppet gem

    Details

    • Type: Task
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PUP 4.9.0
    • Component/s: None
    • Labels:
      None
    • Template:
    • Acceptance Criteria:
      • 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
    • Team:
      Agent
    • Story Points:
      3
    • Sprint:
      AP 2017-01-25, AP 2017-02-08
    • Release Notes:
      Not Needed
    • QA Risk Assessment:
      No Action
    • QA Risk Assessment Reason:
      Build, test, infrastructure tickets not risk-assessed

      Description

      Channeling Moses Mendoza 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

              jsd-sla-details-panel

                People

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: