Uploaded image for project: 'Puppet Agent'
  1. Puppet Agent
  2. PA-1077

Figure out how to consolidate gem dependency declarations

    Details

    • Type: Task
    • Status: Accepted
    • Priority: Normal
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
    • Template:
    • Acceptance Criteria:
      • Figure out if we can consolidate gem dependency declarations across projects.
      • If we can, file tickets to do so.
      • In either case, define and document our process for updating gem dependencies across projects.
    • Team:
      Platform OS
    • Story Points:
      5
    • QA Risk Assessment:
      Needs Assessment

      Description

      There are multiple locations for expressing gem dependencies (depending on workflow) and they all disagree with one another:

      Unfortunately the dependency definitions are not cleanly spelled out, which can lead to inconsistent gems installed depending on the environment above.

      Ideally the .gemspec is the source of truth, noting that a .gemspec should always declare runtime dependencies statically (i.e. it should not contain Ruby code which programmatically varies the gems based on platform, as this can make it difficult to inspect a gem through the interface at rubygems.org and cleanly understand dependency relationships - to handle that situation and ship only a single gem for all platforms for instance, gemspec.extensions = 'ext/mkrf_conf.rb' can be used - but that effort should be constrained to another ticket. Such an approach is defined at https://en.wikibooks.org/wiki/Ruby_Programming/RubyGems#How_to_install_different_versions_of_gems_depending_on_which_version_of_ruby_the_installee_is_using).

      This ticket should be about a best effort to make gem dependencies appear in only location, so that the above supported workflows consume the same sets of gems.

        Attachments

          Issue Links

            Activity

              jsd-sla-details-panel

                People

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

                  Dates

                  • Created:
                    Updated: