Bundler fails to resolve 'padrino', '0.11.1' #2464

Closed
judofyr opened this Issue May 6, 2013 · 8 comments

Comments

Projects
None yet
3 participants
@judofyr

judofyr commented May 6, 2013

$ cat Gemfile
source 'https://rubygems.org'
gem 'padrino', '0.11.1'
$ bundle

I recently released Tilt v1.4.0 and this seems to break the resolver. See the full debug output here: http://pastie.org/7808368.

This seems to be where it's failing:

==== Iterating ====

Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
Requirements:
  tilt (>= 1.3.4, ~> 1.3) ruby
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (>= 1.3.4, ~> 1.3) ruby
  Activating: tilt (1.4.0)
    * padrino (= 0.11.1)
    * padrino-core (= 0.11.1)
    * sinatra (~> 1.4.2)
    * tilt (>= 1.3.4, ~> 1.3)
    Dependencies
==== Iterating ====

Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
  tilt (1.4.0)
Requirements:
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (~> 1.3.0) ruby
    * [FAIL] Already activated
      * padrino (= 0.11.1)
      * padrino-core (= 0.11.1)
    -> Jumping to: padrino-core
    -> Jumping to: padrino
�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[fBundler could not find compatible versions for gem "tilt":
  In Gemfile:
    padrino (= 0.11.1) ruby depends on
      tilt (~> 1.3.0) ruby

    padrino (= 0.11.1) ruby depends on
      tilt (1.4.0)
@indirect

This comment has been minimized.

Show comment
Hide comment
@indirect

indirect May 6, 2013

Member

Looks like some padrino gems depend on tilt >= 1.3, and some depend on ~> 1.3.0. That's not compatible, so the resolver is working. Is there a bug? (Other than the message not naming the child gem that conflicts, which is a known issue).

On Mon, May 6, 2013 at 5:43 AM, Magnus Holm notifications@github.com
wrote:

$ cat Gemfile
source 'https://rubygems.org'
gem 'padrino', '0.11.1'
$ bundle

I recently released Tilt v1.4.0 and this seems to break the resolver. See the full debug output here: http://pastie.org/7808368.
This seems to be where it's failing:

==== Iterating ====
Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
Requirements:
  tilt (>= 1.3.4, ~> 1.3) ruby
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (>= 1.3.4, ~> 1.3) ruby
  Activating: tilt (1.4.0)
    * padrino (= 0.11.1)
    * padrino-core (= 0.11.1)
    * sinatra (~> 1.4.2)
    * tilt (>= 1.3.4, ~> 1.3)
    Dependencies
==== Iterating ====
Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
  tilt (1.4.0)
Requirements:
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (~> 1.3.0) ruby
    * [FAIL] Already activated
      * padrino (= 0.11.1)
      * padrino-core (= 0.11.1)
    -> Jumping to: padrino-core
    -> Jumping to: padrino
�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[fBundler could not find compatible versions for gem "tilt":
  In Gemfile:
    padrino (= 0.11.1) ruby depends on
      tilt (~> 1.3.0) ruby
    padrino (= 0.11.1) ruby depends on
      tilt (1.4.0)

Reply to this email directly or view it on GitHub:
carlhuda#2464

Member

indirect commented May 6, 2013

Looks like some padrino gems depend on tilt >= 1.3, and some depend on ~> 1.3.0. That's not compatible, so the resolver is working. Is there a bug? (Other than the message not naming the child gem that conflicts, which is a known issue).

On Mon, May 6, 2013 at 5:43 AM, Magnus Holm notifications@github.com
wrote:

$ cat Gemfile
source 'https://rubygems.org'
gem 'padrino', '0.11.1'
$ bundle

I recently released Tilt v1.4.0 and this seems to break the resolver. See the full debug output here: http://pastie.org/7808368.
This seems to be where it's failing:

==== Iterating ====
Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
Requirements:
  tilt (>= 1.3.4, ~> 1.3) ruby
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (>= 1.3.4, ~> 1.3) ruby
  Activating: tilt (1.4.0)
    * padrino (= 0.11.1)
    * padrino-core (= 0.11.1)
    * sinatra (~> 1.4.2)
    * tilt (>= 1.3.4, ~> 1.3)
    Dependencies
==== Iterating ====
Activated:
  padrino (0.11.1)
  padrino-core (0.11.1)
  padrino-helpers (0.11.1)
  thor (0.17.0)
  padrino-cache (0.11.1)
  rack-protection (1.5.0)
  http_router (0.11.0)
  padrino-mailer (0.11.1)
  padrino-admin (0.11.1)
  mail (2.5.3)
  url_mount (0.2.1)
  sinatra (1.4.2)
  rack (1.5.2)
  padrino-gen (0.11.1)
  bundler (1.3.1)
  treetop (1.4.12)
  polyglot (0.3.3)
  i18n (0.6.4)
  tilt (1.4.0)
Requirements:
  tilt (~> 1.3.0) ruby
  mime-types (~> 1.16) ruby
  activesupport (>= 3.1.0) ruby
Attempting:
  tilt (~> 1.3.0) ruby
    * [FAIL] Already activated
      * padrino (= 0.11.1)
      * padrino-core (= 0.11.1)
    -> Jumping to: padrino-core
    -> Jumping to: padrino
�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[f�[2J�[fBundler could not find compatible versions for gem "tilt":
  In Gemfile:
    padrino (= 0.11.1) ruby depends on
      tilt (~> 1.3.0) ruby
    padrino (= 0.11.1) ruby depends on
      tilt (1.4.0)

Reply to this email directly or view it on GitHub:
carlhuda#2464

@judofyr

This comment has been minimized.

Show comment
Hide comment
@judofyr

judofyr May 6, 2013

Looks like some padrino gems depend on tilt >= 1.3, and some depend on ~> 1.3.0. That's not compatible, so the resolver is working.

What do you mean "is not compatible"? Won't the Tilt version "1.3.7" satisfy both requirements?

It works fine if you explicitly specify Tilt as '~> 1.3.0':

gem 'padrino', '0.11.1'
gem 'tilt', '~> 1.3.0'

These are the dependencies from Gemfile.lock that are related:

    padrino-core (0.11.1)
      activesupport (>= 3.1.0)
      http_router (~> 0.11.0)
      rack-protection (>= 1.5.0)
      sinatra (~> 1.4.2)
      thor (~> 0.17.0)
      tilt (~> 1.3.0)
    sinatra (1.4.2)
      rack (~> 1.5, >= 1.5.2)
      rack-protection (~> 1.4)
      tilt (~> 1.3, >= 1.3.4)

I thought it was these kind of dependencies that Bundler was designed to handle?

judofyr commented May 6, 2013

Looks like some padrino gems depend on tilt >= 1.3, and some depend on ~> 1.3.0. That's not compatible, so the resolver is working.

What do you mean "is not compatible"? Won't the Tilt version "1.3.7" satisfy both requirements?

It works fine if you explicitly specify Tilt as '~> 1.3.0':

gem 'padrino', '0.11.1'
gem 'tilt', '~> 1.3.0'

These are the dependencies from Gemfile.lock that are related:

    padrino-core (0.11.1)
      activesupport (>= 3.1.0)
      http_router (~> 0.11.0)
      rack-protection (>= 1.5.0)
      sinatra (~> 1.4.2)
      thor (~> 0.17.0)
      tilt (~> 1.3.0)
    sinatra (1.4.2)
      rack (~> 1.5, >= 1.5.2)
      rack-protection (~> 1.4)
      tilt (~> 1.3, >= 1.3.4)

I thought it was these kind of dependencies that Bundler was designed to handle?

@judofyr

This comment has been minimized.

Show comment
Hide comment
@judofyr

judofyr May 6, 2013

Also, is there an open issue for the wrong message?

judofyr commented May 6, 2013

Also, is there an open issue for the wrong message?

@indirect

This comment has been minimized.

Show comment
Hide comment
@indirect

indirect May 6, 2013

Member

Blah, you're totally right. Sorry about that. Bundler should be able to find. 1.3.x version that satisfies all of the requirements.

I don't have the child dep name issue off the top of my head, but I can look for it later.

On Mon, May 6, 2013 at 8:10 AM, Magnus Holm notifications@github.com
wrote:

Also, can you link to the issue about the wrong message?

Reply to this email directly or view it on GitHub:
carlhuda#2464 (comment)

Member

indirect commented May 6, 2013

Blah, you're totally right. Sorry about that. Bundler should be able to find. 1.3.x version that satisfies all of the requirements.

I don't have the child dep name issue off the top of my head, but I can look for it later.

On Mon, May 6, 2013 at 8:10 AM, Magnus Holm notifications@github.com
wrote:

Also, can you link to the issue about the wrong message?

Reply to this email directly or view it on GitHub:
carlhuda#2464 (comment)

@judofyr

This comment has been minimized.

Show comment
Hide comment
@judofyr

judofyr May 6, 2013

Thanks.

Anything I can do to help out? I've looked a bit at the resolver code but, yeah, it's quite complex.

judofyr commented May 6, 2013

Thanks.

Anything I can do to help out? I've looked a bit at the resolver code but, yeah, it's quite complex.

@thedanielmay thedanielmay referenced this issue in padrino/padrino-framework May 6, 2013

Closed

Conflict with tilt 1.4.0 #1269

@judofyr

This comment has been minimized.

Show comment
Hide comment
@judofyr

judofyr May 6, 2013

This patch seems to solve it: https://gist.github.com/judofyr/5527938.

I wrote a new spec for this issue (albeit in a hacky way) and all specs pass on my machine after applying the patch.

I don't think this patch should be applied. The fact that all specs pass after I removed the resolver logic related to required_by is a bad bad bad thing. It either means that the test suite isn't good enough or that the required_by-concept is flawed.

judofyr commented May 6, 2013

This patch seems to solve it: https://gist.github.com/judofyr/5527938.

I wrote a new spec for this issue (albeit in a hacky way) and all specs pass on my machine after applying the patch.

I don't think this patch should be applied. The fact that all specs pass after I removed the resolver logic related to required_by is a bad bad bad thing. It either means that the test suite isn't good enough or that the required_by-concept is flawed.

@indirect

This comment has been minimized.

Show comment
Hide comment
@indirect

indirect May 7, 2013

Member

Ickkkk that's pretty bad. Clearly something isn't right in there. I'm hoping to investigate myself soon.

On Mon, May 6, 2013 at 1:38 PM, Magnus Holm notifications@github.com
wrote:

This patch seems to solve it: https://gist.github.com/judofyr/5527938.
I wrote a new spec for this issue (albeit in a hacky way) and all specs pass on my machine after applying the patch.

I don't think this patch should be applied. The fact that all specs pass after I removed the resolver logic related to required_by is a bad bad bad thing. It either means that the test suite isn't good enough or that the required_by-concept is flawed.

Reply to this email directly or view it on GitHub:
carlhuda#2464 (comment)

Member

indirect commented May 7, 2013

Ickkkk that's pretty bad. Clearly something isn't right in there. I'm hoping to investigate myself soon.

On Mon, May 6, 2013 at 1:38 PM, Magnus Holm notifications@github.com
wrote:

This patch seems to solve it: https://gist.github.com/judofyr/5527938.
I wrote a new spec for this issue (albeit in a hacky way) and all specs pass on my machine after applying the patch.

I don't think this patch should be applied. The fact that all specs pass after I removed the resolver logic related to required_by is a bad bad bad thing. It either means that the test suite isn't good enough or that the required_by-concept is flawed.

Reply to this email directly or view it on GitHub:
carlhuda#2464 (comment)

@Who828

This comment has been minimized.

Show comment
Hide comment
@Who828

Who828 Jan 16, 2014

Member

This is fixed in master/1.6.0.pre-1, please reopen the issue if encounter it again on those versions of Bundler.

Member

Who828 commented Jan 16, 2014

This is fixed in master/1.6.0.pre-1, please reopen the issue if encounter it again on those versions of Bundler.

@Who828 Who828 closed this Jan 16, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment