diff options
41 files changed, 199 insertions, 117 deletions
diff --git a/.codeclimate.yml b/.codeclimate.yml index 139ee8013b..908a988e69 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -23,7 +23,7 @@ checks: engines: rubocop: enabled: true - channel: rubocop-0-60 + channel: rubocop-0-63 ratings: paths: diff --git a/Gemfile.lock b/Gemfile.lock index 95ea05881e..70a29f501d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,77 +18,77 @@ GIT PATH remote: . specs: - actioncable (6.0.0.alpha) - actionpack (= 6.0.0.alpha) + actioncable (6.0.0.beta1) + actionpack (= 6.0.0.beta1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.0.alpha) - actionpack (= 6.0.0.alpha) - activejob (= 6.0.0.alpha) - activerecord (= 6.0.0.alpha) - activestorage (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) + actionmailbox (6.0.0.beta1) + actionpack (= 6.0.0.beta1) + activejob (= 6.0.0.beta1) + activerecord (= 6.0.0.beta1) + activestorage (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) mail (>= 2.7.1) - actionmailer (6.0.0.alpha) - actionpack (= 6.0.0.alpha) - actionview (= 6.0.0.alpha) - activejob (= 6.0.0.alpha) + actionmailer (6.0.0.beta1) + actionpack (= 6.0.0.beta1) + actionview (= 6.0.0.beta1) + activejob (= 6.0.0.beta1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.0.alpha) - actionview (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) + actionpack (6.0.0.beta1) + actionview (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) rack (~> 2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.2) - actiontext (6.0.0.alpha) - actionpack (= 6.0.0.alpha) - activerecord (= 6.0.0.alpha) - activestorage (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) + actiontext (6.0.0.beta1) + actionpack (= 6.0.0.beta1) + activerecord (= 6.0.0.beta1) + activestorage (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) nokogiri (>= 1.8.5) - actionview (6.0.0.alpha) - activesupport (= 6.0.0.alpha) + actionview (6.0.0.beta1) + activesupport (= 6.0.0.beta1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (6.0.0.alpha) - activesupport (= 6.0.0.alpha) + activejob (6.0.0.beta1) + activesupport (= 6.0.0.beta1) globalid (>= 0.3.6) - activemodel (6.0.0.alpha) - activesupport (= 6.0.0.alpha) - activerecord (6.0.0.alpha) - activemodel (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) - activestorage (6.0.0.alpha) - actionpack (= 6.0.0.alpha) - activerecord (= 6.0.0.alpha) + activemodel (6.0.0.beta1) + activesupport (= 6.0.0.beta1) + activerecord (6.0.0.beta1) + activemodel (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) + activestorage (6.0.0.beta1) + actionpack (= 6.0.0.beta1) + activerecord (= 6.0.0.beta1) marcel (~> 0.3.1) - activesupport (6.0.0.alpha) + activesupport (6.0.0.beta1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - rails (6.0.0.alpha) - actioncable (= 6.0.0.alpha) - actionmailbox (= 6.0.0.alpha) - actionmailer (= 6.0.0.alpha) - actionpack (= 6.0.0.alpha) - actiontext (= 6.0.0.alpha) - actionview (= 6.0.0.alpha) - activejob (= 6.0.0.alpha) - activemodel (= 6.0.0.alpha) - activerecord (= 6.0.0.alpha) - activestorage (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) + rails (6.0.0.beta1) + actioncable (= 6.0.0.beta1) + actionmailbox (= 6.0.0.beta1) + actionmailer (= 6.0.0.beta1) + actionpack (= 6.0.0.beta1) + actiontext (= 6.0.0.beta1) + actionview (= 6.0.0.beta1) + activejob (= 6.0.0.beta1) + activemodel (= 6.0.0.beta1) + activerecord (= 6.0.0.beta1) + activestorage (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) bundler (>= 1.3.0) - railties (= 6.0.0.alpha) + railties (= 6.0.0.beta1) sprockets-rails (>= 2.0.0) - railties (6.0.0.alpha) - actionpack (= 6.0.0.alpha) - activesupport (= 6.0.0.alpha) + railties (6.0.0.beta1) + actionpack (= 6.0.0.beta1) + activesupport (= 6.0.0.beta1) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -218,7 +218,7 @@ GEM http_parser.rb (>= 0.6.0) em-socksify (0.3.2) eventmachine (>= 1.0.0.beta.4) - erubi (1.7.1) + erubi (1.8.0) et-orbi (1.1.6) tzinfo event_emitter (0.2.6) @@ -277,14 +277,14 @@ GEM hiredis (0.6.3-java) http_parser.rb (0.6.0) httpclient (2.8.3) - i18n (1.1.1) + i18n (1.5.2) concurrent-ruby (~> 1.0) image_processing (1.7.1) mini_magick (~> 4.0) ruby-vips (>= 2.0.13, < 3) io-like (0.3.0) - jaro_winkler (1.5.1) - jaro_winkler (1.5.1-java) + jaro_winkler (1.5.2) + jaro_winkler (1.5.2-java) jdbc-mysql (5.1.46) jdbc-postgres (42.1.4) jdbc-sqlite3 (3.20.1) @@ -337,7 +337,6 @@ GEM mysql2 (0.5.2-x64-mingw32) mysql2 (0.5.2-x86-mingw32) nio4r (2.3.1) - nio4r (2.3.1-java) nokogiri (1.9.1) mini_portile2 (~> 2.4.0) nokogiri (1.9.1-java) @@ -346,8 +345,8 @@ GEM nokogiri (1.9.1-x86-mingw32) mini_portile2 (~> 2.4.0) os (1.0.0) - parallel (1.12.1) - parser (2.5.3.0) + parallel (1.13.0) + parser (2.6.0.0) ast (~> 2.4.0) path_expander (1.0.3) pg (1.1.3) @@ -405,7 +404,7 @@ GEM resque (~> 1.26) rufus-scheduler (~> 3.2) retriable (3.1.2) - rubocop (0.61.1) + rubocop (0.63.0) jaro_winkler (~> 1.5.1) parallel (~> 1.10) parser (>= 2.5, != 2.5.1.1) @@ -511,8 +510,6 @@ GEM websocket (1.2.8) websocket-driver (0.7.0) websocket-extensions (>= 0.1.0) - websocket-driver (0.7.0-java) - websocket-extensions (>= 0.1.0) websocket-extensions (0.1.3) xpath (3.2.0) nokogiri (~> 1.8) diff --git a/RAILS_VERSION b/RAILS_VERSION index 747766c587..248da9b7b5 100644 --- a/RAILS_VERSION +++ b/RAILS_VERSION @@ -1 +1 @@ -6.0.0.alpha +6.0.0.beta1 diff --git a/actioncable/CHANGELOG.md b/actioncable/CHANGELOG.md index f43a955a76..4109dd6138 100644 --- a/actioncable/CHANGELOG.md +++ b/actioncable/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Merge [`action-cable-testing`](https://github.com/palkan/action-cable-testing) to Rails. *Vladimir Dementyev* diff --git a/actioncable/lib/action_cable/gem_version.rb b/actioncable/lib/action_cable/gem_version.rb index cd1d9bccef..5082827417 100644 --- a/actioncable/lib/action_cable/gem_version.rb +++ b/actioncable/lib/action_cable/gem_version.rb @@ -10,7 +10,7 @@ module ActionCable MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actioncable/package.json b/actioncable/package.json index 69a97939fb..801fcc0c22 100644 --- a/actioncable/package.json +++ b/actioncable/package.json @@ -1,6 +1,6 @@ { "name": "@rails/actioncable", - "version": "6.0.0-alpha", + "version": "6.0.0-beta1", "description": "WebSocket framework for Ruby on Rails.", "main": "app/assets/javascripts/action_cable.js", "files": [ diff --git a/actionmailbox/CHANGELOG.md b/actionmailbox/CHANGELOG.md index 358552313f..d92367dc17 100644 --- a/actionmailbox/CHANGELOG.md +++ b/actionmailbox/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Added to Rails. *DHH* diff --git a/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb b/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb index 2cde3db8a0..d051dfe665 100644 --- a/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb +++ b/actionmailbox/app/controllers/rails/conductor/action_mailbox/inbound_emails_controller.rb @@ -22,7 +22,7 @@ module Rails def new_mail Mail.new(params.require(:mail).permit(:from, :to, :cc, :bcc, :in_reply_to, :subject, :body).to_h).tap do |mail| params[:mail][:attachments].to_a.each do |attachment| - mail.attachments[attachment.original_filename] = { filename: attachment.path, content_type: attachment.content_type } + mail.add_file(filename: attachment.path, content: attachment.read) end end end diff --git a/actionmailbox/app/views/layouts/rails/conductor.html.erb b/actionmailbox/app/views/layouts/rails/conductor.html.erb index 75157feb78..1cad6560c4 100644 --- a/actionmailbox/app/views/layouts/rails/conductor.html.erb +++ b/actionmailbox/app/views/layouts/rails/conductor.html.erb @@ -4,4 +4,5 @@ </head> <body> <%= yield %> +</body> </html> diff --git a/actionmailbox/lib/action_mailbox/gem_version.rb b/actionmailbox/lib/action_mailbox/gem_version.rb index 3959de9ce1..1f9c4272b9 100644 --- a/actionmailbox/lib/action_mailbox/gem_version.rb +++ b/actionmailbox/lib/action_mailbox/gem_version.rb @@ -10,7 +10,7 @@ module ActionMailbox MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb b/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb index 60077d86e2..fcd9ad839f 100644 --- a/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb +++ b/actionmailbox/test/controllers/rails/action_mailbox/inbound_emails_controller_test.rb @@ -10,16 +10,39 @@ class Rails::Conductor::ActionMailbox::InboundEmailsControllerTest < ActionDispa mail: { from: "Jason Fried <jason@37signals.com>", to: "Replies <replies@example.com>", - bcc: "", in_reply_to: "<4e6e35f5a38b4_479f13bb90078178@small-app-01.mail>", - subject: "Discussion: Let's debate these attachments", + subject: "Hey there", + body: "How's it going?" + } + } + end + + mail = ActionMailbox::InboundEmail.last.mail + assert_equal %w[ jason@37signals.com ], mail.from + assert_equal %w[ replies@example.com ], mail.to + assert_equal "4e6e35f5a38b4_479f13bb90078178@small-app-01.mail", mail.in_reply_to + assert_equal "Hey there", mail.subject + assert_equal "How's it going?", mail.body.decoded + end + end + + test "create inbound email with attachments" do + with_rails_env("development") do + assert_difference -> { ActionMailbox::InboundEmail.count }, +1 do + post rails_conductor_inbound_emails_path, params: { + mail: { + from: "Jason Fried <jason@37signals.com>", + to: "Replies <replies@example.com>", + subject: "Let's debate some attachments", body: "Let's talk about these images:", - attachments: [fixture_file_upload("files/avatar1.jpeg"), fixture_file_upload("files/avatar2.jpeg")] + attachments: [ fixture_file_upload("files/avatar1.jpeg"), fixture_file_upload("files/avatar2.jpeg") ] } } end - assert_equal 2, ActionMailbox::InboundEmail.last.mail.attachments.size + mail = ActionMailbox::InboundEmail.last.mail + assert_equal "Let's talk about these images:", mail.text_part.decoded + assert_equal 2, mail.attachments.count end end diff --git a/actionmailer/CHANGELOG.md b/actionmailer/CHANGELOG.md index 06b4744d31..806e428481 100644 --- a/actionmailer/CHANGELOG.md +++ b/actionmailer/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Deprecate `ActionMailer::Base.receive` in favor of [Action Mailbox](https://github.com/rails/rails/tree/master/actionmailbox). *George Claghorn* diff --git a/actionmailer/lib/action_mailer/gem_version.rb b/actionmailer/lib/action_mailer/gem_version.rb index 72eb5d61e8..4cab52d1f3 100644 --- a/actionmailer/lib/action_mailer/gem_version.rb +++ b/actionmailer/lib/action_mailer/gem_version.rb @@ -10,7 +10,7 @@ module ActionMailer MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 94cd719ce9..1a1b1034aa 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Remove deprecated `fragment_cache_key` helper in favor of `combined_fragment_cache_key`. *Rafael Mendonça França* diff --git a/actionpack/lib/action_pack/gem_version.rb b/actionpack/lib/action_pack/gem_version.rb index 37969fcb57..c7cb3cb91e 100644 --- a/actionpack/lib/action_pack/gem_version.rb +++ b/actionpack/lib/action_pack/gem_version.rb @@ -10,7 +10,7 @@ module ActionPack MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actiontext/CHANGELOG.md b/actiontext/CHANGELOG.md index 358552313f..d92367dc17 100644 --- a/actiontext/CHANGELOG.md +++ b/actiontext/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Added to Rails. *DHH* diff --git a/actiontext/lib/action_text/gem_version.rb b/actiontext/lib/action_text/gem_version.rb index 5a640de5c8..5404ac54e9 100644 --- a/actiontext/lib/action_text/gem_version.rb +++ b/actiontext/lib/action_text/gem_version.rb @@ -10,7 +10,7 @@ module ActionText MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actiontext/package.json b/actiontext/package.json index ee4666b85c..a24026bc51 100644 --- a/actiontext/package.json +++ b/actiontext/package.json @@ -1,6 +1,6 @@ { "name": "@rails/actiontext", - "version": "6.0.0-alpha", + "version": "6.0.0-beta1", "description": "Edit and display rich text in Rails applications", "main": "app/javascript/actiontext/index.js", "files": [ diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md index 5b2ea6c556..16361fd2eb 100644 --- a/actionview/CHANGELOG.md +++ b/actionview/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Remove deprecated `image_alt` helper. *Rafael Mendonça França* @@ -8,7 +10,8 @@ *Genadi Samokovarov* * Fix UJS permanently showing disabled text in a[data-remote][data-disable-with] elements within forms. - Fixes #33889 + + Fixes #33889. *Wolfgang Hobmaier* @@ -20,7 +23,7 @@ <%= link_to 'Remote', remote_path, class: 'remote', remote: true, data: { type: :json } %> ``` - Fixes #34541 + Fixes #34541. *Wolfgang Hobmaier* @@ -37,7 +40,7 @@ Calling `word_wrap` should not trim the indents on the first and last lines. - Fixes #34487 + Fixes #34487. *Lyle Mullican* diff --git a/actionview/lib/action_view/gem_version.rb b/actionview/lib/action_view/gem_version.rb index 77ae444a58..02de3eeec2 100644 --- a/actionview/lib/action_view/gem_version.rb +++ b/actionview/lib/action_view/gem_version.rb @@ -10,7 +10,7 @@ module ActionView MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/actionview/package.json b/actionview/package.json index d6cf412c6d..eb2a9f879e 100644 --- a/actionview/package.json +++ b/actionview/package.json @@ -1,6 +1,6 @@ { "name": "@rails/ujs", - "version": "6.0.0-alpha", + "version": "6.0.0-beta1", "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 31253855d7..0ed937f4cc 100644 --- a/activejob/CHANGELOG.md +++ b/activejob/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Return false instead of the job instance when `enqueue` is aborted. This will be the behavior in Rails 6.1 but it can be controlled now with diff --git a/activejob/lib/active_job/gem_version.rb b/activejob/lib/active_job/gem_version.rb index 770f70dc5e..2b894397e3 100644 --- a/activejob/lib/active_job/gem_version.rb +++ b/activejob/lib/active_job/gem_version.rb @@ -10,7 +10,7 @@ module ActiveJob MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index f55d89a580..571c050f2f 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Add `ActiveModel::Errors#of_kind?`. *bogdanvlviv*, *Rafael Mendonça França* diff --git a/activemodel/lib/active_model/gem_version.rb b/activemodel/lib/active_model/gem_version.rb index cef5441e4a..b0322f62c7 100644 --- a/activemodel/lib/active_model/gem_version.rb +++ b/activemodel/lib/active_model/gem_version.rb @@ -10,7 +10,7 @@ module ActiveModel MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index b543a76639..2a0cd81be5 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Remove deprecated `#set_state` from the transaction object. *Rafael Mendonça França* diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_creation.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_creation.rb index ceb8b40bd9..84dd28907b 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_creation.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_creation.rb @@ -17,6 +17,42 @@ module ActiveRecord "VALIDATE CONSTRAINT #{quote_column_name(name)}" end + def visit_ChangeColumnDefinition(o) + column = o.column + column.sql_type = type_to_sql(column.type, column.options) + quoted_column_name = quote_column_name(o.name) + + change_column_sql = +"ALTER COLUMN #{quoted_column_name} TYPE #{column.sql_type}" + + options = column_options(column) + + if options[:collation] + change_column_sql << " COLLATE \"#{options[:collation]}\"" + end + + if options[:using] + change_column_sql << " USING #{options[:using]}" + elsif options[:cast_as] + cast_as_type = type_to_sql(options[:cast_as], options) + change_column_sql << " USING CAST(#{quoted_column_name} AS #{cast_as_type})" + end + + if options.key?(:default) + if options[:default].nil? + change_column_sql << ", ALTER COLUMN #{quoted_column_name} DROP DEFAULT" + else + quoted_default = quote_default_expression(options[:default], column) + change_column_sql << ", ALTER COLUMN #{quoted_column_name} SET DEFAULT #{quoted_default}" + end + end + + if options.key?(:null) + change_column_sql << ", ALTER COLUMN #{quoted_column_name} #{options[:null] ? 'DROP' : 'SET'} NOT NULL" + end + + change_column_sql + end + def add_column_options!(sql, options) if options[:collation] sql << " COLLATE \"#{options[:collation]}\"" diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb index 3516bef75a..7cf371be68 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb @@ -683,38 +683,20 @@ module ActiveRecord end end - def change_column_sql(table_name, column_name, type, options = {}) - quoted_column_name = quote_column_name(column_name) - sql_type = type_to_sql(type, options) - sql = +"ALTER COLUMN #{quoted_column_name} TYPE #{sql_type}" - if options[:collation] - sql << " COLLATE \"#{options[:collation]}\"" - end - if options[:using] - sql << " USING #{options[:using]}" - elsif options[:cast_as] - cast_as_type = type_to_sql(options[:cast_as], options) - sql << " USING CAST(#{quoted_column_name} AS #{cast_as_type})" - end - - sql - end - def add_column_for_alter(table_name, column_name, type, options = {}) return super unless options.key?(:comment) [super, Proc.new { change_column_comment(table_name, column_name, options[:comment]) }] end def change_column_for_alter(table_name, column_name, type, options = {}) - sqls = [change_column_sql(table_name, column_name, type, options)] - sqls << change_column_default_for_alter(table_name, column_name, options[:default]) if options.key?(:default) - sqls << change_column_null_for_alter(table_name, column_name, options[:null], options[:default]) if options.key?(:null) + td = create_table_definition(table_name) + cd = td.new_column_definition(column_name, type, options) + sqls = [schema_creation.accept(ChangeColumnDefinition.new(cd, column_name))] sqls << Proc.new { change_column_comment(table_name, column_name, options[:comment]) } if options.key?(:comment) sqls end - # Changes the default value of a table column. - def change_column_default_for_alter(table_name, column_name, default_or_changes) # :nodoc: + def change_column_default_for_alter(table_name, column_name, default_or_changes) column = column_for(table_name, column_name) return unless column @@ -729,8 +711,8 @@ module ActiveRecord end end - def change_column_null_for_alter(table_name, column_name, null, default = nil) #:nodoc: - "ALTER #{quote_column_name(column_name)} #{null ? 'DROP' : 'SET'} NOT NULL" + def change_column_null_for_alter(table_name, column_name, null, default = nil) + "ALTER COLUMN #{quote_column_name(column_name)} #{null ? 'DROP' : 'SET'} NOT NULL" end def add_timestamps_for_alter(table_name, options = {}) diff --git a/activerecord/lib/active_record/gem_version.rb b/activerecord/lib/active_record/gem_version.rb index 72035a986b..16dff9c2b0 100644 --- a/activerecord/lib/active_record/gem_version.rb +++ b/activerecord/lib/active_record/gem_version.rb @@ -10,7 +10,7 @@ module ActiveRecord MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" 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 8f6fcfcaea..608182e363 100644 --- a/activerecord/lib/active_record/migration/compatibility.rb +++ b/activerecord/lib/active_record/migration/compatibility.rb @@ -36,9 +36,7 @@ module ActiveRecord class V5_1 < V5_2 def change_column(table_name, column_name, type, options = {}) if adapter_name == "PostgreSQL" - clear_cache! - sql = connection.send(:change_column_sql, table_name, column_name, type, options) - execute "ALTER TABLE #{quote_table_name(table_name)} #{sql}" + super(table_name, column_name, type, options.except(:default, :null, :comment)) change_column_default(table_name, column_name, options[:default]) if options.key?(:default) change_column_null(table_name, column_name, options[:null], options[:default]) if options.key?(:null) change_column_comment(table_name, column_name, options[:comment]) if options.key?(:comment) diff --git a/activerecord/test/cases/adapters/postgresql/array_test.rb b/activerecord/test/cases/adapters/postgresql/array_test.rb index b12055a40a..2e7a4b498f 100644 --- a/activerecord/test/cases/adapters/postgresql/array_test.rb +++ b/activerecord/test/cases/adapters/postgresql/array_test.rb @@ -17,7 +17,7 @@ class PostgresqlArrayTest < ActiveRecord::PostgreSQLTestCase enable_extension!("hstore", @connection) @connection.transaction do - @connection.create_table("pg_arrays") do |t| + @connection.create_table "pg_arrays", force: true do |t| t.string "tags", array: true, limit: 255 t.integer "ratings", array: true t.datetime :datetimes, array: true @@ -112,6 +112,18 @@ class PostgresqlArrayTest < ActiveRecord::PostgreSQLTestCase assert_predicate column, :array? end + def test_change_column_from_non_array_to_array + @connection.add_column :pg_arrays, :snippets, :string + @connection.change_column :pg_arrays, :snippets, :text, array: true, default: [], using: "string_to_array(\"snippets\", ',')" + + PgArray.reset_column_information + column = PgArray.columns_hash["snippets"] + + assert_equal :text, column.type + assert_equal [], PgArray.column_defaults["snippets"] + assert_predicate column, :array? + end + def test_change_column_cant_make_non_array_column_to_array @connection.add_column :pg_arrays, :a_string, :string assert_raises ActiveRecord::StatementInvalid do diff --git a/activestorage/CHANGELOG.md b/activestorage/CHANGELOG.md index fbc78a50ab..659bacebde 100644 --- a/activestorage/CHANGELOG.md +++ b/activestorage/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Replace `config.active_storage.queue` with two options that indicate which queues analysis and purge jobs should use, respectively: diff --git a/activestorage/lib/active_storage/gem_version.rb b/activestorage/lib/active_storage/gem_version.rb index 492620731b..c4c7bf5677 100644 --- a/activestorage/lib/active_storage/gem_version.rb +++ b/activestorage/lib/active_storage/gem_version.rb @@ -10,7 +10,7 @@ module ActiveStorage MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/activestorage/package.json b/activestorage/package.json index 37706efe37..f7b896b5ee 100644 --- a/activestorage/package.json +++ b/activestorage/package.json @@ -1,6 +1,6 @@ { "name": "@rails/activestorage", - "version": "6.0.0-alpha", + "version": "6.0.0-beta1", "description": "Attach cloud and local files in Rails applications", "main": "app/assets/javascripts/activestorage.js", "files": [ diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 68f5e86552..6272dd3471 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Remove deprecated `Module#reachable?` method. *Rafael Mendonça França* diff --git a/activesupport/lib/active_support/gem_version.rb b/activesupport/lib/active_support/gem_version.rb index c951ad16a3..8bf016e88c 100644 --- a/activesupport/lib/active_support/gem_version.rb +++ b/activesupport/lib/active_support/gem_version.rb @@ -10,7 +10,7 @@ module ActiveSupport MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md index 9f95e22245..5a97fbb586 100644 --- a/guides/CHANGELOG.md +++ b/guides/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * New section _Troubleshooting_ in the _Autoloading and Reloading Constants_ guide. *Xavier Noria* diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md index bd76dc4bc8..5b249de47e 100644 --- a/railties/CHANGELOG.md +++ b/railties/CHANGELOG.md @@ -1,3 +1,5 @@ +## Rails 6.0.0.beta1 (January 18, 2019) ## + * Remove deprecated `after_bundle` helper inside plugins templates. *Rafael Mendonça França* diff --git a/railties/lib/rails/gem_version.rb b/railties/lib/rails/gem_version.rb index 54bfbdd516..82df56559c 100644 --- a/railties/lib/rails/gem_version.rb +++ b/railties/lib/rails/gem_version.rb @@ -10,7 +10,7 @@ module Rails MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/tasks/release.rb b/tasks/release.rb index 214c1fd16e..6784330fd6 100644 --- a/tasks/release.rb +++ b/tasks/release.rb @@ -136,16 +136,20 @@ namespace :changelog do end end - task :release_summary, [:base_release] do |_, args| + task :release_summary, [:base_release, :release] do |_, args| release_regexp = args[:base_release] ? Regexp.escape(args[:base_release]) : /\d+\.\d+\.\d+/ + puts release + FRAMEWORKS.each do |fw| puts "## #{FRAMEWORK_NAMES[fw]}" fname = File.join fw, "CHANGELOG.md" contents = File.readlines fname contents.shift changes = [] - until contents.first =~ /^## Rails #{release_regexp}.*$/ + until contents.first =~ /^## Rails #{release_regexp}.*$/ || + contents.first =~ /^Please check.*for previous changes\.$/ || + contents.empty? changes << contents.shift end @@ -213,7 +217,9 @@ namespace :all do description %>\n</p> <p> - <%= image_tag @user.avatar.representation(resize_to_fit: [500, 500]) %> + <% if @user.avatar.attached? -%> + <%= image_tag @user.avatar.representation(resize_to_fit: [500, 500]) %> + <% end -%> </p> CODE diff --git a/version.rb b/version.rb index 54bfbdd516..82df56559c 100644 --- a/version.rb +++ b/version.rb @@ -10,7 +10,7 @@ module Rails MAJOR = 6 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end |