Skip to content

Commit a299a57

Browse files
justin808claude
andcommitted
Add Ruby 2.7-specific lockfiles for full test coverage
Created separate lockfiles for Ruby 2.7 with nokogiri 1.15.x: - gemfiles/base.gemfile.ruby27.lock - gemfiles/propshaft.gemfile.ruby27.lock - gemfiles/shakapacker.gemfile.ruby27.lock - gemfiles/sprockets_3.gemfile.ruby27.lock - gemfiles/sprockets_4.gemfile.ruby27.lock Updated CI workflow test job to: - Copy Ruby 2.7-specific lockfile before bundle install - Add Ruby version to cache key for proper cache separation Regenerated all gemfiles/*.gemfile.lock with Ruby 3.0 to use nokogiri 1.17.2 for Ruby 3.0-3.3 support. This provides full test coverage for all Ruby versions (2.7-3.3) while working around nokogiri version incompatibilities. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5b11172 commit a299a57

11 files changed

+2119
-493
lines changed

.github/workflows/ruby.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,14 @@ jobs:
118118
ruby-version: ${{ matrix.ruby }}
119119
- run: bundle config set --local path 'test/dummy/vendor/bundle'
120120
- run: ./test/bin/create-fake-js-package-managers ${{ matrix.js_package_manager.installer }}
121+
- name: Use Ruby 2.7 specific lockfile
122+
if: matrix.ruby == '2.7'
123+
run: cp gemfiles/${{ matrix.gemfile }}.gemfile.ruby27.lock gemfiles/${{ matrix.gemfile }}.gemfile.lock
121124
- name: Save dummy app ruby gems to cache
122125
uses: actions/cache@v3
123126
with:
124127
path: test/dummy/vendor/bundle
125-
key: dummy-app-gem-cache-${{ hashFiles(format('{0}/gemfiles/{1}.gemfile.lock', github.workspace, matrix.gemfile)) }}
128+
key: dummy-app-gem-cache-${{ matrix.ruby }}-${{ hashFiles(format('{0}/gemfiles/{1}.gemfile.lock', github.workspace, matrix.gemfile)) }}
126129
- name: Install Ruby Gems for dummy app
127130
run: bundle check --path=test/dummy/vendor/bundle || bundle _2.4.9_ install --frozen --path=test/dummy/vendor/bundle --jobs=4 --retry=3
128131
- run: cd test/dummy && yalc add react_ujs && ${{ matrix.js_package_manager.installer }} install

gemfiles/base.gemfile.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ DEPENDENCIES
271271
jbuilder
272272
listen (~> 3.0.0)
273273
minitest-retry
274+
nokogiri (~> 1.17.0)
274275
package_json
275276
pry-byebug (~> 3.8.0)
276277
rails (~> 7.0.x)

gemfiles/base.gemfile.ruby27.lock

Lines changed: 284 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,284 @@
1+
PATH
2+
remote: ..
3+
specs:
4+
react-rails (3.2.1)
5+
babel-transpiler (>= 0.7.0)
6+
connection_pool
7+
execjs
8+
railties (>= 3.2)
9+
tilt
10+
11+
GEM
12+
remote: http://rubygems.org/
13+
specs:
14+
actioncable (7.0.8.1)
15+
actionpack (= 7.0.8.1)
16+
activesupport (= 7.0.8.1)
17+
nio4r (~> 2.0)
18+
websocket-driver (>= 0.6.1)
19+
actionmailbox (7.0.8.1)
20+
actionpack (= 7.0.8.1)
21+
activejob (= 7.0.8.1)
22+
activerecord (= 7.0.8.1)
23+
activestorage (= 7.0.8.1)
24+
activesupport (= 7.0.8.1)
25+
mail (>= 2.7.1)
26+
net-imap
27+
net-pop
28+
net-smtp
29+
actionmailer (7.0.8.1)
30+
actionpack (= 7.0.8.1)
31+
actionview (= 7.0.8.1)
32+
activejob (= 7.0.8.1)
33+
activesupport (= 7.0.8.1)
34+
mail (~> 2.5, >= 2.5.4)
35+
net-imap
36+
net-pop
37+
net-smtp
38+
rails-dom-testing (~> 2.0)
39+
actionpack (7.0.8.1)
40+
actionview (= 7.0.8.1)
41+
activesupport (= 7.0.8.1)
42+
rack (~> 2.0, >= 2.2.4)
43+
rack-test (>= 0.6.3)
44+
rails-dom-testing (~> 2.0)
45+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
46+
actiontext (7.0.8.1)
47+
actionpack (= 7.0.8.1)
48+
activerecord (= 7.0.8.1)
49+
activestorage (= 7.0.8.1)
50+
activesupport (= 7.0.8.1)
51+
globalid (>= 0.6.0)
52+
nokogiri (>= 1.8.5)
53+
actionview (7.0.8.1)
54+
activesupport (= 7.0.8.1)
55+
builder (~> 3.1)
56+
erubi (~> 1.4)
57+
rails-dom-testing (~> 2.0)
58+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
59+
activejob (7.0.8.1)
60+
activesupport (= 7.0.8.1)
61+
globalid (>= 0.3.6)
62+
activemodel (7.0.8.1)
63+
activesupport (= 7.0.8.1)
64+
activerecord (7.0.8.1)
65+
activemodel (= 7.0.8.1)
66+
activesupport (= 7.0.8.1)
67+
activestorage (7.0.8.1)
68+
actionpack (= 7.0.8.1)
69+
activejob (= 7.0.8.1)
70+
activerecord (= 7.0.8.1)
71+
activesupport (= 7.0.8.1)
72+
marcel (~> 1.0)
73+
mini_mime (>= 1.1.0)
74+
activesupport (7.0.8.1)
75+
concurrent-ruby (~> 1.0, >= 1.0.2)
76+
i18n (>= 1.6, < 2)
77+
minitest (>= 5.1)
78+
tzinfo (~> 2.0)
79+
addressable (2.8.1)
80+
public_suffix (>= 2.0.2, < 6.0)
81+
appraisal (2.4.1)
82+
bundler
83+
rake
84+
thor (>= 0.14.0)
85+
babel-source (5.8.35)
86+
babel-transpiler (0.7.0)
87+
babel-source (>= 4.0, < 6)
88+
execjs (~> 2.0)
89+
builder (3.2.4)
90+
byebug (11.1.3)
91+
capybara (3.40.0)
92+
addressable
93+
matrix
94+
mini_mime (>= 0.1.3)
95+
nokogiri (~> 1.11)
96+
rack (>= 1.6.0)
97+
rack-test (>= 0.6.3)
98+
regexp_parser (>= 1.5, < 3.0)
99+
xpath (~> 3.2)
100+
codeclimate-test-reporter (1.0.9)
101+
simplecov (<= 0.13)
102+
coderay (1.1.3)
103+
coffee-rails (5.0.0)
104+
coffee-script (>= 2.2.0)
105+
railties (>= 5.2.0)
106+
coffee-script (2.4.1)
107+
coffee-script-source
108+
execjs
109+
coffee-script-source (1.12.2)
110+
concurrent-ruby (1.2.2)
111+
connection_pool (2.4.0)
112+
crass (1.0.6)
113+
date (3.3.4)
114+
docile (1.1.5)
115+
erubi (1.12.0)
116+
es5-shim-rails (4.0.1)
117+
actionpack (>= 3.1)
118+
railties (>= 3.1)
119+
execjs (2.8.1)
120+
ffi (1.15.5)
121+
formatador (1.1.0)
122+
gem-release (2.2.2)
123+
globalid (1.2.1)
124+
activesupport (>= 6.1)
125+
guard (2.18.0)
126+
formatador (>= 0.2.4)
127+
listen (>= 2.7, < 4.0)
128+
lumberjack (>= 1.0.12, < 2.0)
129+
nenv (~> 0.1)
130+
notiffany (~> 0.0)
131+
pry (>= 0.13.0)
132+
shellany (~> 0.0)
133+
thor (>= 0.18.1)
134+
guard-compat (1.2.1)
135+
guard-minitest (2.4.6)
136+
guard-compat (~> 1.2)
137+
minitest (>= 3.0)
138+
i18n (1.13.0)
139+
concurrent-ruby (~> 1.0)
140+
jbuilder (2.11.5)
141+
actionview (>= 5.0.0)
142+
activesupport (>= 5.0.0)
143+
json (2.6.3)
144+
listen (3.0.8)
145+
rb-fsevent (~> 0.9, >= 0.9.4)
146+
rb-inotify (~> 0.9, >= 0.9.7)
147+
loofah (2.21.1)
148+
crass (~> 1.0.2)
149+
nokogiri (>= 1.5.9)
150+
lumberjack (1.2.8)
151+
mail (2.8.1)
152+
mini_mime (>= 0.1.1)
153+
net-imap
154+
net-pop
155+
net-smtp
156+
marcel (1.0.4)
157+
matrix (0.4.2)
158+
method_source (1.0.0)
159+
mini_mime (1.1.2)
160+
minitest (5.18.0)
161+
minitest-retry (0.2.2)
162+
minitest (>= 5.0)
163+
nenv (0.3.0)
164+
net-imap (0.4.11)
165+
date
166+
net-protocol
167+
net-pop (0.1.2)
168+
net-protocol
169+
net-protocol (0.2.2)
170+
timeout
171+
net-smtp (0.5.0)
172+
net-protocol
173+
nio4r (2.7.3)
174+
racc (~> 1.4)
175+
nokogiri (1.15.7-arm64-darwin)
176+
racc (~> 1.4)
177+
nokogiri (1.15.7-x86_64-darwin)
178+
racc (~> 1.4)
179+
nokogiri (1.15.7-x86_64-linux)
180+
racc (~> 1.4)
181+
notiffany (0.1.3)
182+
nenv (~> 0.1)
183+
shellany (~> 0.0)
184+
package_json (0.1.0)
185+
pry (0.14.2)
186+
coderay (~> 1.1)
187+
method_source (~> 1.0)
188+
pry-byebug (3.8.0)
189+
byebug (~> 11.0)
190+
pry (~> 0.10)
191+
public_suffix (5.0.1)
192+
racc (1.6.2)
193+
rack (2.2.7)
194+
rack-test (2.1.0)
195+
rack (>= 1.3)
196+
rails (7.0.8.1)
197+
actioncable (= 7.0.8.1)
198+
actionmailbox (= 7.0.8.1)
199+
actionmailer (= 7.0.8.1)
200+
actionpack (= 7.0.8.1)
201+
actiontext (= 7.0.8.1)
202+
actionview (= 7.0.8.1)
203+
activejob (= 7.0.8.1)
204+
activemodel (= 7.0.8.1)
205+
activerecord (= 7.0.8.1)
206+
activestorage (= 7.0.8.1)
207+
activesupport (= 7.0.8.1)
208+
bundler (>= 1.15.0)
209+
railties (= 7.0.8.1)
210+
rails-dom-testing (2.0.3)
211+
activesupport (>= 4.2.0)
212+
nokogiri (>= 1.6)
213+
rails-html-sanitizer (1.5.0)
214+
loofah (~> 2.19, >= 2.19.1)
215+
railties (7.0.8.1)
216+
actionpack (= 7.0.8.1)
217+
activesupport (= 7.0.8.1)
218+
method_source
219+
rake (>= 12.2)
220+
thor (~> 1.0)
221+
zeitwerk (~> 2.5)
222+
rake (13.0.6)
223+
rb-fsevent (0.11.2)
224+
rb-inotify (0.10.1)
225+
ffi (~> 1.0)
226+
regexp_parser (2.7.0)
227+
rexml (3.2.6)
228+
rubyzip (2.3.2)
229+
selenium-webdriver (4.9.0)
230+
rexml (~> 3.2, >= 3.2.5)
231+
rubyzip (>= 1.2.2, < 3.0)
232+
websocket (~> 1.0)
233+
shellany (0.0.1)
234+
simplecov (0.13.0)
235+
docile (~> 1.1.0)
236+
json (>= 1.8, < 3)
237+
simplecov-html (~> 0.10.0)
238+
simplecov-html (0.10.2)
239+
test-unit (2.5.5)
240+
thor (1.2.2)
241+
tilt (2.2.0)
242+
timeout (0.4.1)
243+
turbo-rails (2.0.12)
244+
actionpack (>= 6.0.0)
245+
railties (>= 6.0.0)
246+
tzinfo (2.0.6)
247+
concurrent-ruby (~> 1.0)
248+
websocket (1.2.10)
249+
websocket-driver (0.7.6)
250+
websocket-extensions (>= 0.1.0)
251+
websocket-extensions (0.1.5)
252+
xpath (3.2.0)
253+
nokogiri (~> 1.8)
254+
zeitwerk (2.6.7)
255+
256+
PLATFORMS
257+
arm64-darwin-24
258+
x86_64-darwin-20
259+
x86_64-linux
260+
261+
DEPENDENCIES
262+
appraisal
263+
bundler (= 2.4.9)
264+
capybara
265+
codeclimate-test-reporter
266+
coffee-rails
267+
es5-shim-rails (>= 2.0.5)
268+
gem-release
269+
guard
270+
guard-minitest
271+
jbuilder
272+
listen (~> 3.0.0)
273+
minitest-retry
274+
nokogiri (~> 1.15.0)
275+
package_json
276+
pry-byebug (~> 3.8.0)
277+
rails (~> 7.0.x)
278+
react-rails!
279+
selenium-webdriver
280+
test-unit (~> 2.5)
281+
turbo-rails
282+
283+
BUNDLED WITH
284+
2.4.9

0 commit comments

Comments
 (0)