-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experimental removal of Rubygems workarounds (main branch) #2380
Conversation
0d5fee8
to
35a6b21
Compare
Ouhao. Super happy if it is working. |
d0937af
to
e09de36
Compare
Ran the build several times, it's green apart from a
|
Have we seen the mountable_engine? failure on main yet? It must be related to #2372 |
Gemfile
Outdated
if MAJOR >= 6 | ||
gem 'selenium-webdriver', '~> 3.5', require: false | ||
# Rails 6.0 specify '~> 1.4' directly in the adapter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean > 1.4?
Either way we should let Rails decide what version to use?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment below makes no sense. When sqlite3
1.5.0 is out, it still matches the Rails' requirement.
But if it happens that sqlite3
decides to jump straight to 2.0, our builds will be broken if we omit this constraint.
I'll fix the comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry it was late when I wrote this, what I mean is if the Rails constraint is ~> 1.4
then this has no effect and can be removed. If the rails constraint is > 1.4
then this has an effect but again I don't feel we should constrain this, we need to match Rails here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Point is sqlite3
is an optional Rails dependency, they only call gem
when the adapter is set to sqlite
in config/database.yml
. But still they have a version constraint defined there, which Bundler has no awareness of, since it's outside of the Gemfile
.
If we remove it, sqlite3
won't be installed and the build would break.
If we remove the version constraint, the build will break for Rails 6.0 when (eventually, far in the future) sqlite3
2.0 is out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right ok, thats not clear from the comment at all.
efb680e
to
5dae54f
Compare
Gemfile
Outdated
if MAJOR >= 6 | ||
gem 'selenium-webdriver', '~> 3.5', require: false | ||
# Rails 6.0 specify '~> 1.4' directly in the adapter. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry it was late when I wrote this, what I mean is if the Rails constraint is ~> 1.4
then this has no effect and can be removed. If the rails constraint is > 1.4
then this has an effect but again I don't feel we should constrain this, we need to match Rails here.
1dc7b46
to
cde18a4
Compare
All green, except for |
With the recent Rubygems server fixes and database backfills, we don't need most of the manual workarounds to resolve dependency Ruby version support.
13 is out, no reason to stick to 12
cde18a4
to
09e465c
Compare
if MAJOR >= 6 | ||
gem 'selenium-webdriver', '~> 3.5', require: false | ||
# sqlite3 is an optional, unspecified, dependency and Rails 6.0 only supports `~> 1.4` | ||
gem 'sqlite3', '~> 1.4', platforms: [:ruby] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
example_app_generator/generate_app.rb
ends up with
gem 'sqlite3'
in example_app's Gemfile. Why there's no version mismatch, and how the proper version is resolved is beyond my understanding.
I used a different approach for 3-9-maintenance branch, moved this selection to Gemfile-rails-dependencies
, and added a statement to strip example_app's Gemfile
from gem 'sqlite3'
. https://github.com/rspec/rspec-rails/pull/2386/files#diff-8c3955be04b733dbd31e54e50844fb84
PS and it didn't work for Rails 4 https://travis-ci.org/github/rspec/rspec-rails/jobs/734530137
Experimental removal of Rubygems workarounds (main branch)
Due to unstable version resolution and lack of Ruby version constraints on older gemspecs in the Rubygems database, we had to manually declare versions to be used.
This has seemingly been fixed.
Related:
rubygems/rubygems#3463
rubygems/rubygems.org#2474
rubygems/rubygems#2662
Let's see if it works now, and if the issue with IPv6 fallback is still the case.