The concurrent-ruby gem is a toolset containing many concurrency
utilities. Many of these utilities include runtime-specific
optimizations when possible. Rather than clutter the Rails codebase with
concurrency utilities separate from the core task, such tools can be
superseded by similar tools in the more specialized gem. This commit
replaces `ActiveSupport::Concurrency::Latch` with
`Concurrent::CountDownLatch`, which is functionally equivalent.
Our general contract in Active Record is that strings are assumed to be
SQL literals, and symbols are assumed to reference a column. If a from
clause is given, we shouldn't include the table name, but we should
still quote the value as if it were a column.
Upon fixing this, the tests were still failing on SQLite. This was
because the column name being returned by the query was `"\"join\""`
instead of `"join"`. This is actually a bug in SQLite that was fixed a
long time ago, but I was using the version of SQLite included by OS X
which has this bug. Since I'm guessing this will be a common case for
contributors, I also added an explicit check with a more helpful error
message.
Fixes#20360
History:
1. `debugger` was there until d2ed433b where it was commented out, and I
couldn't figure out why
2. Since then we inherited that when switching to `byebug` in 93559da4
Reasons:
1. It's nice to have a debugger when working on framework bugs
2. It's an uncommented dependency in app Gemfiles since Rails 4.2 (see fbe38c9e)
Since we now only support Ruby 2.2+, we can safely remove the old mri
entries from the Gemfile.
This also allows us not to lock to a specific bundler version, since
:mri_22 was defined only on 1.7.11.
Closes#19611.
The edge version ships with a patch that uses composition over
inheritance for the Mail::PartsList object (see mikel/mail#782).
Let's test Action Mailer against it to prevent eventual regressions
and experience it.
Moreover, this branch makes the Action Mailer suite green against
Rubinius.
I found that nil values were being incorrectly sent to
`parse_nested_query` in Rack. Originally it was thought that Rails was
doing something incorrect but it was actually rack-test. This was fixed
in brynary/rack-test@4a4b2c1 and is no longer an issue. This commit
bumps rack-test in Rails so changes to Rack don't cause failures.
See rack/rack#813 for more information.
The main reason is to make bisect easier.
In some points, we have a lot of git dependencies. Since we don't have
the information of which commit we are referring to, bundler get the
latest commit of the master branch of the dependency. This sometimes
returns a version that is not compatible with Rails anymore, making the
tests fail and the harder to identify the commit that introduced a bug.
Also this will make sure that a contributor will always get a set of
dependencies that are passing with our tests.
In our CI server we delete the lock file to make sure we are always
testing against the newest release of our dependencies.