aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2017-03-22 10:11:39 +1030
committerMatthew Draper <matthew@trebex.net>2017-03-22 10:11:39 +1030
commit6c08d480f13d3332c878ca8a120a03fcd78f7ba2 (patch)
treeade18a9203afbc55db46aee904a087e8d9cec3d0
parent88b16843f67bcd96395444ba8f139895351da0bc (diff)
downloadrails-6c08d480f13d3332c878ca8a120a03fcd78f7ba2.tar.gz
rails-6c08d480f13d3332c878ca8a120a03fcd78f7ba2.tar.bz2
rails-6c08d480f13d3332c878ca8a120a03fcd78f7ba2.zip
Start Rails 5.2 development
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock76
-rw-r--r--RAILS_VERSION2
-rw-r--r--actioncable/CHANGELOG.md46
-rw-r--r--actioncable/lib/action_cable/gem_version.rb4
-rw-r--r--actioncable/package.json2
-rw-r--r--actionmailer/CHANGELOG.md34
-rw-r--r--actionmailer/lib/action_mailer/gem_version.rb4
-rw-r--r--actionpack/CHANGELOG.md409
-rw-r--r--actionpack/lib/action_pack/gem_version.rb4
-rw-r--r--actionview/CHANGELOG.md217
-rw-r--r--actionview/lib/action_view/gem_version.rb4
-rw-r--r--actionview/package.json2
-rw-r--r--activejob/CHANGELOG.md50
-rw-r--r--activejob/lib/active_job/gem_version.rb4
-rw-r--r--activemodel/CHANGELOG.md33
-rw-r--r--activemodel/lib/active_model/gem_version.rb4
-rw-r--r--activerecord/CHANGELOG.md772
-rw-r--r--activerecord/lib/active_record/gem_version.rb4
-rw-r--r--activerecord/lib/active_record/migration/compatibility.rb5
-rw-r--r--activesupport/CHANGELOG.md629
-rw-r--r--activesupport/lib/active_support/deprecation.rb2
-rw-r--r--activesupport/lib/active_support/gem_version.rb4
-rw-r--r--guides/CHANGELOG.md7
-rw-r--r--guides/bug_report_templates/action_controller_master.rb1
-rw-r--r--guides/bug_report_templates/active_job_master.rb1
-rw-r--r--guides/bug_report_templates/active_record_master.rb1
-rw-r--r--guides/bug_report_templates/active_record_migrations_master.rb1
-rw-r--r--guides/bug_report_templates/generic_master.rb1
-rw-r--r--railties/CHANGELOG.md200
-rw-r--r--railties/lib/rails/application/configuration.rb3
-rw-r--r--railties/lib/rails/gem_version.rb4
-rw-r--r--railties/lib/rails/generators/app_base.rb1
-rw-r--r--version.rb4
34 files changed, 90 insertions, 2447 deletions
diff --git a/Gemfile b/Gemfile
index 6f0bc534df..5077c257d9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,6 +7,8 @@ end
gemspec
+gem "arel", github: "rails/arel"
+
# We need a newish Rake since Active Job sets its test tasks' descriptions.
gem "rake", ">= 11.1"
diff --git a/Gemfile.lock b/Gemfile.lock
index 580333f6e6..0c9337bf2a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -23,61 +23,67 @@ GIT
event_emitter
websocket
+GIT
+ remote: https://github.com/rails/arel.git
+ revision: 437aa3a4bb8ad4f3f4eba299dbb1112852f9c7ac
+ specs:
+ arel (8.0.0)
+
PATH
remote: .
specs:
- actioncable (5.1.0.beta1)
- actionpack (= 5.1.0.beta1)
+ actioncable (5.2.0.alpha)
+ actionpack (= 5.2.0.alpha)
nio4r (~> 2.0)
websocket-driver (~> 0.6.1)
- actionmailer (5.1.0.beta1)
- actionpack (= 5.1.0.beta1)
- actionview (= 5.1.0.beta1)
- activejob (= 5.1.0.beta1)
+ actionmailer (5.2.0.alpha)
+ actionpack (= 5.2.0.alpha)
+ actionview (= 5.2.0.alpha)
+ activejob (= 5.2.0.alpha)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (5.1.0.beta1)
- actionview (= 5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ actionpack (5.2.0.alpha)
+ actionview (= 5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
rack (~> 2.0)
rack-test (~> 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
- actionview (5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ actionview (5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.3)
- activejob (5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ activejob (5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
globalid (>= 0.3.6)
- activemodel (5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
- activerecord (5.1.0.beta1)
- activemodel (= 5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ activemodel (5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
+ activerecord (5.2.0.alpha)
+ activemodel (= 5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
arel (~> 8.0)
- activesupport (5.1.0.beta1)
+ activesupport (5.2.0.alpha)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7)
minitest (~> 5.1)
tzinfo (~> 1.1)
- rails (5.1.0.beta1)
- actioncable (= 5.1.0.beta1)
- actionmailer (= 5.1.0.beta1)
- actionpack (= 5.1.0.beta1)
- actionview (= 5.1.0.beta1)
- activejob (= 5.1.0.beta1)
- activemodel (= 5.1.0.beta1)
- activerecord (= 5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ rails (5.2.0.alpha)
+ actioncable (= 5.2.0.alpha)
+ actionmailer (= 5.2.0.alpha)
+ actionpack (= 5.2.0.alpha)
+ actionview (= 5.2.0.alpha)
+ activejob (= 5.2.0.alpha)
+ activemodel (= 5.2.0.alpha)
+ activerecord (= 5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
bundler (>= 1.3.0, < 2.0)
- railties (= 5.1.0.beta1)
+ railties (= 5.2.0.alpha)
sprockets-rails (>= 2.0.0)
- railties (5.1.0.beta1)
- actionpack (= 5.1.0.beta1)
- activesupport (= 5.1.0.beta1)
+ railties (5.2.0.alpha)
+ actionpack (= 5.2.0.alpha)
+ activesupport (= 5.2.0.alpha)
method_source
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
@@ -88,7 +94,6 @@ GEM
addressable (2.5.0)
public_suffix (~> 2.0, >= 2.0.2)
amq-protocol (2.1.0)
- arel (8.0.0)
ast (2.3.0)
backburner (1.3.1)
beaneater (~> 1.0)
@@ -159,7 +164,7 @@ GEM
http_parser.rb (>= 0.6.0)
em-socksify (0.3.1)
eventmachine (>= 1.0.0.beta.4)
- erubi (1.4.0)
+ erubi (1.6.0)
erubis (2.7.0)
event_emitter (0.2.5)
eventmachine (1.2.1)
@@ -371,6 +376,7 @@ DEPENDENCIES
activerecord-jdbcmysql-adapter (>= 1.3.0)
activerecord-jdbcpostgresql-adapter (>= 1.3.0)
activerecord-jdbcsqlite3-adapter (>= 1.3.0)
+ arel!
backburner
bcrypt (~> 3.1.11)
benchmark-ips
@@ -427,4 +433,4 @@ DEPENDENCIES
websocket-client-simple!
BUNDLED WITH
- 1.14.4
+ 1.14.5
diff --git a/RAILS_VERSION b/RAILS_VERSION
index d5d15fa148..d5ebf861d3 100644
--- a/RAILS_VERSION
+++ b/RAILS_VERSION
@@ -1 +1 @@
-5.1.0.beta1
+5.2.0.alpha
diff --git a/actioncable/CHANGELOG.md b/actioncable/CHANGELOG.md
index a0254fe323..d5bd58cfdb 100644
--- a/actioncable/CHANGELOG.md
+++ b/actioncable/CHANGELOG.md
@@ -1,45 +1 @@
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Redis subscription adapters now support `channel_prefix` option in `cable.yml`
-
- Avoids channel name collisions when multiple apps use the same Redis server.
-
- *Chad Ingram*
-
-* Permit same-origin connections by default.
-
- Added new option `config.action_cable.allow_same_origin_as_host = false`
- to disable this behaviour.
-
- *Dávid Halász*, *Matthew Draper*
-
-* Prevent race where the client could receive and act upon a
- subscription confirmation before the channel's `subscribed` method
- completed.
-
- Fixes #25381.
-
- *Vladimir Dementyev*
-
-* Buffer now writes to WebSocket connections, to avoid blocking threads
- that could be doing more useful things.
-
- *Matthew Draper*, *Tinco Andringa*
-
-* Protect against concurrent writes to a WebSocket connection from
- multiple threads; the underlying OS write is not always threadsafe.
-
- *Tinco Andringa*
-
-* Add `ActiveSupport::Notifications` hook to `Broadcaster#broadcast`.
-
- *Matthew Wear*
-
-* Close hijacked socket when connection is shut down.
-
- Fixes #25613.
-
- *Tinco Andringa*
-
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/actioncable/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/actioncable/CHANGELOG.md) for previous changes.
diff --git a/actioncable/lib/action_cable/gem_version.rb b/actioncable/lib/action_cable/gem_version.rb
index c09613a747..5d6f9af0bb 100644
--- a/actioncable/lib/action_cable/gem_version.rb
+++ b/actioncable/lib/action_cable/gem_version.rb
@@ -6,9 +6,9 @@ module ActionCable
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/actioncable/package.json b/actioncable/package.json
index 69ae3519d9..acec1e2e9c 100644
--- a/actioncable/package.json
+++ b/actioncable/package.json
@@ -1,6 +1,6 @@
{
"name": "actioncable",
- "version": "5.1.0-beta1",
+ "version": "5.2.0-alpha",
"description": "WebSocket framework for Ruby on Rails.",
"main": "lib/assets/compiled/action_cable.js",
"files": [
diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md
index ee33450b45..e488d867de 100644
--- a/actionmailer/CHANGELOG.md
+++ b/actionmailer/CHANGELOG.md
@@ -1,33 +1 @@
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Add `:args` to `process.action_mailer` event.
-
- *Yuji Yaginuma*
-
-* Add parameterized invocation of mailers as a way to share before filters and defaults between actions.
- See `ActionMailer::Parameterized` for a full example of the benefit.
-
- *DHH*
-
-* Allow lambdas to be used as lazy defaults in addition to procs.
-
- *DHH*
-
-* Mime type: allow to custom content type when setting body in headers
- and attachments.
-
- Example:
-
- def test_emails
- attachments["invoice.pdf"] = "This is test File content"
- mail(body: "Hello there", content_type: "text/html")
- end
-
- *Minh Quy*
-
-* Exception handling: use `rescue_from` to handle exceptions raised by
- mailer actions, by message delivery, and by deferred delivery jobs.
-
- *Jeremy Daer*
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/actionmailer/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/actionmailer/CHANGELOG.md) for previous changes.
diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb
index de2d71bd3e..f5594ef928 100644
--- a/actionmailer/lib/action_mailer/gem_version.rb
+++ b/actionmailer/lib/action_mailer/gem_version.rb
@@ -6,9 +6,9 @@ module ActionMailer
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index d0662bdae2..c5b679207a 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,408 +1 @@
-* Fix `NameError` raised in `ActionController::Renderer#with_defaults`
-
- *Hiroyuki Ishii*
-
-* Added `#reverse_merge` and `#reverse_merge!` methods to `ActionController::Parameters`
-
- *Edouard Chin*, *Mitsutaka Mimura*
-
-* Fix malformed URLS when using `ApplicationController.renderer`
-
- The Rack environment variable `rack.url_scheme` was not being set so `scheme` was
- returning `nil`. This caused URLs to be malformed with the default settings.
- Fix this by setting `rack.url_scheme` when the environment is normalized.
-
- Fixes #28151.
-
- *George Vrettos*
-
-* Commit flash changes when using a redirect route.
-
- Fixes #27992.
-
- *Andrew White*
-
-
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Prefer `remove_method` over `undef_method` when reloading routes
-
- When `undef_method` is used it prevents access to other implementations of that
- url helper in the ancestor chain so use `remove_method` instead to restore access.
-
- *Andrew White*
-
-* Add the `resolve` method to the routing DSL
-
- This new method allows customization of the polymorphic mapping of models:
-
- ``` ruby
- resource :basket
- resolve("Basket") { [:basket] }
- ```
-
- ``` erb
- <%= form_for @basket do |form| %>
- <!-- basket form -->
- <% end %>
- ```
-
- This generates the correct singular URL for the form instead of the default
- resources member url, e.g. `/basket` vs. `/basket/:id`.
-
- Fixes #1769.
-
- *Andrew White*
-
-* Add the `direct` method to the routing DSL
-
- This new method allows creation of custom url helpers, e.g:
-
- ``` ruby
- direct(:apple) { "http://www.apple.com" }
-
- >> apple_url
- => "http://www.apple.com"
- ```
-
- This has the advantage of being available everywhere url helpers are available
- unlike custom url helpers defined in helper modules, etc.
-
- *Andrew White*
-
-* Add `ActionDispatch::SystemTestCase` to Action Pack
-
- Adds Capybara integration directly into Rails through Action Pack!
-
- See PR [#26703](https://github.com/rails/rails/pull/26703)
-
- *Eileen M. Uchitelle*
-
-* Remove deprecated `.to_prepare`, `.to_cleanup`, `.prepare!` and `.cleanup!` from `ActionDispatch::Reloader`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionDispatch::Callbacks.to_prepare` and `ActionDispatch::Callbacks.to_cleanup`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionController::Metal.call`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionController::Metal#env`.
-
- *Rafael Mendonça França*
-
-* Make `with_routing` test helper work when testing controllers inheriting from `ActionController::API`
-
- *Julia López*
-
-* Use accept header in integration tests with `as: :json`
-
- Instead of appending the `format` to the request path, Rails will figure
- out the format from the header instead.
-
- This allows devs to use `:as` on routes that don't have a format.
-
- Fixes #27144.
-
- *Kasper Timm Hansen*
-
-* Reset a new session directly after its creation in `ActionDispatch::IntegrationTest#open_session`.
-
- Fixes #22742.
-
- *Tawan Sierek*
-
-* Fixes incorrect output from `rails routes` when using singular resources.
-
- Fixes #26606.
-
- *Erick Reyna*
-
-* Fixes multiple calls to `logger.fatal` instead of a single call,
- for every line in an exception backtrace, when printing trace
- from `DebugExceptions` middleware.
-
- Fixes #26134.
-
- *Vipul A M*
-
-* Add support for arbitrary hashes in strong parameters:
-
- ```ruby
- params.permit(preferences: {})
- ```
-
- *Xavier Noria*
-
-* Add `ActionController::Parameters#merge!`, which behaves the same as `Hash#merge!`.
-
- *Yuji Yaginuma*
-
-* Allow keys not found in `RACK_KEY_TRANSLATION` for setting the environment when rendering
- arbitrary templates.
-
- *Sammy Larbi*
-
-* Remove deprecated support to non-keyword arguments in `ActionDispatch::IntegrationTest#process`,
- `#get`, `#post`, `#patch`, `#put`, `#delete`, and `#head`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionDispatch::IntegrationTest#*_via_redirect`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionDispatch::IntegrationTest#xml_http_request`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support for passing `:path` and route path as strings in `ActionDispatch::Routing::Mapper#match`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support for passing path as `nil` in `ActionDispatch::Routing::Mapper#match`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `cache_control` argument from `ActionDispatch::Static#initialize`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing strings or symbols to the middleware stack.
-
- *Rafael Mendonça França*
-
-* Change HSTS subdomain to true.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `host` and `port` ssl options.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `const_error` argument in
- `ActionDispatch::Session::SessionRestoreError#initialize`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `#original_exception` in `ActionDispatch::Session::SessionRestoreError`.
-
- *Rafael Mendonça França*
-
-* Deprecate `ActionDispatch::ParamsParser::ParseError` in favor of
- `ActionDispatch::Http::Parameters::ParseError`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `ActionDispatch::ParamsParser`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `original_exception` and `message` arguments in
- `ActionDispatch::ParamsParser::ParseError#initialize`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `#original_exception` in `ActionDispatch::ParamsParser::ParseError`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated access to mime types through constants.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to non-keyword arguments in `ActionController::TestCase#process`,
- `#get`, `#post`, `#patch`, `#put`, `#delete`, and `#head`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `xml_http_request` and `xhr` methods in `ActionController::TestCase`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated methods in `ActionController::Parameters`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to comparing a `ActionController::Parameters`
- with a `Hash`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to `:text` in `render`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to `:nothing` in `render`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to `:back` in `redirect_to`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing status as option `head`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing original exception to `ActionController::BadRequest`
- and the `ActionController::BadRequest#original_exception` method.
-
- *Rafael Mendonça França*
-
-* Remove deprecated methods `skip_action_callback`, `skip_filter`, `before_filter`,
- `prepend_before_filter`, `skip_before_filter`, `append_before_filter`, `around_filter`
- `prepend_around_filter`, `skip_around_filter`, `append_around_filter`, `after_filter`,
- `prepend_after_filter`, `skip_after_filter` and `append_after_filter`.
-
- *Rafael Mendonça França*
-
-* Show an "unmatched constraints" error when params fail to match constraints
- on a matched route, rather than a "missing keys" error.
-
- Fixes #26470.
-
- *Chris Carter*
-
-* Fix adding implicitly rendered template digests to ETags.
-
- Fixes a case when modifying an implicitly rendered template for a
- controller action using `fresh_when` or `stale?` would not result in a new
- `ETag` value.
-
- *Javan Makhmali*
-
-* Make `fixture_file_upload` work in integration tests.
-
- *Yuji Yaginuma*
-
-* Add `to_param` to `ActionController::Parameters` deprecations.
-
- In the future `ActionController::Parameters` are discouraged from being used
- in URLs without explicit whitelisting. Go through `to_h` to use `to_param`.
-
- *Kir Shatrov*
-
-* Fix nested multiple roots
-
- The PR #20940 enabled the use of multiple roots with different constraints
- at the top level but unfortunately didn't work when those roots were inside
- a namespace and also broke the use of root inside a namespace after a top
- level root was defined because the check for the existence of the named route
- used the global :root name and not the namespaced name.
-
- This is fixed by using the name_for_action method to expand the :root name to
- the full namespaced name. We can pass nil for the second argument as we're not
- dealing with resource definitions so don't need to handle the cases for edit
- and new routes.
-
- Fixes #26148.
-
- *Ryo Hashimoto*, *Andrew White*
-
-* Include the content of the flash in the auto-generated etag. This solves the following problem:
-
- 1. POST /messages
- 2. redirect_to messages_url, notice: 'Message was created'
- 3. GET /messages/1
- 4. GET /messages
-
- Step 4 would before still include the flash message, even though it's no longer relevant,
- because the etag cache was recorded with the flash in place and didn't change when it was gone.
-
- *DHH*
-
-* SSL: Changes redirect behavior for all non-GET and non-HEAD requests
- (like POST/PUT/PATCH etc) to `http://` resources to redirect to `https://`
- with a [307 status code](http://tools.ietf.org/html/rfc7231#section-6.4.7) instead of [301 status code](http://tools.ietf.org/html/rfc7231#section-6.4.2).
-
- 307 status code instructs the HTTP clients to preserve the original
- request method while redirecting. It has been part of HTTP RFC since
- 1999 and is implemented/recognized by most (if not all) user agents.
-
- # Before
- POST http://example.com/articles (i.e. ArticlesContoller#create)
- redirects to
- GET https://example.com/articles (i.e. ArticlesContoller#index)
-
- # After
- POST http://example.com/articles (i.e. ArticlesContoller#create)
- redirects to
- POST https://example.com/articles (i.e. ArticlesContoller#create)
-
- *Chirag Singhal*
-
-* Add `:as` option to `ActionController:TestCase#process` and related methods.
-
- Specifying `as: mime_type` allows the `CONTENT_TYPE` header to be specified
- in controller tests without manually doing this through `@request.headers['CONTENT_TYPE']`.
-
- *Everest Stefan Munro-Zeisberger*
-
-* Show cache hits and misses when rendering partials.
-
- Partials using the `cache` helper will show whether a render hit or missed
- the cache:
-
- ```
- Rendered messages/_message.html.erb in 1.2 ms [cache hit]
- Rendered recordings/threads/_thread.html.erb in 1.5 ms [cache miss]
- ```
-
- This removes the need for the old fragment cache logging:
-
- ```
- Read fragment views/v1/2914079/v1/2914079/recordings/70182313-20160225015037000000/d0bdf2974e1ef6d31685c3b392ad0b74 (0.6ms)
- Rendered messages/_message.html.erb in 1.2 ms [cache hit]
- Write fragment views/v1/2914079/v1/2914079/recordings/70182313-20160225015037000000/3b4e249ac9d168c617e32e84b99218b5 (1.1ms)
- Rendered recordings/threads/_thread.html.erb in 1.5 ms [cache miss]
- ```
-
- Though that full output can be reenabled with
- `config.action_controller.enable_fragment_cache_logging = true`.
-
- *Stan Lo*
-
-* Don't override the `Accept` header in integration tests when called with `xhr: true`.
-
- Fixes #25859.
-
- *David Chen*
-
-* Fix `defaults` option for root route.
-
- A regression from some refactoring for the 5.0 release, this change
- fixes the use of `defaults` (default parameters) in the `root` routing method.
-
- *Chris Arcand*
-
-* Check `request.path_parameters` encoding at the point they're set.
-
- Check for any non-UTF8 characters in path parameters at the point they're
- set in `env`. Previously they were checked for when used to get a controller
- class, but this meant routes that went directly to a Rack app, or skipped
- controller instantiation for some other reason, had to defend against
- non-UTF8 characters themselves.
-
- *Grey Baker*
-
-* Don't raise `ActionController::UnknownHttpMethod` from `ActionDispatch::Static`.
-
- Pass `Rack::Request` objects to `ActionDispatch::FileHandler` to avoid it
- raising `ActionController::UnknownHttpMethod`. If an unknown method is
- passed, it should pass exception higher in the stack instead, once we've had a
- chance to define exception handling behaviour.
-
- *Grey Baker*
-
-* Handle `Rack::QueryParser` errors in `ActionDispatch::ExceptionWrapper`.
-
- Updated `ActionDispatch::ExceptionWrapper` to handle the Rack 2.0 namespace
- for `ParameterTypeError` and `InvalidParameterError` errors.
-
- *Grey Baker*
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/actionpack/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/actionpack/CHANGELOG.md) for previous changes.
diff --git a/actionpack/lib/action_pack/gem_version.rb b/actionpack/lib/action_pack/gem_version.rb
index d6a91a0569..fddc3033d5 100644
--- a/actionpack/lib/action_pack/gem_version.rb
+++ b/actionpack/lib/action_pack/gem_version.rb
@@ -6,9 +6,9 @@ module ActionPack
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md
index 6e71809385..c514e757c8 100644
--- a/actionview/CHANGELOG.md
+++ b/actionview/CHANGELOG.md
@@ -1,216 +1 @@
-* Remove the option `encode_special_chars` misnomer from `strip_tags`
-
- As of rails-html-sanitizer v1.0.3, the sanitizer will ignore the
- `encode_special_chars` option.
-
- Fixes #28060.
-
- *Andrew Hood*
-
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Change the ERB handler from Erubis to Erubi.
-
- Erubi is an Erubis fork that's svelte, simple, and currently maintained.
- Plus it supports `--enable-frozen-string-literal` in Ruby 2.3+.
-
- Compatibility: Drops support for `<%===` tags for debug output.
- These were an unused, undocumented side effect of the Erubis
- implementation.
-
- Deprecation: The Erubis handler will be removed in Rails 5.2, for the
- handful of folks using it directly.
-
- *Jeremy Evans*
-
-* Allow render locals to be assigned to instance variables in a view.
-
- Fixes #27480.
-
- *Andrew White*
-
-* Add `check_parameters` option to `current_page?` which makes it more strict.
-
- *Maksym Pugach*
-
-* Return correct object name in form helper method after `fields_for`.
-
- Fixes #26931.
-
- *Yuji Yaginuma*
-
-* Use `ActionView::Resolver.caching?` (`config.action_view.cache_template_loading`)
- to enable template recompilation.
-
- Before it was enabled by `consider_all_requests_local`, which caused
- recompilation in tests.
-
- *Max Melentiev*
-
-* Add `form_with` to unify `form_tag` and `form_for` usage.
-
- Used like `form_tag` (where just the open tag is output):
-
- ```erb
- <%= form_with scope: :post, url: super_special_posts_path %>
- ```
-
- Used like `form_for`:
-
- ```erb
- <%= form_with model: @post do |form| %>
- <%= form.text_field :title %>
- <% end %>
- ```
-
- *Kasper Timm Hansen*, *Marek Kirejczyk*
-
-* Add `fields` form helper method.
-
- ```erb
- <%= fields :comment, model: @comment do |fields| %>
- <%= fields.text_field :title %>
- <% end %>
- ```
-
- Can also be used within form helpers such as `form_with`.
-
- *Kasper Timm Hansen*
-
-* Removed deprecated `#original_exception` in `ActionView::Template::Error`.
-
- *Rafael Mendonça França*
-
-* Render now accepts any keys for locals, including reserved keywords.
-
- Only locals with valid variable names get set directly. Others
- will still be available in `local_assigns`.
-
- Example of render with reserved keywords:
-
- ```erb
- <%= render "example", class: "text-center", message: "Hello world!" %>
-
- <!-- _example.html.erb: -->
- <%= tag.div class: local_assigns[:class] do %>
- <p><%= message %></p>
- <% end %>
- ```
-
- *Peter Schilling*, *Matthew Draper*
-
-* Add `:skip_pipeline` option to several asset tag helpers
-
- `javascript_include_tag`, `stylesheet_link_tag`, `favicon_link_tag`,
- `image_tag` and `audio_tag` now accept a `:skip_pipeline` option which can
- be set to true to bypass the asset pipeline and serve the assets from the
- public folder.
-
- *Richard Schneeman*
-
-* Add `:poster_skip_pipeline` option to the `video_tag` helper
-
- `video_tag` now accepts a `:poster_skip_pipeline` option which can be used
- in combination with the `:poster` option to bypass the asset pipeline and
- serve the poster image for the video from the public folder.
-
- *Richard Schneeman*
-
-* Show cache hits and misses when rendering partials.
-
- Partials using the `cache` helper will show whether a render hit or missed
- the cache:
-
- ```
- Rendered messages/_message.html.erb in 1.2 ms [cache hit]
- Rendered recordings/threads/_thread.html.erb in 1.5 ms [cache miss]
- ```
-
- This removes the need for the old fragment cache logging:
-
- ```
- Read fragment views/v1/2914079/v1/2914079/recordings/70182313-20160225015037000000/d0bdf2974e1ef6d31685c3b392ad0b74 (0.6ms)
- Rendered messages/_message.html.erb in 1.2 ms [cache hit]
- Write fragment views/v1/2914079/v1/2914079/recordings/70182313-20160225015037000000/3b4e249ac9d168c617e32e84b99218b5 (1.1ms)
- Rendered recordings/threads/_thread.html.erb in 1.5 ms [cache miss]
- ```
-
- Though that full output can be reenabled with
- `config.action_controller.enable_fragment_cache_logging = true`.
-
- *Stan Lo*
-
-* Changed partial rendering with a collection to allow collections which
- implement `to_a`.
-
- Extracting the collection option had an optimization to avoid unnecessary
- queries of ActiveRecord Relations by calling `#to_ary` on the given
- collection. Instances of `Enumerator` or `Enumerable` are valid
- collections, but they do not implement `#to_ary`. By changing this to
- `#to_a`, they will now be extracted and rendered as expected.
-
- *Steven Harman*
-
-* New syntax for tag helpers. Avoid positional parameters and support HTML5 by default.
- Example usage of tag helpers before:
-
- ```ruby
- tag(:br, nil, true)
- content_tag(:div, content_tag(:p, "Hello world!"), class: "strong")
-
- <%= content_tag :div, class: "strong" do -%>
- Hello world!
- <% end -%>
- ```
-
- Example usage of tag helpers after:
-
- ```ruby
- tag.br
- tag.div tag.p("Hello world!"), class: "strong"
-
- <%= tag.div class: "strong" do %>
- Hello world!
- <% end %>
- ```
-
- *Marek Kirejczyk*, *Kasper Timm Hansen*
-
-* Change `datetime_field` and `datetime_field_tag` to generate `datetime-local` fields.
-
- As a new specification of the HTML 5 the text field type `datetime` will no longer exist
- and it is recommended to use `datetime-local`.
- Ref: https://html.spec.whatwg.org/multipage/forms.html#local-date-and-time-state-(type=datetime-local)
-
- *Herminio Torres*
-
-* Raw template handler (which is also the default template handler in Rails 5) now outputs
- HTML-safe strings.
-
- In Rails 5 the default template handler was changed to the raw template handler. Because
- the ERB template handler escaped strings by default this broke some applications that
- expected plain JS or HTML files to be rendered unescaped. This fixes the issue caused
- by changing the default handler by changing the Raw template handler to output HTML-safe
- strings.
-
- *Eileen M. Uchitelle*
-
-* `select_tag`'s `include_blank` option for generation for blank option tag, now adds an empty space label,
- when the value as well as content for option tag are empty, so that we conform with html specification.
- Ref: https://www.w3.org/TR/html5/forms.html#the-option-element.
-
- Generation of option before:
-
- ```html
- <option value=""></option>
- ```
-
- Generation of option after:
-
- ```html
- <option value="" label=" "></option>
- ```
-
- *Vipul A M*
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/actionview/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/actionview/CHANGELOG.md) for previous changes.
diff --git a/actionview/lib/action_view/gem_version.rb b/actionview/lib/action_view/gem_version.rb
index 662a85f191..92e21d7a4f 100644
--- a/actionview/lib/action_view/gem_version.rb
+++ b/actionview/lib/action_view/gem_version.rb
@@ -6,9 +6,9 @@ module ActionView
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/actionview/package.json b/actionview/package.json
index a1da13315e..690749a051 100644
--- a/actionview/package.json
+++ b/actionview/package.json
@@ -1,6 +1,6 @@
{
"name": "rails-ujs",
- "version": "5.1.0-beta1",
+ "version": "5.2.0-alpha",
"description": "Ruby on Rails unobtrusive scripting adapter",
"main": "lib/assets/compiled/rails-ujs.js",
"files": [
diff --git a/activejob/CHANGELOG.md b/activejob/CHANGELOG.md
index 41505fbf83..6b4f93df8b 100644
--- a/activejob/CHANGELOG.md
+++ b/activejob/CHANGELOG.md
@@ -1,49 +1 @@
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Correctly set test adapter when configure the queue adapter on a per job.
-
- Fixes #26360.
-
- *Yuji Yaginuma*
-
-* Removed deprecated support to passing the adapter class to `.queue_adapter`.
-
- *Rafael Mendonça França*
-
-* Removed deprecated `#original_exception` in `ActiveJob::DeserializationError`.
-
- *Rafael Mendonça França*
-
-* Added instance variable `@queue` to JobWrapper.
-
- This will fix issues in [resque-scheduler](https://github.com/resque/resque-scheduler) `#job_to_hash` method,
- so we can use `#enqueue_delayed_selection`, `#remove_delayed` method in resque-scheduler smoothly.
-
- *mu29*
-
-* Yield the job instance so you have access to things like `job.arguments` on the custom logic after retries fail.
-
- *DHH*
-
-* Added declarative exception handling via `ActiveJob::Base.retry_on` and `ActiveJob::Base.discard_on`.
-
- Examples:
-
- class RemoteServiceJob < ActiveJob::Base
- retry_on CustomAppException # defaults to 3s wait, 5 attempts
- retry_on AnotherCustomAppException, wait: ->(executions) { executions * 2 }
- retry_on ActiveRecord::Deadlocked, wait: 5.seconds, attempts: 3
- retry_on Net::OpenTimeout, wait: :exponentially_longer, attempts: 10
- discard_on ActiveJob::DeserializationError
-
- def perform(*args)
- # Might raise CustomAppException or AnotherCustomAppException for something domain specific
- # Might raise ActiveRecord::Deadlocked when a local db deadlock is detected
- # Might raise Net::OpenTimeout when the remote service is down
- end
- end
-
- *DHH*
-
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activejob/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activejob/CHANGELOG.md) for previous changes.
diff --git a/activejob/lib/active_job/gem_version.rb b/activejob/lib/active_job/gem_version.rb
index 2b608b9a65..bf81f37e81 100644
--- a/activejob/lib/active_job/gem_version.rb
+++ b/activejob/lib/active_job/gem_version.rb
@@ -6,9 +6,9 @@ module ActiveJob
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md
index 1503b6a3e4..3bb5005275 100644
--- a/activemodel/CHANGELOG.md
+++ b/activemodel/CHANGELOG.md
@@ -1,32 +1 @@
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Remove deprecated behavior that halts callbacks when the return is false.
-
- *Rafael Mendonça França*
-
-* Remove unused `ActiveModel::TestCase` class.
-
- *Yuji Yaginuma*
-
-* Moved DecimalWithoutScale, Text, and UnsignedInteger from Active Model to Active Record
-
- *Iain Beeston*
-
-* Allow indifferent access in `ActiveModel::Errors`.
-
- `#include?`, `#has_key?`, `#key?`, `#delete` and `#full_messages_for`.
-
- *Kenichi Kamiya*
-
-* Removed deprecated `:tokenizer` in the length validator.
-
- *Rafael Mendonça França*
-
-* Removed deprecated methods in `ActiveModel::Errors`.
-
- `#get`, `#set`, `[]=`, `add_on_empty` and `add_on_blank`.
-
- *Rafael Mendonça França*
-
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activemodel/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activemodel/CHANGELOG.md) for previous changes.
diff --git a/activemodel/lib/active_model/gem_version.rb b/activemodel/lib/active_model/gem_version.rb
index 6a2ab2a8e5..67bdfaa643 100644
--- a/activemodel/lib/active_model/gem_version.rb
+++ b/activemodel/lib/active_model/gem_version.rb
@@ -6,9 +6,9 @@ module ActiveModel
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md
index 4488524c4e..30d580b9e3 100644
--- a/activerecord/CHANGELOG.md
+++ b/activerecord/CHANGELOG.md
@@ -1,771 +1 @@
-* Remove comments from structure.sql when using postgresql adapter to avoid
- version-specific parts of the file.
-
- Fixes #28153.
-
- *Ari Pollak*
-
-* Add `:default` option to `belongs_to`.
-
- Use it to specify that an association should be initialized with a particular
- record before validation. For example:
-
- # Before
- belongs_to :account
- before_validation -> { self.account ||= Current.account }
-
- # After
- belongs_to :account, default: -> { Current.account }
-
- *George Claghorn*
-
-* Deprecate `Migrator.schema_migrations_table_name`.
-
- *Ryuta Kamizono*
-
-* Fix select with block doesn't return newly built records in has_many association.
-
- Fixes #28348.
-
- *Ryuta Kamizono*
-
-* Check whether `Rails.application` defined before calling it
-
- In #27674 we changed the migration generator to generate migrations at the
- path defined in `Rails.application.config.paths` however the code checked
- for the presence of the `Rails` constant but not the `Rails.application`
- method which caused problems when using Active Record and generators outside
- of the context of a Rails application.
-
- Fixes #28325.
-
- *Andrew White*
-
-* Fix `deserialize` with JSON array.
-
- Fixes #28285.
-
- *Ryuta Kamizono*
-
-* Fix `rake db:schema:load` with subdirectories.
-
- *Ryuta Kamizono*
-
-* Fix `rake db:migrate:status` with subdirectories.
-
- *Ryuta Kamizono*
-
-* Don't share options between reference id and type columns
-
- When using a polymorphic reference column in a migration, sharing options
- between the two columns doesn't make sense since they are different types.
- The `reference_id` column is usually an integer and the `reference_type`
- column a string so options like `unsigned: true` will result in an invalid
- table definition.
-
- *Ryuta Kamizono*
-
-* Use `max_identifier_length` for `index_name_length` in PostgreSQL adapter.
-
- *Ryuta Kamizono*
-
-* Deprecate `supports_migrations?` on connection adapters.
-
- *Ryuta Kamizono*
-
-* Fix regression of #1969 with SELECT aliases in HAVING clause.
-
- *Eugene Kenny*
-
-* Deprecate using `#quoted_id` in quoting.
-
- *Ryuta Kamizono*
-
-* Fix `wait_timeout` to configurable for mysql2 adapter.
-
- Fixes #26556.
-
- *Ryuta Kamizono*
-
-
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Correctly dump native timestamp types for MySQL.
-
- The native timestamp type in MySQL is different from datetime type.
- Internal representation of the timestamp type is UNIX time, This means
- that timestamp columns are affected by time zone.
-
- > SET time_zone = '+00:00';
- Query OK, 0 rows affected (0.00 sec)
-
- > INSERT INTO time_with_zone(ts,dt) VALUES (NOW(),NOW());
- Query OK, 1 row affected (0.02 sec)
-
- > SELECT * FROM time_with_zone;
- +---------------------+---------------------+
- | ts | dt |
- +---------------------+---------------------+
- | 2016-02-07 22:11:44 | 2016-02-07 22:11:44 |
- +---------------------+---------------------+
- 1 row in set (0.00 sec)
-
- > SET time_zone = '-08:00';
- Query OK, 0 rows affected (0.00 sec)
-
- > SELECT * FROM time_with_zone;
- +---------------------+---------------------+
- | ts | dt |
- +---------------------+---------------------+
- | 2016-02-07 14:11:44 | 2016-02-07 22:11:44 |
- +---------------------+---------------------+
- 1 row in set (0.00 sec)
-
- *Ryuta Kamizono*
-
-* All integer-like PKs are autoincrement unless they have an explicit default.
-
- *Matthew Draper*
-
-* Omit redundant `using: :btree` for schema dumping.
-
- *Ryuta Kamizono*
-
-* Deprecate passing `default` to `index_name_exists?`.
-
- *Ryuta Kamizono*
-
-* PostgreSQL: schema dumping support for interval and OID columns.
-
- *Ryuta Kamizono*
-
-* Deprecate `supports_primary_key?` on connection adapters since it's
- been long unused and unsupported.
-
- *Ryuta Kamizono*
-
-* Make `table_name=` reset current statement cache,
- so queries are not run against the previous table name.
-
- *namusyaka*
-
-* Allow `ActiveRecord::Base#as_json` to be passed a frozen Hash.
-
- *Isaac Betesh*
-
-* Fix inspection behavior when the :id column is not primary key.
-
- *namusyaka*
-
-* Deprecate locking records with unpersisted changes.
-
- *Marc Schütz*
-
-* Remove deprecated behavior that halts callbacks when the return is false.
-
- *Rafael Mendonça França*
-
-* Deprecate `ColumnDumper#migration_keys`.
-
- *Ryuta Kamizono*
-
-* Fix `association_primary_key_type` for reflections with symbol primary key.
-
- Fixes #27864.
-
- *Daniel Colson*
-
-* Virtual/generated column support for MySQL 5.7.5+ and MariaDB 5.2.0+.
-
- MySQL generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html
- MariaDB virtual columns: https://mariadb.com/kb/en/mariadb/virtual-computed-columns/
-
- Declare virtual columns with `t.virtual name, type: …, as: "expression"`.
- Pass `stored: true` to persist the generated value (false by default).
-
- Example:
-
- create_table :generated_columns do |t|
- t.string :name
- t.virtual :upper_name, type: :string, as: "UPPER(name)"
- t.virtual :name_length, type: :integer, as: "LENGTH(name)", stored: true
- t.index :name_length # May be indexed, too!
- end
-
- *Ryuta Kamizono*
-
-* Deprecate `initialize_schema_migrations_table` and `initialize_internal_metadata_table`.
-
- *Ryuta Kamizono*
-
-* Support foreign key creation for SQLite3.
-
- *Ryuta Kamizono*
-
-* Place generated migrations into the path set by `config.paths["db/migrate"]`.
-
- *Kevin Glowacz*
-
-* Raise `ActiveRecord::InvalidForeignKey` when a foreign key constraint fails on SQLite3.
-
- *Ryuta Kamizono*
-
-* Add the touch option to `#increment!` and `#decrement!`.
-
- *Hiroaki Izu*
-
-* Deprecate passing a class to the `class_name` because it eagerloads more classes than
- necessary and potentially creates circular dependencies.
-
- *Kir Shatrov*
-
-* Raise error when has_many through is defined before through association.
-
- Fixes #26834.
-
- *Chris Holmes*
-
-* Deprecate passing `name` to `indexes`.
-
- *Ryuta Kamizono*
-
-* Remove deprecated tasks: `db:test:clone`, `db:test:clone_schema`, `db:test:clone_structure`.
-
- *Rafel Mendonça França*
-
-* Compare deserialized values for `PostgreSQL::OID::Hstore` types when
- calling `ActiveRecord::Dirty#changed_in_place?`.
-
- Fixes #27502.
-
- *Jon Moss*
-
-* Raise `ArgumentError` when passing an `ActiveRecord::Base` instance to `.find`,
- `.exists?` and `.update`.
-
- *Rafael Mendonça França*
-
-* Respect precision option for arrays of timestamps.
-
- Fixes #27514.
-
- *Sean Griffin*
-
-* Optimize slow model instantiation when using STI and `store_full_sti_class = false` option.
-
- *Konstantin Lazarev*
-
-* Add `touch` option to counter cache modifying methods.
-
- Works when updating, resetting, incrementing and decrementing counters:
-
- # Touches `updated_at`/`updated_on`.
- Topic.increment_counter(:messages_count, 1, touch: true)
- Topic.decrement_counter(:messages_count, 1, touch: true)
-
- # Touches `last_discussed_at`.
- Topic.reset_counters(18, :messages, touch: :last_discussed_at)
-
- # Touches `updated_at` and `last_discussed_at`.
- Topic.update_counters(18, messages_count: 5, touch: %i( updated_at last_discussed_at ))
-
- Fixes #26724.
-
- *Jarred Trost*
-
-* Remove deprecated `#uniq`, `#uniq!`, and `#uniq_value`.
-
- *Ryuta Kamizono*
-
-* Remove deprecated `#insert_sql`, `#update_sql`, and `#delete_sql`.
-
- *Ryuta Kamizono*
-
-* Remove deprecated `#use_transactional_fixtures` configuration.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `#raise_in_transactional_callbacks` configuration.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `#load_schema_for`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated conditions parameter from `#destroy_all` and `#delete_all`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing arguments to `#select` when a block is provided.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to query using commas on LIMIT.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing a class as a value in a query.
-
- *Rafael Mendonça França*
-
-* Raise `ActiveRecord::IrreversibleOrderError` when using `last` with an irreversible
- order.
-
- *Rafael Mendonça França*
-
-* Raise when a `has_many :through` association has an ambiguous reflection name.
-
- *Rafael Mendonça França*
-
-* Raise when `ActiveRecord::Migration` is inherited from directly.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `original_exception` argument in `ActiveRecord::StatementInvalid#initialize`
- and `ActiveRecord::StatementInvalid#original_exception`.
-
- *Rafael Mendonça França*
-
-* `#tables` and `#table_exists?` return only tables and not views.
-
- All the deprecations on those methods were removed.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `name` argument from `#tables`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated support to passing a column to `#quote`.
-
- *Rafael Mendonça França*
-
-* Set `:time` as a timezone aware type and remove deprecation when
- `config.active_record.time_zone_aware_types` is not explicitly set.
-
- *Rafael Mendonça França*
-
-* Remove deprecated force reload argument in singular and collection association readers.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `activerecord.errors.messages.restrict_dependent_destroy.one` and
- `activerecord.errors.messages.restrict_dependent_destroy.many` i18n scopes.
-
- *Rafael Mendonça França*
-
-* Allow passing extra flags to `db:structure:load` and `db:structure:dump`
-
- Introduces `ActiveRecord::Tasks::DatabaseTasks.structure_(load|dump)_flags` to customize the
- eventual commands run against the database, e.g. mysqldump/pg_dump.
-
- *Kir Shatrov*
-
-* Notifications see frozen SQL string.
-
- Fixes #23774.
-
- *Richard Monette*
-
-* RuntimeErrors are no longer translated to `ActiveRecord::StatementInvalid`.
-
- *Richard Monette*
-
-* Change the schema cache format to use YAML instead of Marshal.
-
- *Kir Shatrov*
-
-* Support index length and order options using both string and symbol
- column names.
-
- Fixes #27243.
-
- *Ryuta Kamizono*
-
-* Raise `ActiveRecord::RangeError` when values that executed are out of range.
-
- *Ryuta Kamizono*
-
-* Raise `ActiveRecord::NotNullViolation` when a record cannot be inserted
- or updated because it would violate a not null constraint.
-
- *Ryuta Kamizono*
-
-* Emulate db trigger behaviour for after_commit :destroy, :update.
-
- Race conditions can occur when an ActiveRecord is destroyed
- twice or destroyed and updated. The callbacks should only be
- triggered once, similar to a SQL database trigger.
-
- *Stefan Budeanu*
-
-* Moved `DecimalWithoutScale`, `Text`, and `UnsignedInteger` from Active Model to Active Record.
-
- *Iain Beeston*
-
-* Fix `write_attribute` method to check whether an attribute is aliased or not, and
- use the aliased attribute name if needed.
-
- *Prathamesh Sonpatki*
-
-* Fix `read_attribute` method to check whether an attribute is aliased or not, and
- use the aliased attribute name if needed.
-
- Fixes #26417.
-
- *Prathamesh Sonpatki*
-
-* PostgreSQL & MySQL: Use big integer as primary key type for new tables.
-
- *Jon McCartie*, *Pavel Pravosud*
-
-* Change the type argument of `ActiveRecord::Base#attribute` to be optional.
- The default is now `ActiveRecord::Type::Value.new`, which provides no type
- casting behavior.
-
- *Sean Griffin*
-
-* Don't treat unsigned integers with zerofill as signed.
-
- Fixes #27125.
-
- *Ryuta Kamizono*
-
-* Fix the uniqueness validation scope with a polymorphic association.
-
- *Sergey Alekseev*
-
-* Raise `ActiveRecord::RecordNotFound` from collection `*_ids` setters
- for unknown IDs with a better error message.
-
- Changes the collection `*_ids` setters to cast provided IDs the data
- type of the primary key set in the association, not the model
- primary key.
-
- *Dominic Cleal*
-
-* For PostgreSQL >= 9.4 use `pgcrypto`'s `gen_random_uuid()` instead of
- `uuid-ossp`'s UUID generation function.
-
- *Yuji Yaginuma*, *Yaw Boakye*
-
-* Introduce `Model#reload_<association>` to bring back the behavior
- of `Article.category(true)` where `category` is a singular
- association.
-
- The force reloading of the association reader was deprecated
- in #20888. Unfortunately the suggested alternative of
- `article.reload.category` does not expose the same behavior.
-
- This patch adds a reader method with the prefix `reload_` for
- singular associations. This method has the same semantics as
- passing true to the association reader used to have.
-
- *Yves Senn*
-
-* Make sure eager loading `ActiveRecord::Associations` also loads
- constants defined in `ActiveRecord::Associations::Preloader`.
-
- *Yves Senn*
-
-* Allow `ActionController::Parameters`-like objects to be passed as
- values for Postgres HStore columns.
-
- Fixes #26904.
-
- *Jon Moss*
-
-* Added `stat` method to `ActiveRecord::ConnectionAdapters::ConnectionPool`.
-
- Example:
-
- ActiveRecord::Base.connection_pool.stat # =>
- { size: 15, connections: 1, busy: 1, dead: 0, idle: 0, waiting: 0, checkout_timeout: 5 }
-
- *Pavel Evstigneev*
-
-* Avoid `unscope(:order)` when `limit_value` is presented for `count`
- and `exists?`.
-
- If `limit_value` is presented, records fetching order is very important
- for performance. We should not unscope the order in the case.
-
- *Ryuta Kamizono*
-
-* Fix an Active Record `DateTime` field `NoMethodError` caused by incomplete
- datetime.
-
- Fixes #24195.
-
- *Sen Zhang*
-
-* Allow `slice` to take an array of methods(without the need for splatting).
-
- *Cohen Carlisle*
-
-* Improved partial writes with HABTM and has many through associations
- to fire database query only if relation has been changed.
-
- Fixes #19663.
-
- *Mehmet Emin İNAÇ*
-
-* Deprecate passing arguments and block at the same time to
- `ActiveRecord::QueryMethods#select`.
-
- *Prathamesh Sonpatki*
-
-* Fixed: Optimistic locking does not work well with `null` in the database.
-
- Fixes #26024.
-
- *bogdanvlviv*
-
-* Fixed support for case insensitive comparisons of `text` columns in
- PostgreSQL.
-
- *Edho Arief*
-
-* Serialize JSON attribute value `nil` as SQL `NULL`, not JSON `null`.
-
- *Trung Duc Tran*
-
-* Return `true` from `update_attribute` when the value of the attribute
- to be updated is unchanged.
-
- Fixes #26593.
-
- *Prathamesh Sonpatki*
-
-* Always store errors details information with symbols.
-
- When the association is autosaved we were storing the details with
- string keys. This was creating inconsistency with other details that are
- added using the `Errors#add` method. It was also inconsistent with the
- `Errors#messages` storage.
-
- To fix this inconsistency we are always storing with symbols. This will
- cause a small breaking change because in those cases the details could
- be accessed as strings keys but now it can not.
-
- Fix #26499.
-
- *Rafael Mendonça França*, *Marcus Vieira*
-
-* Calling `touch` on a model using optimistic locking will now leave the model
- in a non-dirty state with no attribute changes.
-
- Fixes #26496.
-
- *Jakob Skjerning*
-
-* Using a mysql2 connection after it fails to reconnect will now have an error message
- saying the connection is closed rather than an undefined method error message.
-
- *Dylan Thacker-Smith*
-
-* PostgreSQL array columns will now respect the encoding of strings contained
- in the array.
-
- Fixes #26326.
-
- *Sean Griffin*
-
-* Inverse association instances will now be set before `after_find` or
- `after_initialize` callbacks are run.
-
- Fixes #26320.
-
- *Sean Griffin*
-
-* Remove unnecessarily association load when a `belongs_to` association has already been
- loaded then the foreign key is changed directly and the record saved.
-
- *James Coleman*
-
-* Remove standardized column types/arguments spaces in schema dump.
-
- *Tim Petricola*
-
-* Avoid loading records from database when they are already loaded using
- the `pluck` method on a collection.
-
- Fixes #25921.
-
- *Ryuta Kamizono*
-
-* Remove text default treated as an empty string in non-strict mode for
- consistency with other types.
-
- Strict mode controls how MySQL handles invalid or missing values in
- data-change statements such as INSERT or UPDATE. If strict mode is not
- in effect, MySQL inserts adjusted values for invalid or missing values
- and produces warnings.
-
- def test_mysql_not_null_defaults_non_strict
- using_strict(false) do
- with_mysql_not_null_table do |klass|
- record = klass.new
- assert_nil record.non_null_integer
- assert_nil record.non_null_string
- assert_nil record.non_null_text
- assert_nil record.non_null_blob
-
- record.save!
- record.reload
-
- assert_equal 0, record.non_null_integer
- assert_equal "", record.non_null_string
- assert_equal "", record.non_null_text
- assert_equal "", record.non_null_blob
- end
- end
- end
-
- https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict
-
- *Ryuta Kamizono*
-
-* SQLite3 migrations to add a column to an existing table can now be
- successfully rolled back when the column was given and invalid column
- type.
-
- Fixes #26087.
-
- *Travis O'Neill*
-
-* Deprecate `sanitize_conditions`. Use `sanitize_sql` instead.
-
- *Ryuta Kamizono*
-
-* Doing count on relations that contain LEFT OUTER JOIN Arel node no longer
- force a DISTINCT. This solves issues when using count after a left_joins.
-
- *Maxime Handfield Lapointe*
-
-* RecordNotFound raised by association.find exposes `id`, `primary_key` and
- `model` methods to be consistent with RecordNotFound raised by Record.find.
-
- *Michel Pigassou*
-
-* Hashes can once again be passed to setters of `composed_of`, if all of the
- mapping methods are methods implemented on `Hash`.
-
- Fixes #25978.
-
- *Sean Griffin*
-
-* Fix the SELECT statement in `#table_comment` for MySQL.
-
- *Takeshi Akima*
-
-* Virtual attributes will no longer raise when read on models loaded from the
- database.
-
- *Sean Griffin*
-
-* Support calling the method `merge` in `scope`'s lambda.
-
- *Yasuhiro Sugino*
-
-* Fixes multi-parameter attributes conversion with invalid params.
-
- *Hiroyuki Ishii*
-
-* Add newline between each migration in `structure.sql`.
-
- Keeps schema migration inserts as a single commit, but allows for easier
- git diffing.
-
- Fixes #25504.
-
- *Grey Baker*, *Norberto Lopes*
-
-* The flag `error_on_ignored_order_or_limit` has been deprecated in favor of
- the current `error_on_ignored_order`.
-
- *Xavier Noria*
-
-* Batch processing methods support `limit`:
-
- Post.limit(10_000).find_each do |post|
- # ...
- end
-
- It also works in `find_in_batches` and `in_batches`.
-
- *Xavier Noria*
-
-* Using `group` with an attribute that has a custom type will properly cast
- the hash keys after calling a calculation method like `count`.
-
- Fixes #25595.
-
- *Sean Griffin*
-
-* Fix the generated `#to_param` method to use `omission: ''` so that
- the resulting output is actually up to 20 characters, not
- effectively 17 to leave room for the default "...".
- Also call `#parameterize` before `#truncate` and make the
- `separator: /-/` to maximize the information included in the
- output.
-
- Fixes #23635.
-
- *Rob Biedenharn*
-
-* Ensure concurrent invocations of the connection reaper cannot allocate the
- same connection to two threads.
-
- Fixes #25585.
-
- *Matthew Draper*
-
-* Inspecting an object with an associated array of over 10 elements no longer
- truncates the array, preventing `inspect` from looping infinitely in some
- cases.
-
- *Kevin McPhillips*
-
-* Removed the unused methods `ActiveRecord::Base.connection_id` and
- `ActiveRecord::Base.connection_id=`.
-
- *Sean Griffin*
-
-* Ensure hashes can be assigned to attributes created using `composed_of`.
-
- Fixes #25210.
-
- *Sean Griffin*
-
-* Fix logging edge case where if an attribute was of the binary type and
- was provided as a Hash.
-
- *Jon Moss*
-
-* Handle JSON deserialization correctly if the column default from database
- adapter returns `''` instead of `nil`.
-
- *Johannes Opper*
-
-* Introduce new Active Record transaction error classes for catching
- transaction serialization failures or deadlocks.
-
- *Erol Fornoles*
-
-* PostgreSQL: Fix `db:structure:load` silent failure on SQL error.
-
- The command line flag `-v ON_ERROR_STOP=1` should be used
- when invoking `psql` to make sure errors are not suppressed.
-
- Example:
-
- psql -v ON_ERROR_STOP=1 -q -f awesome-file.sql my-app-db
-
- Fixes #23818.
-
- *Ralin Chimev*
-
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activerecord/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activerecord/CHANGELOG.md) for previous changes.
diff --git a/activerecord/lib/active_record/gem_version.rb b/activerecord/lib/active_record/gem_version.rb
index 174f716152..1a937dbcf7 100644
--- a/activerecord/lib/active_record/gem_version.rb
+++ b/activerecord/lib/active_record/gem_version.rb
@@ -6,9 +6,9 @@ module ActiveRecord
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/activerecord/lib/active_record/migration/compatibility.rb b/activerecord/lib/active_record/migration/compatibility.rb
index 85032ce470..188dd0acef 100644
--- a/activerecord/lib/active_record/migration/compatibility.rb
+++ b/activerecord/lib/active_record/migration/compatibility.rb
@@ -11,7 +11,10 @@ module ActiveRecord
const_get(name)
end
- V5_1 = Current
+ V5_2 = Current
+
+ class V5_1 < V5_2
+ end
class V5_0 < V5_1
module TableDefinition
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md
index d12cbc34dd..6f99155199 100644
--- a/activesupport/CHANGELOG.md
+++ b/activesupport/CHANGELOG.md
@@ -1,628 +1 @@
-* Fixed bug in `DateAndTime::Compatibility#to_time` that caused it to
- raise `RuntimeError: can't modify frozen Time` when called on any frozen `Time`.
- Properly pass through the frozen `Time` or `ActiveSupport::TimeWithZone` object
- when calling `#to_time`.
-
- *Kevin McPhillips* & *Andrew White*
-
-* Remove implicit coercion deprecation of durations
-
- In #28204 we deprecated implicit conversion of durations to a numeric which
- represented the number of seconds in the duration because of unwanted side
- effects with calculations on durations and dates. This unfortunately had
- the side effect of forcing a explicit cast when configuring third-party
- libraries like expiration in Redis, e.g:
-
- redis.expire("foo", 5.minutes)
-
- To work around this we've removed the deprecation and added a private class
- that wraps the numeric and can perform calculation involving durations and
- ensure that they remain a duration irrespective of the order of operations.
-
- *Andrew White*
-
-* Update `titleize` regex to allow apostrophes
-
- In 4b685aa the regex in `titleize` was updated to not match apostrophes to
- better reflect the nature of the transformation. Unfortunately, this had the
- side effect of breaking capitalization on the first word of a sub-string, e.g:
-
- >> "This was 'fake news'".titleize
- => "This Was 'fake News'"
-
- This is fixed by extending the look-behind to also check for a word
- character on the other side of the apostrophe.
-
- Fixes #28312.
-
- *Andrew White*
-
-* Add `rfc3339` aliases to `xmlschema` for `Time` and `ActiveSupport::TimeWithZone`
-
- For naming consistency when using the RFC 3339 profile of ISO 8601 in applications.
-
- *Andrew White*
-
-* Add `Time.rfc3339` parsing method
-
- `Time.xmlschema` and consequently its alias `iso8601` accepts timestamps
- without a offset in contravention of the RFC 3339 standard. This method
- enforces that constraint and raises an `ArgumentError` if it doesn't.
-
- *Andrew White*
-
-* Add `ActiveSupport::TimeZone.rfc3339` parsing method
-
- Previously, there was no way to get a RFC 3339 timestamp into a specific
- timezone without either using `parse` or chaining methods. The new method
- allows parsing directly into the timezone, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.rfc3339("1999-12-31T14:00:00Z")
- => Fri, 31 Dec 1999 14:00:00 HST -10:00
-
- This new method has stricter semantics than the current `parse` method,
- and will raise an `ArgumentError` instead of returning nil, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.rfc3339("foobar")
- ArgumentError: invalid date
- >> Time.zone.parse("foobar")
- => nil
-
- It will also raise an `ArgumentError` when either the time or offset
- components are missing, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.rfc3339("1999-12-31")
- ArgumentError: invalid date
- >> Time.zone.rfc3339("1999-12-31T14:00:00")
- ArgumentError: invalid date
-
- *Andrew White*
-
-* Add `ActiveSupport::TimeZone.iso8601` parsing method
-
- Previously, there was no way to get a ISO 8601 timestamp into a specific
- timezone without either using `parse` or chaining methods. The new method
- allows parsing directly into the timezone, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.iso8601("1999-12-31T14:00:00Z")
- => Fri, 31 Dec 1999 14:00:00 HST -10:00
-
- If the timestamp is a ISO 8601 date (YYYY-MM-DD), then the time is set
- to midnight, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.iso8601("1999-12-31")
- => Fri, 31 Dec 1999 00:00:00 HST -10:00
-
- This new method has stricter semantics than the current `parse` method,
- and will raise an `ArgumentError` instead of returning nil, e.g:
-
- >> Time.zone = "Hawaii"
- => "Hawaii"
- >> Time.zone.iso8601("foobar")
- ArgumentError: invalid date
- >> Time.zone.parse("foobar")
- => nil
-
- *Andrew White*
-
-* Deprecate implicit coercion of `ActiveSupport::Duration`
-
- Currently `ActiveSupport::Duration` implicitly converts to a seconds
- value when used in a calculation except for the explicit examples of
- addition and subtraction where the duration is the receiver, e.g:
-
- >> 2 * 1.day
- => 172800
-
- This results in lots of confusion especially when using durations
- with dates because adding/subtracting a value from a date treats
- integers as a day and not a second, e.g:
-
- >> Date.today
- => Wed, 01 Mar 2017
- >> Date.today + 2 * 1.day
- => Mon, 10 Apr 2490
-
- To fix this we're implementing `coerce` so that we can provide a
- deprecation warning with the intent of removing the implicit coercion
- in Rails 5.2, e.g:
-
- >> 2 * 1.day
- DEPRECATION WARNING: Implicit coercion of ActiveSupport::Duration
- to a Numeric is deprecated and will raise a TypeError in Rails 5.2.
- => 172800
-
- In Rails 5.2 it will raise `TypeError`, e.g:
-
- >> 2 * 1.day
- TypeError: ActiveSupport::Duration can't be coerced into Integer
-
- This is the same behavior as with other types in Ruby, e.g:
-
- >> 2 * "foo"
- TypeError: String can't be coerced into Integer
- >> "foo" * 2
- => "foofoo"
-
- As part of this deprecation add `*` and `/` methods to `AS::Duration`
- so that calculations that keep the duration as the receiver work
- correctly whether the final receiver is a `Date` or `Time`, e.g:
-
- >> Date.today
- => Wed, 01 Mar 2017
- >> Date.today + 1.day * 2
- => Fri, 03 Mar 2017
-
- Fixes #27457.
-
- *Andrew White*
-
-* Update `DateTime#change` to support `:usec` and `:nsec` options.
-
- Adding support for these options now allows us to update the `DateTime#end_of`
- methods to match the equivalent `Time#end_of` methods, e.g:
-
- datetime = DateTime.now.end_of_day
- datetime.nsec == 999999999 # => true
-
- Fixes #21424.
-
- *Dan Moore*, *Andrew White*
-
-* Add `ActiveSupport::Duration#before` and `#after` as aliases for `#until` and `#since`
-
- These read more like English and require less mental gymnastics to read and write.
-
- Before:
-
- 2.weeks.since(customer_start_date)
- 5.days.until(today)
-
- After:
-
- 2.weeks.after(customer_start_date)
- 5.days.before(today)
-
- *Nick Johnstone*
-
-* Soft-deprecated the top-level `HashWithIndifferentAccess` constant.
- `ActiveSupport::HashWithIndifferentAccess` should be used instead.
-
- Fixes #28157.
-
- *Robin Dupret*
-
-* In Core Extensions, make `MarshalWithAutoloading#load` pass through the second, optional
- argument for `Marshal#load( source [, proc] )`. This way we don't have to do
- `Marshal.method(:load).super_method.call(source, proc)` just to be able to pass a proc.
-
- *Jeff Latz*
-
-* `ActiveSupport::Gzip.decompress` now checks checksum and length in footer.
-
- *Dylan Thacker-Smith*
-
-
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Cache `ActiveSupport::TimeWithZone#to_datetime` before freezing.
-
- *Adam Rice*
-
-* Deprecate `ActiveSupport.halt_callback_chains_on_return_false`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated behavior that halts callbacks when the return is false.
-
- *Rafael Mendonça França*
-
-* Deprecate passing string to `:if` and `:unless` conditional options
- on `set_callback` and `skip_callback`.
-
- *Ryuta Kamizono*
-
-* Raise `ArgumentError` when passing string to define callback.
-
- *Ryuta Kamizono*
-
-* Updated Unicode version to 9.0.0
-
- Now we can handle new emojis such like "👩‍👩‍👧‍👦" ("\u{1F469}\u{200D}\u{1F469}\u{200D}\u{1F467}\u{200D}\u{1F466}").
-
- version 8.0.0
-
- "👩‍👩‍👧‍👦".mb_chars.grapheme_length # => 4
- "👩‍👩‍👧‍👦".mb_chars.reverse # => "👦👧‍👩‍👩‍"
-
- version 9.0.0
-
- "👩‍👩‍👧‍👦".mb_chars.grapheme_length # => 1
- "👩‍👩‍👧‍👦".mb_chars.reverse # => "👩‍👩‍👧‍👦"
-
- *Fumiaki MATSUSHIMA*
-
-* Changed `ActiveSupport::Inflector#transliterate` to raise `ArgumentError` when it receives
- anything except a string.
-
- *Kevin McPhillips*
-
-* Fixed bugs that `StringInquirer#respond_to_missing?` and
- `ArrayInquirer#respond_to_missing?` do not fallback to `super`.
-
- *Akira Matsuda*
-
-* Fix inconsistent results when parsing large durations and constructing durations from code
-
- ActiveSupport::Duration.parse('P3Y') == 3.years # It should be true
-
- Duration parsing made independent from any moment of time:
- Fixed length in seconds is assigned to each duration part during parsing.
-
- Changed duration of months and years in seconds to more accurate and logical:
-
- 1. The value of 365.2425 days in Gregorian year is more accurate
- as it accounts for every 400th non-leap year.
-
- 2. Month's length is bound to year's duration, which makes
- sensible comparisons like `12.months == 1.year` to be `true`
- and nonsensical ones like `30.days == 1.month` to be `false`.
-
- Calculations on times and dates with durations shouldn't be affected as
- duration's numeric value isn't used in calculations, only parts are used.
-
- Methods on `Numeric` like `2.days` now use these predefined durations
- to avoid duplication of duration constants through the codebase and
- eliminate creation of intermediate durations.
-
- *Andrey Novikov*, *Andrew White*
-
-* Change return value of `Rational#duplicable?`, `ComplexClass#duplicable?`
- to false.
-
- *utilum*
-
-* Change return value of `NilClass#duplicable?`, `FalseClass#duplicable?`,
- `TrueClass#duplicable?`, `Symbol#duplicable?` and `Numeric#duplicable?`
- to true with Ruby 2.4+. These classes can dup with Ruby 2.4+.
-
- *Yuji Yaginuma*
-
-* Remove deprecated class `ActiveSupport::Concurrency::Latch`.
-
- *Andrew White*
-
-* Remove deprecated separator argument from `parameterize`.
-
- *Andrew White*
-
-* Remove deprecated method `Numeric#to_formatted_s`.
-
- *Andrew White*
-
-* Remove deprecated method `alias_method_chain`.
-
- *Andrew White*
-
-* Remove deprecated constant `MissingSourceFile`.
-
- *Andrew White*
-
-* Remove deprecated methods `Module.qualified_const_defined?`,
- `Module.qualified_const_get` and `Module.qualified_const_set`.
-
- *Andrew White*
-
-* Remove deprecated `:prefix` option from `number_to_human_size`.
-
- *Andrew White*
-
-* Remove deprecated method `ActiveSupport::HashWithIndifferentAccess.new_from_hash_copying_default`.
-
- *Andrew White*
-
-* Remove deprecated file `active_support/core_ext/time/marshal.rb`.
-
- *Andrew White*
-
-* Remove deprecated file `active_support/core_ext/struct.rb`.
-
- *Andrew White*
-
-* Remove deprecated file `active_support/core_ext/module/method_transplanting.rb`.
-
- *Andrew White*
-
-* Remove deprecated method `Module.local_constants`.
-
- *Andrew White*
-
-* Remove deprecated file `active_support/core_ext/kernel/debugger.rb`.
-
- *Andrew White*
-
-* Remove deprecated method `ActiveSupport::Cache::Store#namespaced_key`.
-
- *Andrew White*
-
-* Remove deprecated method `ActiveSupport::Cache::Strategy::LocalCache::LocalStore#set_cache_value`.
-
- *Andrew White*
-
-* Remove deprecated method `ActiveSupport::Cache::MemCacheStore#escape_key`.
-
- *Andrew White*
-
-* Remove deprecated method `ActiveSupport::Cache::FileStore#key_file_path`.
-
- *Andrew White*
-
-* Ensure duration parsing is consistent across DST changes.
-
- Previously `ActiveSupport::Duration.parse` used `Time.current` and
- `Time#advance` to calculate the number of seconds in the duration
- from an arbitrary collection of parts. However as `advance` tries to
- be consistent across DST boundaries this meant that either the
- duration was shorter or longer depending on the time of year.
-
- This was fixed by using an absolute reference point in UTC which
- isn't subject to DST transitions. An arbitrary date of Jan 1st, 2000
- was chosen for no other reason that it seemed appropriate.
-
- Additionally, duration parsing should now be marginally faster as we
- are no longer creating instances of `ActiveSupport::TimeWithZone`
- every time we parse a duration string.
-
- Fixes #26941.
-
- *Andrew White*
-
-* Use `Hash#compact` and `Hash#compact!` from Ruby 2.4. Old Ruby versions
- will continue to get these methods from Active Support as before.
-
- *Prathamesh Sonpatki*
-
-* Fix `ActiveSupport::TimeZone#strptime`.
- Support for timestamps in format of seconds (%s) and milliseconds (%Q).
-
- Fixes #26840.
-
- *Lev Denisov*
-
-* Fix `DateAndTime::Calculations#copy_time_to`. Copy `nsec` instead of `usec`.
-
- Jumping forward or backward between weeks now preserves nanosecond digits.
-
- *Josua Schmid*
-
-* Fix `ActiveSupport::TimeWithZone#in` across DST boundaries.
-
- Previously calls to `in` were being sent to the non-DST aware
- method `Time#since` via `method_missing`. It is now aliased to
- the DST aware `ActiveSupport::TimeWithZone#+` which handles
- transitions across DST boundaries, e.g:
-
- Time.zone = "US/Eastern"
-
- t = Time.zone.local(2016,11,6,1)
- # => Sun, 06 Nov 2016 01:00:00 EDT -05:00
-
- t.in(1.hour)
- # => Sun, 06 Nov 2016 01:00:00 EST -05:00
-
- Fixes #26580.
-
- *Thomas Balthazar*
-
-* Remove unused parameter `options = nil` for `#clear` of
- `ActiveSupport::Cache::Strategy::LocalCache::LocalStore` and
- `ActiveSupport::Cache::Strategy::LocalCache`.
-
- *Yosuke Kabuto*
-
-* Fix `thread_mattr_accessor` subclass no longer overwrites parent.
-
- Assigning a value to a subclass using `thread_mattr_accessor` no
- longer changes the value of the parent class. This brings the
- behavior inline with the documentation.
-
- Given:
-
- class Account
- thread_mattr_accessor :user
- end
-
- class Customer < Account
- end
-
- Account.user = "DHH"
- Customer.user = "Rafael"
-
- Before:
-
- Account.user # => "Rafael"
-
- After:
-
- Account.user # => "DHH"
-
- *Shinichi Maeshima*
-
-* Since weeks are no longer converted to days, add `:weeks` to the list of
- parts that `ActiveSupport::TimeWithZone` will recognize as possibly being
- of variable duration to take account of DST transitions.
-
- Fixes #26039.
-
- *Andrew White*
-
-* Defines `Regexp.match?` for Ruby versions prior to 2.4. The predicate
- has the same interface, but it does not have the performance boost. Its
- purpose is to be able to write 2.4 compatible code.
-
- *Xavier Noria*
-
-* Allow `MessageEncryptor` to take advantage of authenticated encryption modes.
-
- AEAD modes like `aes-256-gcm` provide both confidentiality and data
- authenticity, eliminating the need to use `MessageVerifier` to check if the
- encrypted data has been tampered with. This speeds up encryption/decryption
- and results in shorter cipher text.
-
- *Bart de Water*
-
-* Introduce `assert_changes` and `assert_no_changes`.
-
- `assert_changes` is a more general `assert_difference` that works with any
- value.
-
- assert_changes 'Error.current', from: nil, to: 'ERR' do
- expected_bad_operation
- end
-
- Can be called with strings, to be evaluated in the binding (context) of
- the block given to the assertion, or a lambda.
-
- assert_changes -> { Error.current }, from: nil, to: 'ERR' do
- expected_bad_operation
- end
-
- The `from` and `to` arguments are compared with the case operator (`===`).
-
- assert_changes 'Error.current', from: nil, to: Error do
- expected_bad_operation
- end
-
- This is pretty useful, if you need to loosely compare a value. For example,
- you need to test a token has been generated and it has that many random
- characters.
-
- user = User.start_registration
- assert_changes 'user.token', to: /\w{32}/ do
- user.finish_registration
- end
-
- *Genadi Samokovarov*
-
-* Fix `ActiveSupport::TimeZone#strptime`. Now raises `ArgumentError` when the
- given time doesn't match the format. The error is the same as the one given
- by Ruby's `Date.strptime`. Previously it raised
- `NoMethodError: undefined method empty? for nil:NilClass.` due to a bug.
-
- Fixes #25701.
-
- *John Gesimondo*
-
-* `travel/travel_to` travel time helpers, now raise on nested calls,
- as this can lead to confusing time stubbing.
-
- Instead of:
-
- travel_to 2.days.from_now do
- # 2 days from today
- travel_to 3.days.from_now do
- # 5 days from today
- end
- end
-
- preferred way to achieve above is:
-
- travel 2.days do
- # 2 days from today
- end
-
- travel 5.days do
- # 5 days from today
- end
-
- *Vipul A M*
-
-* Support parsing JSON time in ISO8601 local time strings in
- `ActiveSupport::JSON.decode` when `parse_json_times` is enabled.
- Strings in the format of `YYYY-MM-DD hh:mm:ss` (without a `Z` at
- the end) will be parsed in the local timezone (`Time.zone`). In
- addition, date strings (`YYYY-MM-DD`) are now parsed into `Date`
- objects.
-
- *Grzegorz Witek*
-
-* Fixed `ActiveSupport::Logger.broadcast` so that calls to `#silence` now
- properly delegate to all loggers. Silencing now properly suppresses logging
- to both the log and the console.
-
- *Kevin McPhillips*
-
-* Remove deprecated arguments in `assert_nothing_raised`.
-
- *Rafel Mendonça França*
-
-* `Date.to_s` doesn't produce too many spaces. For example, `to_s(:short)`
- will now produce `01 Feb` instead of ` 1 Feb`.
-
- Fixes #25251.
-
- *Sean Griffin*
-
-* Introduce `Module#delegate_missing_to`.
-
- When building a decorator, a common pattern emerges:
-
- class Partition
- def initialize(first_event)
- @events = [ first_event ]
- end
-
- def people
- if @events.first.detail.people.any?
- @events.collect { |e| Array(e.detail.people) }.flatten.uniq
- else
- @events.collect(&:creator).uniq
- end
- end
-
- private
- def respond_to_missing?(name, include_private = false)
- @events.respond_to?(name, include_private)
- end
-
- def method_missing(method, *args, &block)
- @events.send(method, *args, &block)
- end
- end
-
- With `Module#delegate_missing_to`, the above is condensed to:
-
- class Partition
- delegate_missing_to :@events
-
- def initialize(first_event)
- @events = [ first_event ]
- end
-
- def people
- if @events.first.detail.people.any?
- @events.collect { |e| Array(e.detail.people) }.flatten.uniq
- else
- @events.collect(&:creator).uniq
- end
- end
- end
-
- *Genadi Samokovarov*, *DHH*
-
-* Rescuable: If a handler doesn't match the exception, check for handlers
- matching the exception's cause.
-
- *Jeremy Daer*
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/activesupport/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/activesupport/CHANGELOG.md) for previous changes.
diff --git a/activesupport/lib/active_support/deprecation.rb b/activesupport/lib/active_support/deprecation.rb
index 191e582de8..c78ec67dc5 100644
--- a/activesupport/lib/active_support/deprecation.rb
+++ b/activesupport/lib/active_support/deprecation.rb
@@ -32,7 +32,7 @@ module ActiveSupport
# and the second is a library name
#
# ActiveSupport::Deprecation.new('2.0', 'MyLibrary')
- def initialize(deprecation_horizon = "5.2", gem_name = "Rails")
+ def initialize(deprecation_horizon = "5.3", gem_name = "Rails")
self.gem_name = gem_name
self.deprecation_horizon = deprecation_horizon
# By default, warnings are not silenced and debugging is off.
diff --git a/activesupport/lib/active_support/gem_version.rb b/activesupport/lib/active_support/gem_version.rb
index a641b96c57..371a39a5e6 100644
--- a/activesupport/lib/active_support/gem_version.rb
+++ b/activesupport/lib/active_support/gem_version.rb
@@ -6,9 +6,9 @@ module ActiveSupport
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md
index 3a602efb3d..d8b122d264 100644
--- a/guides/CHANGELOG.md
+++ b/guides/CHANGELOG.md
@@ -1,6 +1 @@
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* No changes.
-
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/guides/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/guides/CHANGELOG.md) for previous changes.
diff --git a/guides/bug_report_templates/action_controller_master.rb b/guides/bug_report_templates/action_controller_master.rb
index 486c7243ad..7644f6fe4a 100644
--- a/guides/bug_report_templates/action_controller_master.rb
+++ b/guides/bug_report_templates/action_controller_master.rb
@@ -8,6 +8,7 @@ end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
+ gem "arel", github: "rails/arel"
end
require "action_controller/railtie"
diff --git a/guides/bug_report_templates/active_job_master.rb b/guides/bug_report_templates/active_job_master.rb
index f61518713f..7591470440 100644
--- a/guides/bug_report_templates/active_job_master.rb
+++ b/guides/bug_report_templates/active_job_master.rb
@@ -8,6 +8,7 @@ end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
+ gem "arel", github: "rails/arel"
end
require "active_job"
diff --git a/guides/bug_report_templates/active_record_master.rb b/guides/bug_report_templates/active_record_master.rb
index 7265a671b0..8bbc1ef19e 100644
--- a/guides/bug_report_templates/active_record_master.rb
+++ b/guides/bug_report_templates/active_record_master.rb
@@ -8,6 +8,7 @@ end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
+ gem "arel", github: "rails/arel"
gem "sqlite3"
end
diff --git a/guides/bug_report_templates/active_record_migrations_master.rb b/guides/bug_report_templates/active_record_migrations_master.rb
index 13a375d1ba..84a4b71909 100644
--- a/guides/bug_report_templates/active_record_migrations_master.rb
+++ b/guides/bug_report_templates/active_record_migrations_master.rb
@@ -8,6 +8,7 @@ end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
+ gem "arel", github: "rails/arel"
gem "sqlite3"
end
diff --git a/guides/bug_report_templates/generic_master.rb b/guides/bug_report_templates/generic_master.rb
index d3a7ae4ac4..ed45726e92 100644
--- a/guides/bug_report_templates/generic_master.rb
+++ b/guides/bug_report_templates/generic_master.rb
@@ -8,6 +8,7 @@ end
gemfile(true) do
source "https://rubygems.org"
gem "rails", github: "rails/rails"
+ gem "arel", github: "rails/arel"
end
require "active_support"
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index fedac90fc8..6032d2e1a1 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,199 +1 @@
-* Add `app:update` task to engines.
-
- *Yuji Yaginuma*
-
-* Avoid running system tests by default with the `bin/rails test`
- and `bin/rake test` commands since they may be expensive.
-
- Fixes #28286.
-
- *Robin Dupret*
-
-* Improve encryption for encrypted secrets.
-
- Switch to aes-128-gcm authenticated encryption. Also generate a random
- initialization vector for each encryption so the same input and key can
- generate different encrypted data.
-
- Double the encryption key entropy by properly extracting the underlying
- bytes from the hexadecimal seed key.
-
- NOTE: Since the encryption mechanism has been switched, you need to run
- this script to upgrade:
-
- https://gist.github.com/kaspth/bc37989c2f39a5642112f28b1d93f343
-
- *Stephen Touset*
-
-## Rails 5.1.0.beta1 (February 23, 2017) ##
-
-* Add encrypted secrets in `config/secrets.yml.enc`.
-
- Allow storing production secrets straight in the revision control system by
- encrypting them.
-
- Use `bin/rails secrets:setup` to opt-in by generating `config/secrets.yml.enc`
- for the secrets themselves and `config/secrets.yml.key` for the encryption key.
-
- Edit secrets with `bin/rails secrets:edit`.
-
- See `bin/rails secrets:setup --help` for more.
-
- *Kasper Timm Hansen*
-
-* Fix running multiple tests in one `rake` command
-
- e.g. `bin/rake test:models test:controllers`
-
- *Dominic Cleal*
-
-* Add option to configure Ruby's warning behaviour to test runner.
-
- *Yuji Yaginuma*
-
-* Initialize git repo when generating new app, if option `--skip-git`
- is not provided.
-
- *Dino Maric*
-
-* Install Byebug gem as default in Windows (mingw and x64_mingw) platform.
-
- *Junichi Ito*
-
-* Make every Rails command work within engines.
-
- *Sean Collins*, *Yuji Yaginuma*
-
-* Don't generate HTML/ERB templates for scaffold controller with `--api` flag.
-
- Fixes #27591.
-
- *Prathamesh Sonpatki*
-
-* Make `Rails.env` fall back to `development` when `RAILS_ENV` and `RACK_ENV` is an empty string.
-
- *Daniel Deng*
-
-* Remove deprecated `CONTROLLER` environment variable for `routes` task.
-
- *Rafael Mendonça França*
-
-* Remove deprecated tasks: `rails:update`, `rails:template`, `rails:template:copy`,
- `rails:update:configs` and `rails:update:bin`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated file `rails/rack/debugger`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `config.serve_static_files`.
-
- *Rafael Mendonça França*
-
-* Remove deprecated `config.static_cache_control`.
-
- *Rafael Mendonça França*
-
-* The `log:clear` task clear all environments log files by default.
-
- *Yuji Yaginuma*
-
-* Add Webpack support in new apps via the --webpack option, which will delegate to the rails/webpacker gem.
-
- To generate a new app that has Webpack dependencies configured and binstubs for webpack and webpack-watcher:
-
- `rails new myapp --webpack`
-
- To generate a new app that has Webpack + React configured and an example intalled:
-
- `rails new myapp --webpack=react`
-
- *DHH*
-
-* Add Yarn support in new apps with a yarn binstub and package.json. Skippable via --skip-yarn option.
-
- *Liceth Ovalles*, *Guillermo Iguaran*, *DHH*
-
-* Removed jquery-rails from default stack, instead rails-ujs that is shipped
- with Action View is included as default UJS adapter.
-
- *Guillermo Iguaran*
-
-* The config file `secrets.yml` is now loaded in with all keys as symbols.
- This allows secrets files to contain more complex information without all
- child keys being strings while parent keys are symbols.
-
- *Isaac Sloan*
-
-* Add `:skip_sprockets` to `Rails::PluginBuilder::PASSTHROUGH_OPTIONS`
-
- *Tsukuru Tanimichi*
-
-* Add `--skip-coffee` option to `rails new`
-
- *Seunghwan Oh*
-
-* Allow the use of listen's 3.1.x branch
-
- *Esteban Santana Santana*
-
-* Run `Minitest.after_run` hooks when running `rails test`.
-
- *Michael Grosser*
-
-* Run `before_configuration` callbacks as soon as application constant
- inherits from `Rails::Application`.
-
- Fixes #19880.
-
- *Yuji Yaginuma*
-
-* A generated app should not include Uglifier with `--skip-javascript` option.
-
- *Ben Pickles*
-
-* Set session store to cookie store internally and remove the initializer from
- the generated app.
-
- *Prathamesh Sonpatki*
-
-* Set the server host using the `HOST` environment variable.
-
- *mahnunchik*
-
-* Add public API to register new folders for `rake notes`:
-
- config.annotations.register_directories('spec', 'features')
-
- *John Meehan*
-
-* Display name of the class defining the initializer along with the initializer
- name in the output of `rails initializers`.
-
- Before:
- disable_dependency_loading
-
- After:
- DemoApp::Application.disable_dependency_loading
-
- *ta1kt0me*
-
-* Do not run `bundle install` when generating a new plugin.
-
- Since bundler 1.12.0, the gemspec is validated so the `bundle install`
- command will fail just after the gem is created causing confusion to the
- users. This change was a bug fix to correctly validate gemspecs.
-
- *Rafael Mendonça França*
-
-* Default `config.assets.quiet = true` in the development environment. Suppress
- logging of assets requests by default.
-
- *Kevin McPhillips*
-
-* Added a shared section to `config/secrets.yml` that will be loaded for all environments.
-
- *DHH*
-
-Please check [5-0-stable](https://github.com/rails/rails/blob/5-0-stable/railties/CHANGELOG.md) for previous changes.
+Please check [5-1-stable](https://github.com/rails/rails/blob/5-1-stable/railties/CHANGELOG.md) for previous changes.
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index 819e801740..c3b91b8af9 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -78,6 +78,9 @@ module Rails
assets.unknown_asset_fallback = false
end
+ when "5.2"
+ load_defaults "5.1"
+
else
raise "Unknown version #{target_version.to_s.inspect}"
end
diff --git a/railties/lib/rails/gem_version.rb b/railties/lib/rails/gem_version.rb
index 3174ffb0dc..7bacf2e0ba 100644
--- a/railties/lib/rails/gem_version.rb
+++ b/railties/lib/rails/gem_version.rb
@@ -6,9 +6,9 @@ module Rails
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end
diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb
index ebe8cfea60..3e7f69e9eb 100644
--- a/railties/lib/rails/generators/app_base.rb
+++ b/railties/lib/rails/generators/app_base.rb
@@ -246,6 +246,7 @@ module Rails
def rails_gemfile_entry
dev_edge_common = [
+ GemfileEntry.github("arel", "rails/arel"),
]
if options.dev?
[
diff --git a/version.rb b/version.rb
index 3174ffb0dc..7bacf2e0ba 100644
--- a/version.rb
+++ b/version.rb
@@ -6,9 +6,9 @@ module Rails
module VERSION
MAJOR = 5
- MINOR = 1
+ MINOR = 2
TINY = 0
- PRE = "beta1"
+ PRE = "alpha"
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
end