Commit Graph

65769 Commits

Author SHA1 Message Date
yuuji.yaginuma
ce98cd0d0d Explicitly require sidekiq/cli
Currently, sidekiq integration test + Ruby 2.5.0-rc1 show exception as follows.

```
#<Thread:0x000000000670bec0@/home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/util.rb:23 run> terminated with exception (report_on_exception is true):
/home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `block in load_missing_constant': uninitialized constant Sidekiq::CLI (NameError)
	from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
	from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `rescue in load_missing_constant'
	from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.1.7/lib/bootsnap/load_path_cache/core_ext/active_support.rb:42:in `load_missing_constant'
	from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:65:in `heartbeat'
	from /home/travis/build/rails/rails/vendor/bundle/ruby/2.5.0/gems/sidekiq-5.0.5/lib/sidekiq/launcher.rb:123:in `start_heartbeat'
```

https://travis-ci.org/rails/rails/jobs/317187279#L2152

The reason for this is that `Sidekiq::CLI` has not been loaded.
Sidekiq integration test launches a Sidekiq instance within
another Ruby process. In such a case, need to require 'sidekiq/cli'
in that launch code.

Ref: https://github.com/mperham/sidekiq/pull/3692#issuecomment-352032251
2017-12-16 11:02:26 +09:00
George Claghorn
af0caadb8d Handle invalid signed blob IDs gracefully 2017-12-15 19:26:53 -05:00
Claudio B
ca2c4cb7c4
Merge pull request #31481 from claudiob/fix-ast-guides
[ci skip] Use :amazon, not :s3, so that guides reflect the current code
2017-12-15 15:51:25 -08:00
Claudio B
6211445d55 [ci skip] Use :amazon, not :s3, to reflect code
The [template](https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/app/templates/config/storage.yml.tt#L10)
that generates the `config/storage.yml` file has the Amazon S3 key specified as `:amazon`, not `:s3`.

The guides should reflect the nomenclature, given that every other service also
has the name of the company as the key (:google, :microsoft).
2017-12-15 15:49:18 -08:00
Ryuta Kamizono
6bd28902e2
Merge pull request #31473 from shioyama/fix_instantiate_test_attributes
Modify test to correctly pass attributes hash
2017-12-16 00:49:51 +09:00
George Claghorn
311af752cf Restrict variants to variable image blobs 2017-12-15 10:45:00 -05:00
Chris Salzberg
c91a44d540
Modify test to correctly pass attributes hash 2017-12-15 23:53:49 +09:00
Ryuta Kamizono
3ddb811acc Remove needless change_table
These are using `remove_column` directly, not used `t` in
`change_table`.
2017-12-15 17:52:11 +09:00
Ryuta Kamizono
cda7e63abc Sync header title with file name [ci skip]
Like other Basics and Overview guides.
2017-12-15 16:52:27 +09:00
Ryuta Kamizono
1865ef7318
Merge pull request #31470 from ydakuka/fix-typos-a-st-guide
Fix in ASt guide [ci skip]
2017-12-15 16:41:38 +09:00
Ryuta Kamizono
640242654c
Merge pull request #31471 from yhirano55/inherit_active_record_base
[ci skip] Inherit ActiveRecord::Base in example codes
2017-12-15 16:39:27 +09:00
Yauheni Dakuka
83e10bd068 Fix in ASt guide [ci skip] 2017-12-15 10:33:38 +03:00
Yoshiyuki Hirano
6d65c0f077 [ci skip] Inherit ActiveRecord::Base in example codes 2017-12-15 16:32:58 +09:00
yuuji.yaginuma
6a902d43c7 Fix guide generation error [ci skip]
Currently, generation of guide is an error in `5_2_release_notes.html`.

```
$ bunele exec rake guides:generate:html
Generating 5_2_release_notes.md as 5_2_release_notes.html
rails/guides/rails_guides/markdown.rb:44:in `dom_id': undefined method `[]' for nil:NilClass (NoMethodError)
	from rails/guides/rails_guides/markdown.rb:106:in `block (2 levels) in generate_structure'
```

It seems that it is an error because there are multiple
`active-storage` anchors.

Since Active Storage is a Major feature, it is unnecessary to show
CHANGELOGs, so remove from `Incompatibilities` section.
2017-12-15 15:52:02 +09:00
Ryuta Kamizono
597b941930 [ci skip] Add missing **DO NOT READ THIS FILE ON GITHUB, GUIDES ARE PUBLISHED ON http://guides.rubyonrails.org.** 2017-12-15 14:02:25 +09:00
Ryuta Kamizono
f4b775ae48
Merge pull request #31466 from dixitp012/action_pack_doc_link_update
[ci skip] update link
2017-12-15 13:54:25 +09:00
Dixit Patel
a680e2f727 [ci skip] update link 2017-12-15 10:15:04 +05:30
George Claghorn
06dbc028da
Merge pull request #31464 from yhirano55/update_guide_index
[ci skip] Update guide index for active storage
2017-12-14 23:32:29 -05:00
Yoshiyuki Hirano
63554cb322 [ci skip] Update guide index for active storage 2017-12-15 13:19:55 +09:00
Ryuta Kamizono
377948850f Clear dirty schema_cache after dump_schema_cache
`dump_schema_cache` fills `schema_cache` even if the test that modifies
the schema has properly cleared the schema cache.

Fixes #31463.
2017-12-15 13:04:51 +09:00
George Claghorn
48fbc4aec8
Merge pull request #31037 from jeffreyguenther/activestorage-guide
ActiveStorage Guide
2017-12-14 22:23:09 -05:00
Jeffrey Guenther
53757939b7 Tweak whitespace 2017-12-14 19:09:48 -08:00
Jeffrey Guenther
1dba0a279d Formatting updates 2017-12-14 19:08:33 -08:00
Jeffrey Guenther
1c5358e472 Merge branch 'master' into activestorage-guide 2017-12-14 19:03:28 -08:00
yuuji.yaginuma
cc0d272c8c Generate tmpname on its own
`make_tmpname` was removed by 25d56ea7b7.
In this case, we want a file name, not a `File`. So cannot use `Tempfile`.

Fixes #31458
2017-12-15 11:57:43 +09:00
Ryuta Kamizono
67b9dbcc1c
Merge pull request #31460 from yahonda/deprecated_bigdecimal_new_ap_av_aj_as_guides
Suppress `warning: BigDecimal.new is deprecated`
2017-12-15 10:57:53 +09:00
Yasuo Honda
e4a6a23aa7 Suppress warning: BigDecimal.new is deprecated
`BigDecimal.new` has been deprecated in BigDecimal 1.3.3
 which will be a default for Ruby 2.5.

Refer
533737338d

* This commit has been made as follows:

```
cd rails
git grep -l BigDecimal.new | grep -v guides/source/5_0_release_notes.md | grep -v activesupport/test/xml_mini_test.rb | xargs sed -i -e "s/BigDecimal.new/BigDecimal/g"
```
- `activesupport/test/xml_mini_test.rb`
Editmanually to remove `.new` and `::`

- guides/source/5_0_release_notes.md
This is a Rails 5.0 release notes.
2017-12-15 01:19:57 +00:00
Jesse Doyle
3629197034 RedisCacheStore - Fix Default Error Handler
* The `DEFAULT_ERROR_HANDLER` constant in
  `ActiveSupport::Cache::RedisCacheStore` contained references
  to an undefined argument `e`, which is supposed to refer
  to the `exception` parameter.
* Update the default error handler proc to correctly reference
  the `exception` parameter.
2017-12-14 16:57:31 -07:00
Sean Griffin
edc54fd206
Merge pull request #31434 from olivierlacan/boot-feedback
Provide instant feedback when booting Rails
2017-12-14 16:49:02 -07:00
Sean Griffin
a5922f132f
Merge pull request #31452 from yahonda/deprecated_bigdecimal_new_activemodel
Suppress `warning: BigDecimal.new is deprecated` in Active Model
2017-12-14 16:23:04 -07:00
Ryuta Kamizono
f67892b65c
Merge pull request #31451 from yahonda/hash_digest_class_not_initialized
Address `warning: instance variable @hash_digest_class not initialized`
2017-12-15 08:15:52 +09:00
Ryuta Kamizono
379c1d735a
Merge pull request #31453 from yahonda/report_on_exception_true_in_ruby25_mysql2
Suppress expected exceptions by `report_on_exception` = `false` in mysql2 test
2017-12-15 08:11:04 +09:00
Yasuo Honda
521c9468e2 Suppress expected exceptions by report_on_exception = false
Follow up #31428 to address similar exceptions with mysql2 adapter
2017-12-14 19:33:34 +00:00
Yasuo Honda
bd4211ea13 Suppress warning: BigDecimal.new is deprecated in Active Model
`BigDecimal.new` has been deprecated in BigDecimal 1.3.3
 which will be a default for Ruby 2.5.

Refer ruby/bigdecimal@5337373

* This commit has been made as follows:

```ruby
$ cd activemodel/
$ git grep -l BigDecimal.new | grep \.rb | xargs sed -i -e "s/BigDecimal.new/BigDecimal/g"
```

* This commit has been tested with these Ruby versions:

```
ruby 2.5.0dev (2017-12-15 trunk 61262) [x86_64-linux]
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
ruby 2.2.8p477 (2017-09-14 revision 59906) [x86_64-linux]
```
2017-12-14 19:00:00 +00:00
Yasuo Honda
2458337d0a Address warning: instance variable @hash_digest_class not initialized
```ruby
/path/to/rails/activesupport/lib/active_support/digest.rb:7:
warning: instance variable @hash_digest_class not initialized
``
2017-12-14 18:49:52 +00:00
Guillermo Iguaran
7d75599c87 Update nokogiri version on Gemfile 2017-12-14 13:06:53 -05:00
Eileen M. Uchitelle
659c516bef
Merge pull request #31289 from witlessbird/fips-compatibility
Initial support for running Rails on FIPS-certified systems
2017-12-14 09:58:33 -05:00
Eileen M. Uchitelle
4bd28efc18
Merge pull request #26815 from olivierlacan/log-query-source
Log the original call site for an ActiveRecord query
2017-12-14 08:10:19 -05:00
Ryuta Kamizono
245c1dafa8 Enable Layout/LeadingCommentSpace to not allow cosmetic changes in the future
Follow up of #31432.
2017-12-14 17:30:54 +09:00
Olivier Lacan
acc03bb695 Provide instant feedback when booting Rails
I've noticed during pair/mob programming sessions with peers that
despite the speed boosts provided by Bootsnap and Spring, there is a
noticeable latency between firing a bin/rails server command and any
feedback being provided to the console. Depending on the size of the
application this lack of feedback can make it seem like something is
wrong when Rails is simply busy initializing.

This change may seem gratuitous but by just printing one line to STDOUT
we're giving a clear signal to the Rails user that their command has
been received and that Rails is indeed booting. It almost imperciptibly
makes Rails feel more responsive.

Sure the code doesn't look very fancy but there's no other appropriate
place I could think of putting it than boot.rb.

Compare these two GIFs of booting without and with this change:

Before:
![Without Boot Feedback](https://user-images.githubusercontent.com/65950/33964140-721041fc-e025-11e7-9b25-9d839ce92977.gif)

After:
![With Boot Feedback](https://user-images.githubusercontent.com/65950/33964151-79e12f86-e025-11e7-93e9-7a75c70d408f.gif)
2017-12-13 20:50:27 -05:00
Olivier Lacan
3876defd7c Log call site for all queries
This new ActiveRecord configuration option allows you to easily
pinpoint what line of application code is triggering SQL queries in the
development log by appending below each SQL statement log the line of
Ruby code that triggered it.

It’s useful with N+1 issues, and to locate stray queries.

By default this new option ignores Rails and Ruby code in order to
surface only callers from your application Ruby code or your gems.

It is enabled on newly generated Rails 5.2 applications and can be
enabled on existing Rails applications:

```ruby
Rails.application.configure do
  # ...
  config.active_record.verbose_query_logs = true
end
```

The `rails app:upgrade` task will also add it to
`config/development.rb`.

This feature purposely avoids coupling with
ActiveSupport::BacktraceCleaner since ActiveRecord can be used without
ActiveRecord. This decision can be reverted in the future to allow more
configurable backtraces (the exclusion of gem callers for example).
2017-12-13 20:13:21 -05:00
yuuji.yaginuma
65e994c063 Use released resque-scheduler instead of master version
The v4.3.1 has already released that includes Redis 4.0 support.
https://github.com/resque/resque-scheduler/blob/master/CHANGELOG.md#431---2017-11-20
2017-12-14 08:40:42 +09:00
Rafael França
afdc6f29c1
Merge pull request #31433 from jordan-brough/preserve-deprecated-method-visibility
Preserve original method visibility when deprecating a method
2017-12-13 18:09:02 -05:00
Rafael França
6464683cee
Merge pull request #31435 from yahonda/deprecated_bigdecimal_new
Suppress `warning: BigDecimal.new is deprecated` in activerecord
2017-12-13 18:08:46 -05:00
Yasuo Honda
6c6c3fa166 Suppress warning: BigDecimal.new is deprecated in activerecord
`BigDecimal.new` has been deprecated in BigDecimal 1.3.3
 which will be a default for Ruby 2.5.

Refer 533737338d

```
$ cd rails/activerecord/
$ git grep -l BigDecimal.new | grep \.rb | xargs sed -i -e "s/BigDecimal.new/BigDecimal/g"
```

- Changes made only to Active Record. Will apply the same change to
other module once this commit is merged.

- The following deprecation has not been addressed because it has been
reported at `ActiveRecord::Result.new`. `ActiveRecord::Result.ancestors`
did not show `BigDecimal`.

* Not addressed

```ruby
/path/to/rails/activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb:34:
warning: BigDecimal.new is deprecated
```

* database_statements.rb:34

```ruby
ActiveRecord::Result.new(result.fields, result.to_a) if result
```

* ActiveRecord::Result.ancestors

```ruby
[ActiveRecord::Result,
 Enumerable,
 ActiveSupport::ToJsonWithActiveSupportEncoder,
 Object,
 Metaclass::ObjectMethods,
 Mocha::ObjectMethods,
 PP::ObjectMixin,
 ActiveSupport::Dependencies::Loadable,
 ActiveSupport::Tryable,
 JSON::Ext::Generator::GeneratorMethods::Object,
 Kernel,
 BasicObject]
```

This commit has been tested with these Ruby and BigDecimal versions

- ruby 2.5 and bigdecimal 1.3.3

```
$ ruby -v
ruby 2.5.0dev (2017-12-14 trunk 61217) [x86_64-linux]
$ gem list |grep bigdecimal
bigdecimal (default: 1.3.3, default: 1.3.2)
```

- ruby 2.4 and bigdecimal 1.3.0

```
$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux-gnu]
$ gem list |grep bigdecimal
bigdecimal (default: 1.3.0)
```

- ruby 2.3 and bigdecimal 1.2.8

```
$ ruby -v
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-linux]
$ gem list |grep -i bigdecimal
bigdecimal (1.2.8)
```

- ruby 2.2 and bigdecimal 1.2.6
```
$ ruby -v
ruby 2.2.8p477 (2017-09-14 revision 59906) [x86_64-linux]
$ gem list |grep bigdecimal
bigdecimal (1.2.6)
```
2017-12-13 21:29:06 +00:00
Jordan Brough
9adaf605b4 Preserve original method visibility when deprecating a method
This commit fixes `deprecate` so that it preserves method visibility (like it
did previously when it was utilizing `alias_method_chain`).

When Module#prepend replaced alias_method_chain in a982a42 it caused deprecated
methods to always become public.

`alias_method_chain` had this bit of code:
https://github.com/rails/rails/blob/v5.0.6/activesupport/lib/active_support/core_ext/module/aliasing.rb#L40-L47
which preserved method visibility.

Without this fix, a workaround would be:

```ruby
class C8
  private

  def new_method
  end

  def old_method
  end
  deprecate :old_method, :new_method
  # workaround:
  instance_method(:old_method).owner.send(:private, :old_method)
end
```

Because the visibility needs to be fixed on the Module prepended by
MethodWrapper.
2017-12-13 13:18:03 -07:00
Rafael França
9242675167
Merge pull request #31432 from yhirano55/add_a_space_to_comment_in_active_job
[ci skip] Add a space to comment in SidekiqAdapter
2017-12-13 15:01:28 -05:00
Yoshiyuki Hirano
cd049112cb [ci skip] Add a space to comment in SidekiqAdapter
* I think it's better to have a leading space after the `#`
  denoting the start of the comment.
2017-12-14 04:50:49 +09:00
George Claghorn
bf4ee05a1b
Merge pull request #31429 from meinac/expose_activestorage_routes
Expose Active Storage routes
2017-12-13 14:22:40 -05:00
Mehmet Emin INAC
ff25c25127
Expose Active Storage routes 2017-12-13 19:28:57 +01:00