railties 7.1.3.4 → 7.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5a713c038c0add6ec4194a1c5c48a7e2f5f82da156d84e8af357d48cbb914f0e
4
- data.tar.gz: 77a6b444181b72e1e506c8d3335fa596b1bcaf62c2adfdd3cbda2671fc104fde
3
+ metadata.gz: 8866f3e8c17f561a89af9ed456dba62eee93d26ee1c1acdffe0be77b4b5c02dd
4
+ data.tar.gz: 1f78f4f77ba304da3820061f9fe4f31b50272f475742fabe50129dbc28b55a6d
5
5
  SHA512:
6
- metadata.gz: e97b5e4b13e4d6b53ce3cd3d7fe7a586f58f5eb66b644043c7fade27354c951831b5112e99353c5b89f54ba5f9e2c5a6fc8bffe58d963acbcbd910aba55201fd
7
- data.tar.gz: 8fb0f94946b9e5b3ce9f7212a9e8c8752fb53056b45016cadb7d40cc062b07d1636d4af4f402fa9250b41796e5a7b90e954324b5c3651921919e0f064b3b03fc
6
+ metadata.gz: b7a5c857425f845fbfb1bf49bc2e0340e6a46c9ff969c0df938c27b88edb16f226cd7a31ec3a9f43aceffb1c0b6d1edca964af93f9e05085ad5ec8191eb474e9
7
+ data.tar.gz: 3ea3b1f145ad2439d1fcf347ad45c37e13dfe4d29ec40bc0b2159947a4df813ec2397e5f9a219011afb373a5f0a169249512dc284cd06c63ad689b91ea5f4941
data/CHANGELOG.md CHANGED
@@ -1,3 +1,41 @@
1
+ ## Rails 7.1.4 (August 22, 2024) ##
2
+
3
+ * Preserve `--asset-pipeline propshaft` when running `app:update`.
4
+
5
+ *Zacharias Knudsen*
6
+
7
+ * Allow string keys for SQLCommenter.
8
+
9
+ *Ngan Pham*
10
+
11
+ * Fix derived foreign key to return correctly when association id is part of query constraints.
12
+
13
+ *Varun Sharma*
14
+
15
+ * Show warning for `secret_key_base` in development too.
16
+
17
+ *fatkodima*
18
+
19
+ * Fix sanitizer vendor configuration in 7.1 defaults.
20
+
21
+ In apps where `rails-html-sanitizer` was not eagerly loaded, the sanitizer default could end up
22
+ being Rails::HTML4::Sanitizer when it should be set to `Rails::HTML5::Sanitizer`.
23
+
24
+ *Mike Dalessio*, *Rafael Mendonça França*
25
+
26
+ * Revert the use of `Concurrent.physical_processor_count` in default Puma config
27
+
28
+ While for many people this saves one config to set, for many others using
29
+ a shared hosting solution, this cause the default configuration to spawn
30
+ way more workers than reasonable.
31
+
32
+ There is unfortunately no reliable way to detect how many cores an application
33
+ can realistically use, and even then, assuming the application should use
34
+ all the machine resources is often wrong.
35
+
36
+ *Jean Boussier*
37
+
38
+
1
39
  ## Rails 7.1.3.4 (June 04, 2024) ##
2
40
 
3
41
  * No changes.
@@ -31,10 +31,22 @@ module Rails
31
31
  options[:skip_action_cable] = !defined?(ActionCable::Engine)
32
32
  options[:skip_test] = !defined?(Rails::TestUnitRailtie)
33
33
  options[:skip_system_test] = Rails.application.config.generators.system_tests.nil?
34
- options[:skip_asset_pipeline] = !defined?(Sprockets::Railtie) && !defined?(Propshaft::Railtie)
34
+ options[:asset_pipeline] = asset_pipeline
35
+ options[:skip_asset_pipeline] = asset_pipeline.nil?
35
36
  options[:skip_bootsnap] = !defined?(Bootsnap)
36
37
  options
37
38
  end
39
+
40
+ def asset_pipeline
41
+ case
42
+ when defined?(Sprockets::Railtie)
43
+ "sprockets"
44
+ when defined?(Propshaft::Railtie)
45
+ "propshaft"
46
+ else
47
+ nil
48
+ end
49
+ end
38
50
  end
39
51
  end
40
52
  end
@@ -320,14 +320,14 @@ module Rails
320
320
  action_controller.allow_deprecated_parameters_hash_equality = false
321
321
  end
322
322
 
323
- if defined?(Rails::HTML::Sanitizer) # nested ifs to avoid linter errors
324
- if respond_to?(:action_view)
325
- action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
326
- end
323
+ if respond_to?(:action_view)
324
+ require "action_view/helpers"
325
+ action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
326
+ end
327
327
 
328
- if respond_to?(:action_text)
329
- action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
330
- end
328
+ if respond_to?(:action_text)
329
+ require "action_view/helpers"
330
+ action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
331
331
  end
332
332
  else
333
333
  raise "Unknown version #{target_version.to_s.inspect}"
@@ -476,27 +476,30 @@ module Rails
476
476
  # then +credentials.secret_key_base+, and finally +secrets.secret_key_base+. For most applications,
477
477
  # the correct place to store it is in the encrypted credentials file.
478
478
  def secret_key_base
479
- if Rails.env.local? || ENV["SECRET_KEY_BASE_DUMMY"]
480
- config.secret_key_base ||= generate_local_secret
481
- else
482
- validate_secret_key_base(
483
- ENV["SECRET_KEY_BASE"] || credentials.secret_key_base || begin
484
- secret_skb = secrets_secret_key_base
485
-
486
- if secret_skb.equal?(config.secret_key_base)
487
- config.secret_key_base
488
- else
489
- Rails.deprecator.warn(<<~MSG.squish)
490
- Your `secret_key_base` is configured in `Rails.application.secrets`,
491
- which is deprecated in favor of `Rails.application.credentials` and
492
- will be removed in Rails 7.2.
493
- MSG
494
-
495
- secret_skb
479
+ config.secret_key_base ||=
480
+ if ENV["SECRET_KEY_BASE_DUMMY"]
481
+ generate_local_secret
482
+ else
483
+ validate_secret_key_base(
484
+ ENV["SECRET_KEY_BASE"] || credentials.secret_key_base || begin
485
+ secret_skb = secrets_secret_key_base
486
+
487
+ if secret_skb && secret_skb.equal?(config.secret_key_base)
488
+ config.secret_key_base
489
+ elsif secret_skb
490
+ Rails.deprecator.warn(<<~MSG.squish)
491
+ Your `secret_key_base` is configured in `Rails.application.secrets`,
492
+ which is deprecated in favor of `Rails.application.credentials` and
493
+ will be removed in Rails 7.2.
494
+ MSG
495
+
496
+ secret_skb
497
+ elsif Rails.env.local?
498
+ generate_local_secret
499
+ end
496
500
  end
497
- end
498
- )
499
- end
501
+ )
502
+ end
500
503
  end
501
504
 
502
505
  # Returns an ActiveSupport::EncryptedConfiguration instance for the
@@ -10,9 +10,11 @@ module Rails
10
10
 
11
11
  def initialize
12
12
  super
13
- @root = "#{Rails.root}/"
14
13
  add_filter do |line|
15
- line.start_with?(@root) ? line.from(@root.size) : line
14
+ # We may be called before Rails.root is assigned.
15
+ # When that happens we fallback to not truncating.
16
+ @root ||= Rails.root && "#{Rails.root}/"
17
+ @root && line.start_with?(@root) ? line.from(@root.size) : line
16
18
  end
17
19
  add_filter do |line|
18
20
  if RENDER_TEMPLATE_PATTERN.match?(line)
@@ -9,8 +9,8 @@ module Rails
9
9
  module VERSION
10
10
  MAJOR = 7
11
11
  MINOR = 1
12
- TINY = 3
13
- PRE = "4"
12
+ TINY = 4
13
+ PRE = nil
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -16,7 +16,7 @@ module Rails
16
16
  when "mysql" then ["mysql2", ["~> 0.5"]]
17
17
  when "trilogy" then ["trilogy", ["~> 2.4"]]
18
18
  when "postgresql" then ["pg", ["~> 1.1"]]
19
- when "sqlite3" then ["sqlite3", ["~> 1.4"]]
19
+ when "sqlite3" then ["sqlite3", [">= 1.4"]]
20
20
  when "oracle" then ["activerecord-oracle_enhanced-adapter", nil]
21
21
  when "sqlserver" then ["activerecord-sqlserver-adapter", nil]
22
22
  when "jdbcmysql" then ["activerecord-jdbcmysql-adapter", nil]
@@ -7,7 +7,7 @@ module Rails
7
7
  module Generators
8
8
  # Holds common methods for migrations. It assumes that migrations have the
9
9
  # [0-9]*_name format and can be used by other frameworks (like Sequel)
10
- # just by implementing the next migration version method.
10
+ # just by implementing the +next_migration_number+ method.
11
11
  module Migration
12
12
  extend ActiveSupport::Concern
13
13
  attr_reader :migration_number, :migration_file_name, :migration_class_name
@@ -46,10 +46,10 @@ module Rails
46
46
  end
47
47
 
48
48
  # Creates a migration template at the given destination. The difference
49
- # to the default template method is that the migration version is appended
49
+ # to the default template method is that the migration number is prepended
50
50
  # to the destination file name.
51
51
  #
52
- # The migration version, migration file name, migration class name are
52
+ # The migration number, migration file name, migration class name are
53
53
  # available as instance variables in the template to be rendered.
54
54
  #
55
55
  # migration_template "migration.rb", "db/migrate/add_foo_to_bar.rb"
@@ -241,7 +241,6 @@
241
241
  # this file):
242
242
  # config.active_support.cache_format_version = 7.1
243
243
 
244
-
245
244
  ###
246
245
  # Configure Action View to use HTML5 standards-compliant sanitizers when they are supported on your
247
246
  # platform.
@@ -253,7 +252,6 @@
253
252
  #++
254
253
  # Rails.application.config.action_view.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
255
254
 
256
-
257
255
  ###
258
256
  # Configure Action Text to use an HTML5 standards-compliant sanitizer when it is supported on your
259
257
  # platform.
@@ -265,14 +263,12 @@
265
263
  #++
266
264
  # Rails.application.config.action_text.sanitizer_vendor = Rails::HTML::Sanitizer.best_supported_vendor
267
265
 
268
-
269
266
  ###
270
267
  # Configure the log level used by the DebugExceptions middleware when logging
271
268
  # uncaught exceptions during requests.
272
269
  #++
273
270
  # Rails.application.config.action_dispatch.debug_exception_log_level = :error
274
271
 
275
-
276
272
  ###
277
273
  # Configure the test helpers in Action View, Action Dispatch, and rails-dom-testing to use HTML5
278
274
  # parsers.
@@ -11,13 +11,22 @@ max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
11
11
  min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
12
12
  threads min_threads_count, max_threads_count
13
13
 
14
- # Specifies that the worker count should equal the number of processors in production.
15
- if ENV["RAILS_ENV"] == "production"
16
- require "concurrent-ruby"
17
- worker_count = Integer(ENV.fetch("WEB_CONCURRENCY") { Concurrent.physical_processor_count })
18
- workers worker_count if worker_count > 1
19
- end
14
+ rails_env = ENV.fetch("RAILS_ENV") { "development" }
20
15
 
16
+ if rails_env == "production"
17
+ # If you are running more than 1 thread per process, the workers count
18
+ # should be equal to the number of processors (CPU cores) in production.
19
+ #
20
+ # It defaults to 1 because it's impossible to reliably detect how many
21
+ # CPU cores are available. Make sure to set the `WEB_CONCURRENCY` environment
22
+ # variable to match the number of processors.
23
+ worker_count = Integer(ENV.fetch("WEB_CONCURRENCY") { 1 })
24
+ if worker_count > 1
25
+ workers worker_count
26
+ else
27
+ preload_app!
28
+ end
29
+ end
21
30
  # Specifies the `worker_timeout` threshold that Puma will use to wait before
22
31
  # terminating a worker in development environments.
23
32
  worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
@@ -26,7 +35,7 @@ worker_timeout 3600 if ENV.fetch("RAILS_ENV", "development") == "development"
26
35
  port ENV.fetch("PORT") { 3000 }
27
36
 
28
37
  # Specifies the `environment` that Puma will run in.
29
- environment ENV.fetch("RAILS_ENV") { "development" }
38
+ environment rails_env
30
39
 
31
40
  # Specifies the `pidfile` that Puma will use.
32
41
  pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
data/lib/rails.rb CHANGED
@@ -24,7 +24,7 @@ silence_warnings do
24
24
  Encoding.default_internal = Encoding::UTF_8
25
25
  end
26
26
 
27
- # :include: railties/README.rdoc
27
+ # :include: ../README.rdoc
28
28
  module Rails
29
29
  extend ActiveSupport::Autoload
30
30
  extend ActiveSupport::Benchmarkable
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: railties
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.3.4
4
+ version: 7.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-04 00:00:00.000000000 Z
11
+ date: 2024-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 7.1.3.4
19
+ version: 7.1.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 7.1.3.4
26
+ version: 7.1.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: actionpack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 7.1.3.4
33
+ version: 7.1.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 7.1.3.4
40
+ version: 7.1.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rackup
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -120,14 +120,14 @@ dependencies:
120
120
  requirements:
121
121
  - - '='
122
122
  - !ruby/object:Gem::Version
123
- version: 7.1.3.4
123
+ version: 7.1.4
124
124
  type: :development
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - '='
129
129
  - !ruby/object:Gem::Version
130
- version: 7.1.3.4
130
+ version: 7.1.4
131
131
  description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
132
132
  email: david@loudthinking.com
133
133
  executables:
@@ -459,10 +459,10 @@ licenses:
459
459
  - MIT
460
460
  metadata:
461
461
  bug_tracker_uri: https://github.com/rails/rails/issues
462
- changelog_uri: https://github.com/rails/rails/blob/v7.1.3.4/railties/CHANGELOG.md
463
- documentation_uri: https://api.rubyonrails.org/v7.1.3.4/
462
+ changelog_uri: https://github.com/rails/rails/blob/v7.1.4/railties/CHANGELOG.md
463
+ documentation_uri: https://api.rubyonrails.org/v7.1.4/
464
464
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
465
- source_code_uri: https://github.com/rails/rails/tree/v7.1.3.4/railties
465
+ source_code_uri: https://github.com/rails/rails/tree/v7.1.4/railties
466
466
  rubygems_mfa_required: 'true'
467
467
  post_install_message:
468
468
  rdoc_options:
@@ -481,7 +481,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
481
481
  - !ruby/object:Gem::Version
482
482
  version: '0'
483
483
  requirements: []
484
- rubygems_version: 3.3.27
484
+ rubygems_version: 3.5.11
485
485
  signing_key:
486
486
  specification_version: 4
487
487
  summary: Tools for creating, working with, and running Rails applications.