| After talking this through with Ethan Brown, it looks like we can't just put all of our deps. in the .gemspec and then dynamically compute which ones we need based on the gem platform. The reason we can't do that is b/c the rubygems interface relies on the .gemspec to display all of its runtime deps, so that the .gemspec needs to statically list all of the runtime deps. The current packaging tooling dynamically generated the .gemspec for each platform-specific gem, so that's why we were able to see all of the runtime-deps. for them. See for example https://rubygems.org/gems/puppet/versions/5.5.2-x86-mingw32 vs. https://rubygems.org/gems/puppet/versions/5.5.2. So unfortunately, we will still need to use the current tooling, and thus still need ext/project_data.yaml. I'm going to try an approach that will also parse the default runtime deps. from there, so that at least we can have ext/project_data.yaml be the single source of truth for those deps as well. |