Hello community, here is the log from the commit of package rubygem-activerecord-4_2 for openSUSE:Factory checked in at 2017-09-26 21:12:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-activerecord-4_2 (Old) and /work/SRC/openSUSE:Factory/.rubygem-activerecord-4_2.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-activerecord-4_2" Tue Sep 26 21:12:52 2017 rev:12 rq:514910 version:4.2.9 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-activerecord-4_2/rubygem-activerecord-4_2.changes 2017-03-21 22:50:26.419223167 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-activerecord-4_2.new/rubygem-activerecord-4_2.changes 2017-09-26 21:13:21.243409728 +0200 @@ -1,0 +2,35 @@ +Thu Aug 3 19:01:16 UTC 2017 - co...@suse.com + +- updated to version 4.2.9 + see installed CHANGELOG.md + + ## Rails 4.2.9 (June 26, 2017) ## + + * Fix regression caused by `collection_singular_ids=` ignoring different primary key on relationship. + + *Nick Pezza* + + * Fix `rake db:schema:load` with subdirectories. + + *Ryuta Kamizono* + + * Fix `rake db:migrate:status` with subdirectories. + + *Ryuta Kamizono* + + * Fix regression of #1969 with SELECT aliases in HAVING clause. + + *Eugene Kenny* + + * Fix `wait_timeout` to configurable for mysql2 adapter. + + Fixes #26556. + + *Ryuta Kamizono* + + * Make `table_name=` reset current statement cache, + so queries are not run against the previous table name. + + *namusyaka* + +------------------------------------------------------------------- Old: ---- activerecord-4.2.8.gem New: ---- activerecord-4.2.9.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-activerecord-4_2.spec ++++++ --- /var/tmp/diff_new_pack.sU4eOc/_old 2017-09-26 21:13:22.515230887 +0200 +++ /var/tmp/diff_new_pack.sU4eOc/_new 2017-09-26 21:13:22.515230887 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-activerecord-4_2 -Version: 4.2.8 +Version: 4.2.9 Release: 0 %define mod_name activerecord %define mod_full_name %{mod_name}-%{version} ++++++ activerecord-4.2.8.gem -> activerecord-4.2.9.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md --- old/CHANGELOG.md 2017-02-21 17:07:00.000000000 +0100 +++ new/CHANGELOG.md 2017-06-26 23:29:04.000000000 +0200 @@ -1,3 +1,33 @@ +## Rails 4.2.9 (June 26, 2017) ## + +* Fix regression caused by `collection_singular_ids=` ignoring different primary key on relationship. + + *Nick Pezza* + +* Fix `rake db:schema:load` with subdirectories. + + *Ryuta Kamizono* + +* Fix `rake db:migrate:status` with subdirectories. + + *Ryuta Kamizono* + +* Fix regression of #1969 with SELECT aliases in HAVING clause. + + *Eugene Kenny* + +* Fix `wait_timeout` to configurable for mysql2 adapter. + + Fixes #26556. + + *Ryuta Kamizono* + +* Make `table_name=` reset current statement cache, + so queries are not run against the previous table name. + + *namusyaka* + + ## Rails 4.2.8 (February 21, 2017) ## * Using a mysql2 connection after it fails to reconnect will now have an error message Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/associations/collection_association.rb new/lib/active_record/associations/collection_association.rb --- old/lib/active_record/associations/collection_association.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/associations/collection_association.rb 2017-06-26 23:29:04.000000000 +0200 @@ -67,10 +67,14 @@ pk_type.type_cast_from_user(i) end - if (objs = klass.where(pk_column => ids)).size == ids.size + objs = klass.where(pk_column => ids).index_by do |r| + r.send(pk_column) + end.values_at(*ids).compact + + if objs.size == ids.size replace(objs.index_by { |r| r.send(pk_column) }.values_at(*ids)) else - objs.raise_record_not_found_exception!(ids, objs.size, ids.size) + klass.all.raise_record_not_found_exception!(ids, objs.size, ids.size) end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/connection_adapters/abstract/schema_statements.rb new/lib/active_record/connection_adapters/abstract/schema_statements.rb --- old/lib/active_record/connection_adapters/abstract/schema_statements.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/connection_adapters/abstract/schema_statements.rb 2017-06-26 23:29:04.000000000 +0200 @@ -841,10 +841,9 @@ version = version.to_i sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name) - migrated = select_values("SELECT version FROM #{sm_table}").map { |v| v.to_i } - paths = migrations_paths.map {|p| "#{p}/[0-9]*_*.rb" } - versions = Dir[*paths].map do |filename| - filename.split('/').last.split('_').first.to_i + migrated = select_values("SELECT version FROM #{sm_table}").map(&:to_i) + versions = ActiveRecord::Migrator.migration_files(migrations_paths).map do |file| + ActiveRecord::Migrator.parse_migration_filename(file).first.to_i end unless migrated.include?(version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/connection_adapters/abstract_mysql_adapter.rb new/lib/active_record/connection_adapters/abstract_mysql_adapter.rb --- old/lib/active_record/connection_adapters/abstract_mysql_adapter.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/connection_adapters/abstract_mysql_adapter.rb 2017-06-26 23:29:04.000000000 +0200 @@ -863,9 +863,9 @@ variables['sql_auto_is_null'] = 0 # Increase timeout so the server doesn't disconnect us. - wait_timeout = @config[:wait_timeout] + wait_timeout = self.class.type_cast_config_to_integer(@config[:wait_timeout]) wait_timeout = 2147483 unless wait_timeout.is_a?(Integer) - variables['wait_timeout'] = self.class.type_cast_config_to_integer(wait_timeout) + variables["wait_timeout"] = wait_timeout # Make MySQL reject illegal values rather than truncating or blanking them, see # http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html#sqlmode_strict_all_tables diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/gem_version.rb new/lib/active_record/gem_version.rb --- old/lib/active_record/gem_version.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/gem_version.rb 2017-06-26 23:29:04.000000000 +0200 @@ -7,7 +7,7 @@ module VERSION MAJOR = 4 MINOR = 2 - TINY = 8 + TINY = 9 PRE = nil STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/migration.rb new/lib/active_record/migration.rb --- old/lib/active_record/migration.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/migration.rb 2017-06-26 23:29:04.000000000 +0200 @@ -880,14 +880,15 @@ migrations_paths.first end + def parse_migration_filename(filename) # :nodoc: + File.basename(filename).scan(/\A([0-9]+)_([_a-z0-9]*)\.?([_a-z0-9]*)?\.rb\z/).first + end + def migrations(paths) paths = Array(paths) - files = Dir[*paths.map { |p| "#{p}/**/[0-9]*_*.rb" }] - - migrations = files.map do |file| - version, name, scope = file.scan(/([0-9]+)_([_a-z0-9]*)\.?([_a-z0-9]*)?\.rb\z/).first - + migrations = migration_files(paths).map do |file| + version, name, scope = parse_migration_filename(file) raise IllegalMigrationNameError.new(file) unless version version = version.to_i name = name.camelize @@ -898,6 +899,30 @@ migrations.sort_by(&:version) end + def migrations_status(paths) + paths = Array(paths) + + db_list = ActiveRecord::SchemaMigration.normalized_versions + + file_list = migration_files(paths).map do |file| + version, name, scope = parse_migration_filename(file) + raise IllegalMigrationNameError.new(file) unless version + version = ActiveRecord::SchemaMigration.normalize_migration_number(version) + status = db_list.delete(version) ? "up" : "down" + [status, version, (name + scope).humanize] + end.compact + + db_list.map! do |version| + ["up", version, "********** NO FILE **********"] + end + + (db_list + file_list).sort_by { |_, version, _| version } + end + + def migration_files(paths) + Dir[*paths.flat_map { |path| "#{path}/**/[0-9]*_*.rb" }] + end + private def move(direction, migrations_paths, steps) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/model_schema.rb new/lib/active_record/model_schema.rb --- old/lib/active_record/model_schema.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/model_schema.rb 2017-06-26 23:29:04.000000000 +0200 @@ -304,6 +304,8 @@ @default_attributes = nil @inheritance_column = nil unless defined?(@explicit_inheritance_column) && @explicit_inheritance_column @relation = nil + + initialize_find_by_cache end private diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/railtie.rb new/lib/active_record/railtie.rb --- old/lib/active_record/railtie.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/railtie.rb 2017-06-26 23:29:04.000000000 +0200 @@ -57,8 +57,10 @@ console do |app| require "active_record/railties/console_sandbox" if app.sandbox? require "active_record/base" - console = ActiveSupport::Logger.new(STDERR) - Rails.logger.extend ActiveSupport::Logger.broadcast console + unless ActiveSupport::Logger.logger_outputs_to?(Rails.logger, STDERR, STDOUT) + console = ActiveSupport::Logger.new(STDERR) + Rails.logger.extend ActiveSupport::Logger.broadcast console + end end runner do diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/railties/databases.rake new/lib/active_record/railties/databases.rake --- old/lib/active_record/railties/databases.rake 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/railties/databases.rake 2017-06-26 23:29:04.000000000 +0200 @@ -63,6 +63,8 @@ namespace :migrate do # desc 'Rollbacks the database one migration and re migrate up (options: STEP=x, VERSION=x).' task :redo => [:environment, :load_config] do + raise "Empty VERSION provided" if ENV["VERSION"] && ENV["VERSION"].empty? + if ENV['VERSION'] db_namespace['migrate:down'].invoke db_namespace['migrate:up'].invoke @@ -77,16 +79,17 @@ # desc 'Runs the "up" for a given migration VERSION.' task :up => [:environment, :load_config] do + raise "VERSION is required" if ENV["VERSION"] && ENV["VERSION"].empty? + version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil - raise 'VERSION is required' unless version ActiveRecord::Migrator.run(:up, ActiveRecord::Migrator.migrations_paths, version) db_namespace['_dump'].invoke end # desc 'Runs the "down" for a given migration VERSION.' task :down => [:environment, :load_config] do + raise "VERSION is required - To go down one migration, use db:rollback" if ENV["VERSION"] && ENV["VERSION"].empty? version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil - raise 'VERSION is required - To go down one migration, run db:rollback' unless version ActiveRecord::Migrator.run(:down, ActiveRecord::Migrator.migrations_paths, version) db_namespace['_dump'].invoke end @@ -96,26 +99,13 @@ unless ActiveRecord::SchemaMigration.table_exists? abort 'Schema migrations table does not exist yet.' end - db_list = ActiveRecord::SchemaMigration.normalized_versions - file_list = - ActiveRecord::Migrator.migrations_paths.flat_map do |path| - # match "20091231235959_some_name.rb" and "001_some_name.rb" pattern - Dir.foreach(path).grep(/^(\d{3,})_(.+)\.rb$/) do - version = ActiveRecord::SchemaMigration.normalize_migration_number($1) - status = db_list.delete(version) ? 'up' : 'down' - [status, version, $2.humanize] - end - end - - db_list.map! do |version| - ['up', version, '********** NO FILE **********'] - end # output puts "\ndatabase: #{ActiveRecord::Base.connection_config[:database]}\n\n" puts "#{'Status'.center(8)} #{'Migration ID'.ljust(14)} Migration Name" puts "-" * 50 - (db_list + file_list).sort_by { |_, version, _| version }.each do |status, version, name| + paths = ActiveRecord::Tasks::DatabaseTasks.migrations_paths + ActiveRecord::Migrator.migrations_status(paths).each do |status, version, name| puts "#{status.center(8)} #{version.ljust(14)} #{name}" end puts diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/relation/calculations.rb new/lib/active_record/relation/calculations.rb --- old/lib/active_record/relation/calculations.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/relation/calculations.rb 2017-06-26 23:29:04.000000000 +0200 @@ -310,7 +310,7 @@ operation, distinct).as(aggregate_alias) ] - select_values += select_values unless having_values.empty? + select_values += self.select_values unless having_values.empty? select_values.concat group_fields.zip(group_aliases).map { |field,aliaz| if field.respond_to?(:as) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/tasks/database_tasks.rb new/lib/active_record/tasks/database_tasks.rb --- old/lib/active_record/tasks/database_tasks.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/tasks/database_tasks.rb 2017-06-26 23:29:04.000000000 +0200 @@ -130,6 +130,8 @@ end def migrate + raise "Empty VERSION provided" if ENV["VERSION"] && ENV["VERSION"].empty? + verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil scope = ENV['SCOPE'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/active_record/type/decimal.rb new/lib/active_record/type/decimal.rb --- old/lib/active_record/type/decimal.rb 2017-02-21 17:07:00.000000000 +0100 +++ new/lib/active_record/type/decimal.rb 2017-06-26 23:29:04.000000000 +0200 @@ -17,8 +17,14 @@ casted_value = case value when ::Float convert_float_to_big_decimal(value) - when ::Numeric, ::String + when ::Numeric BigDecimal(value, precision.to_i) + when ::String + begin + value.to_d + rescue ArgumentError + BigDecimal(0) + end else if value.respond_to?(:to_d) value.to_d diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2017-02-21 17:07:00.000000000 +0100 +++ new/metadata 2017-06-26 23:29:04.000000000 +0200 @@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: activerecord version: !ruby/object:Gem::Version - version: 4.2.8 + version: 4.2.9 platform: ruby authors: - David Heinemeier Hansson autorequire: bindir: bin cert_chain: [] -date: 2017-02-21 00:00:00.000000000 Z +date: 2017-06-26 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: activesupport @@ -16,28 +16,28 @@ requirements: - - '=' - !ruby/object:Gem::Version - version: 4.2.8 + version: 4.2.9 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 4.2.8 + version: 4.2.9 - !ruby/object:Gem::Dependency name: activemodel requirement: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 4.2.8 + version: 4.2.9 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - '=' - !ruby/object:Gem::Version - version: 4.2.8 + version: 4.2.9 - !ruby/object:Gem::Dependency name: arel requirement: !ruby/object:Gem::Requirement @@ -304,7 +304,7 @@ version: '0' requirements: [] rubyforge_project: -rubygems_version: 2.6.10 +rubygems_version: 2.6.12 signing_key: specification_version: 4 summary: Object-relational mapper framework (part of Rails).