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

Figure out how to consolidate gem dependency declarations



    • Task
    • Status: Accepted
    • Normal
    • Resolution: Unresolved
    • None
    • None
    • None
      • 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.
    • Platform OS
    • 5
    • Needs Assessment


      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.


        Issue Links



              Unassigned Unassigned
              ethan Ethan Brown
              1 Vote for this issue
              7 Start watching this issue



                Zendesk Support