railties 8.0.0.1 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/minitest/rails_plugin.rb +1 -1
- data/lib/rails/application/configuration.rb +1 -1
- data/lib/rails/commands/app/update_command.rb +4 -4
- data/lib/rails/commands/console/irb_console.rb +0 -11
- data/lib/rails/gem_version.rb +2 -2
- data/lib/rails/generators/app_base.rb +8 -0
- data/lib/rails/generators/rails/app/templates/dockerignore.tt +6 -0
- data/lib/rails/generators/rails/app/templates/github/ci.yml.tt +4 -4
- data/lib/rails/generators/rails/authentication/templates/app/controllers/concerns/authentication.rb.tt +1 -4
- data/lib/rails/generators/rails/plugin/templates/github/ci.yml.tt +1 -1
- data/lib/rails/test_unit/test_parser.rb +18 -15
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adc7a54226a0d457897877951d6e57773a0410509532712c3f23e4a327eba22b
|
4
|
+
data.tar.gz: 9a4fdb1a2b8d77039f670694c6639162577cf832cd92653fb4f95a14c9d16980
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9135f6974186b7c1e6fb473416bf5c5c63affa34fecc4e2bd9714d9690e68a68061a1229d34fab7379eae97b110985543e2dff22cc111160276bdda16dc1b3e
|
7
|
+
data.tar.gz: '0354482884c4a3f5d8959603d602b2a1064409e825fab90cdad52b81f2db32bcdacc4f2697ffd679bf37d77adc6b6f47f7da456d48390a19b6ec5ce049448bf6'
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
## Rails 8.0.1 (December 13, 2024) ##
|
2
|
+
|
3
|
+
* Skip generation system tests related code for CI when `--skip-system-test` is given.
|
4
|
+
|
5
|
+
*fatkodima*
|
6
|
+
|
7
|
+
* Don't add bin/thrust if thruster is not in Gemfile.
|
8
|
+
|
9
|
+
*Étienne Barrié*
|
10
|
+
|
11
|
+
* Don't install a package for system test when applications don't use it.
|
12
|
+
|
13
|
+
*y-yagi*
|
14
|
+
|
15
|
+
|
1
16
|
## Rails 8.0.0.1 (December 10, 2024) ##
|
2
17
|
|
3
18
|
* No changes.
|
@@ -12,6 +12,9 @@ module Rails
|
|
12
12
|
|
13
13
|
desc "update", "Update configs and some other initially generated files (or use just update:configs or update:bin)"
|
14
14
|
def perform
|
15
|
+
require_application!
|
16
|
+
Rails.application.deprecators.silenced = true
|
17
|
+
|
15
18
|
configs
|
16
19
|
bin
|
17
20
|
public_directory
|
@@ -21,26 +24,22 @@ module Rails
|
|
21
24
|
|
22
25
|
desc "configs", "Update config files in the application config/ directory", hide: true
|
23
26
|
def configs
|
24
|
-
require_application!
|
25
27
|
app_generator.create_boot_file
|
26
28
|
app_generator.update_config_files
|
27
29
|
end
|
28
30
|
|
29
31
|
desc "bin", "Add or update executables in the application bin/ directory", hide: true
|
30
32
|
def bin
|
31
|
-
require_application!
|
32
33
|
app_generator.update_bin_files
|
33
34
|
end
|
34
35
|
|
35
36
|
desc "public_directory", "Add or update files in the application public/ directory", hide: true
|
36
37
|
def public_directory
|
37
|
-
require_application!
|
38
38
|
app_generator.create_public_files
|
39
39
|
end
|
40
40
|
|
41
41
|
desc "active_storage", "Run the active_storage:update command", hide: true
|
42
42
|
def active_storage
|
43
|
-
require_application!
|
44
43
|
app_generator.update_active_storage
|
45
44
|
end
|
46
45
|
|
@@ -71,6 +70,7 @@ module Rails
|
|
71
70
|
skip_action_cable: !defined?(ActionCable::Engine),
|
72
71
|
skip_brakeman: skip_gem?("brakeman"),
|
73
72
|
skip_rubocop: skip_gem?("rubocop"),
|
73
|
+
skip_thruster: skip_gem?("thruster"),
|
74
74
|
skip_test: !defined?(Rails::TestUnitRailtie),
|
75
75
|
skip_system_test: Rails.application.config.generators.system_tests.nil?,
|
76
76
|
skip_asset_pipeline: asset_pipeline.nil?,
|
@@ -59,22 +59,11 @@ module Rails
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
-
class ReloadCommand < IRB::Command::Base
|
63
|
-
category "Rails console"
|
64
|
-
description "Reloads the Rails application."
|
65
|
-
|
66
|
-
def execute(*)
|
67
|
-
puts "Reloading..."
|
68
|
-
Rails.application.reloader.reload!
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
62
|
IRB::HelperMethod.register(:helper, ControllerHelper)
|
73
63
|
IRB::HelperMethod.register(:controller, ControllerInstance)
|
74
64
|
IRB::HelperMethod.register(:new_session, NewSession)
|
75
65
|
IRB::HelperMethod.register(:app, AppInstance)
|
76
66
|
IRB::HelperMethod.register(:reload!, ReloadHelper)
|
77
|
-
IRB::Command.register(:reload!, ReloadCommand)
|
78
67
|
|
79
68
|
class IRBConsole
|
80
69
|
def initialize(app)
|
data/lib/rails/gem_version.rb
CHANGED
@@ -609,6 +609,14 @@ module Rails
|
|
609
609
|
packages.compact.sort
|
610
610
|
end
|
611
611
|
|
612
|
+
def ci_packages
|
613
|
+
if depends_on_system_test?
|
614
|
+
dockerfile_build_packages << "google-chrome-stable"
|
615
|
+
else
|
616
|
+
dockerfile_build_packages
|
617
|
+
end
|
618
|
+
end
|
619
|
+
|
612
620
|
def css_gemfile_entry
|
613
621
|
return if options[:api]
|
614
622
|
return unless options[:css]
|
@@ -24,7 +24,7 @@ jobs:
|
|
24
24
|
run: bin/brakeman --no-pager
|
25
25
|
|
26
26
|
<% end -%>
|
27
|
-
<%- if options[:javascript] == "importmap"
|
27
|
+
<%- if options[:javascript] == "importmap" && !options[:api] && !options[:skip_javascript] -%>
|
28
28
|
scan_js:
|
29
29
|
runs-on: ubuntu-latest
|
30
30
|
|
@@ -100,7 +100,7 @@ jobs:
|
|
100
100
|
<%- end -%>
|
101
101
|
steps:
|
102
102
|
- name: Install packages
|
103
|
-
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y
|
103
|
+
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y <%= ci_packages.join(" ") %>
|
104
104
|
|
105
105
|
- name: Checkout code
|
106
106
|
uses: actions/checkout@v4
|
@@ -126,12 +126,12 @@ jobs:
|
|
126
126
|
DATABASE_URL: postgres://postgres:postgres@localhost:5432
|
127
127
|
<%- end -%>
|
128
128
|
# REDIS_URL: redis://localhost:6379/0
|
129
|
-
<%- if options[:api] -%>
|
129
|
+
<%- if options[:api] || options[:skip_system_test] -%>
|
130
130
|
run: bin/rails db:test:prepare test
|
131
131
|
<%- else -%>
|
132
132
|
run: bin/rails db:test:prepare test test:system
|
133
133
|
<%- end -%>
|
134
|
-
<%- unless options[:api] -%>
|
134
|
+
<%- unless options[:api] || options[:skip_system_test] -%>
|
135
135
|
|
136
136
|
- name: Keep screenshots from failed system tests
|
137
137
|
uses: actions/upload-artifact@v4
|
@@ -21,16 +21,14 @@ module Authentication
|
|
21
21
|
resume_session || request_authentication
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
24
|
def resume_session
|
26
25
|
Current.session ||= find_session_by_cookie
|
27
26
|
end
|
28
27
|
|
29
28
|
def find_session_by_cookie
|
30
|
-
Session.find_by(id: cookies.signed[:session_id])
|
29
|
+
Session.find_by(id: cookies.signed[:session_id]) if cookies.signed[:session_id]
|
31
30
|
end
|
32
31
|
|
33
|
-
|
34
32
|
def request_authentication
|
35
33
|
session[:return_to_after_authenticating] = request.url
|
36
34
|
redirect_to new_session_path
|
@@ -40,7 +38,6 @@ module Authentication
|
|
40
38
|
session.delete(:return_to_after_authenticating) || root_url
|
41
39
|
end
|
42
40
|
|
43
|
-
|
44
41
|
def start_new_session_for(user)
|
45
42
|
user.sessions.create!(user_agent: request.user_agent, ip_address: request.remote_ip).tap do |session|
|
46
43
|
Current.session = session
|
@@ -64,7 +64,7 @@ jobs:
|
|
64
64
|
<%- end -%>
|
65
65
|
steps:
|
66
66
|
- name: Install packages
|
67
|
-
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y
|
67
|
+
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y <%= ci_packages.join(" ") %>
|
68
68
|
|
69
69
|
- name: Checkout code
|
70
70
|
uses: actions/checkout@v4
|
@@ -13,29 +13,32 @@ if defined?(Prism)
|
|
13
13
|
# Parse a test file to extract the line ranges of all tests in both
|
14
14
|
# method-style (def test_foo) and declarative-style (test "foo" do)
|
15
15
|
module TestParser
|
16
|
+
@begins_to_ends = {}
|
16
17
|
# Helper to translate a method object into the path and line range where
|
17
18
|
# the method was defined.
|
18
19
|
def self.definition_for(method)
|
19
20
|
filepath, start_line = method.source_location
|
20
|
-
|
21
|
+
@begins_to_ends[filepath] ||= ranges(filepath)
|
22
|
+
return unless end_line = @begins_to_ends[filepath][start_line]
|
23
|
+
[filepath, start_line..end_line]
|
24
|
+
end
|
21
25
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
private
|
27
|
+
def self.ranges(filepath)
|
28
|
+
queue = [Prism.parse_file(filepath).value]
|
29
|
+
begins_to_ends = {}
|
30
|
+
while (node = queue.shift)
|
31
|
+
case node.type
|
32
|
+
when :def_node
|
33
|
+
begins_to_ends[node.location.start_line] = node.location.end_line
|
34
|
+
when :call_node
|
35
|
+
begins_to_ends[node.location.start_line] = node.location.end_line
|
27
36
|
end
|
28
|
-
when :call_node
|
29
|
-
if node.location.start_line == start_line
|
30
|
-
return [filepath, start_line..node.location.end_line]
|
31
|
-
end
|
32
|
-
end
|
33
37
|
|
34
|
-
|
38
|
+
queue.concat(node.compact_child_nodes)
|
39
|
+
end
|
40
|
+
begins_to_ends
|
35
41
|
end
|
36
|
-
|
37
|
-
nil
|
38
|
-
end
|
39
42
|
end
|
40
43
|
end
|
41
44
|
end
|
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: 8.0.
|
4
|
+
version: 8.0.1
|
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-12-
|
11
|
+
date: 2024-12-13 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: 8.0.
|
19
|
+
version: 8.0.1
|
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: 8.0.
|
26
|
+
version: 8.0.1
|
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: 8.0.
|
33
|
+
version: 8.0.1
|
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: 8.0.
|
40
|
+
version: 8.0.1
|
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: 8.0.
|
123
|
+
version: 8.0.1
|
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: 8.0.
|
130
|
+
version: 8.0.1
|
131
131
|
description: 'Rails internals: application bootup, plugins, generators, and rake tasks.'
|
132
132
|
email: david@loudthinking.com
|
133
133
|
executables:
|
@@ -491,10 +491,10 @@ licenses:
|
|
491
491
|
- MIT
|
492
492
|
metadata:
|
493
493
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
494
|
-
changelog_uri: https://github.com/rails/rails/blob/v8.0.
|
495
|
-
documentation_uri: https://api.rubyonrails.org/v8.0.
|
494
|
+
changelog_uri: https://github.com/rails/rails/blob/v8.0.1/railties/CHANGELOG.md
|
495
|
+
documentation_uri: https://api.rubyonrails.org/v8.0.1/
|
496
496
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
497
|
-
source_code_uri: https://github.com/rails/rails/tree/v8.0.
|
497
|
+
source_code_uri: https://github.com/rails/rails/tree/v8.0.1/railties
|
498
498
|
rubygems_mfa_required: 'true'
|
499
499
|
post_install_message:
|
500
500
|
rdoc_options:
|