-
Notifications
You must be signed in to change notification settings - Fork 457
Description
- This is a Koala bug/issue/documentation problem.
Hello y'all. I help maintain Opentelemetry-ruby, which supports tracing instrumentation for the Koala gem. We noticed the Koala instrumentation test suite is broken in CI in opentelemetry-ruby, here's a test run thats failing
Relevant debug output
Installing faraday 2.0.0
Fetching koala 3.0.0
Installing koala 3.0.0
Bundle complete! 19 Gemfile dependencies, 43 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
opentelemetry-instrumentation-koala: appraisal
>> bundle check --gemfile='/home/runner/work/opentelemetry-ruby/opentelemetry-ruby/instrumentation/koala/gemfiles/koala_3.gemfile' || bundle install --gemfile='/home/runner/work/opentelemetry-ruby/opentelemetry-ruby/instrumentation/koala/gemfiles/koala_3.gemfile' --retry 1
Your Gemfile lists the gem koala (~> 3.0.0) more than once.
You should probably keep only one of them.
Remove any duplicate entries and specify the gem only once.
While it's not a problem now, it could cause errors if you change the version of one of them later.
Resolving dependencies...
The Gemfile's dependencies are satisfied
opentelemetry-instrumentation-koala: test
>> BUNDLE_GEMFILE=/home/runner/work/opentelemetry-ruby/opentelemetry-ruby/instrumentation/koala/gemfiles/koala_3.gemfile bundle exec rake test
File does not exist: net/http/post/multipart
So, net/http/post/multipart is a file from the gem https://github.com/socketry/multipart-post, which isn't required by koala, but instead it's required by faraday, a koala dependency. However, the issue is that koala adds faraday as a dependency without any version constraint( see here). Faraday just cut a 2.0 release this morning(upgrade guide here), the 2.0 release is chok-ful-o breaking changes, including ripping out it's middleware into separate gems. One of those now "not included by default" middleware gems is faraday-multipart which is what brings in that socketry/multipart-post gem. (see here). Since that's not part of Faraday 2.0, koala raises an exception when it attempts to use that now missing nested dependency.
I am not sure the "right" way to fix this, but I imagine it's to either add a max version of <2.0 to this gemspec, or to add the relevant middleware from faraday that Koala is leveraging as a dependency as well.
Lmk if there's any more info needed on the above. Not super familiar with this library tbh, but happy to contribute a PR to fix this, just not sure what direction y'all want to take.