Skip to content

Koala breaks with faraday 2.0 release File does not exist: net/http/post/multipart #659

@ericmustin

Description

@ericmustin
  • 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions