ruby-concurrency / concurrent-ruby

Modern concurrency tools including agents, futures, promises, thread pools, supervisors, and more. Inspired by Erlang, Clojure, Scala, Go, Java, JavaScript, and classic concurrency patterns.
https://ruby-concurrency.github.io/concurrent-ruby/
Other
5.68k stars 418 forks source link

Incompatible versions for version 1.3.x #1052

Closed aandrieu closed 3 months ago

aandrieu commented 3 months ago

Hello, I'm trying to test the last release (1.3.1) but it is not compatible with edge version.

I get the following bundle error:

Could not find compatible versions

Because concurrent-ruby-edge >= 0.7.0 depends on concurrent-ruby ~> 1.2.0
  and Gemfile depends on concurrent-ruby ~> 1.3.0,
  concurrent-ruby-edge >= 0.7.0 cannot be used.
So, because Gemfile depends on concurrent-ruby-edge ~> 0.7.0,
  version solving has failed.

I think the edge version should be bump to take into account the newly released version 1.3.

Thank you 🙏

eregon commented 3 months ago

Also reported in https://github.com/ruby-concurrency/concurrent-ruby/discussions/1050.

Though Bundler should be able to solve this automatically by staying on concurrent-ruby 1.2.x as a workaround, as long as you don't force a newer concurrent-ruby int your Gemfile (which seems the case here).

And indeed: https://github.com/ruby-concurrency/concurrent-ruby/blob/66ddae66dac609e302b94815e8a112c839e0d17d/concurrent-ruby-edge.gemspec#L28

So probably we should relax that.

Part of the trouble is it's rather annoying to release concurrent-ruby-edge. I'd rather merge the functionality in the main gem but have it namespaced under Concurrent::Edge, unfortunately it doesn't seem namespaced that way.

eregon commented 3 months ago

I'll try to do a release of both soon to fix the immediate issue.

eregon commented 3 months ago

I released concurrent-ruby-edge 0.7.1, which depends on concurrent-ruby ~> 1.3 instead of 1.3.0, so that should solve it.