Skip to content

Commit 6f8f38d

Browse files
Update dependencies and test with Ruby 4.0
https://www.ruby-lang.org/en/news/2025/12/25/ruby-4-0-0-released/ We need to add `ostruct` as a dev dependency because it doesn't come as a default gem with Ruby 4.0 anymore. Lock minitest < 6 since v6 has some incompatibilities with released versions of Rails that will be fixed in future versions. This is something I didn't run into a few other gems, but SimpleForm did, presumabily because it touches additional areas like AV tests.
1 parent c8a64b5 commit 6f8f38d

File tree

9 files changed

+111
-94
lines changed

9 files changed

+111
-94
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ jobs:
1313
- gemfiles/Gemfile-rails-7-2
1414
- gemfiles/Gemfile-rails-8-0
1515
ruby:
16+
- '4.0'
1617
- '3.4'
1718
- '3.3'
1819
- '3.2'

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* enhancements
2525
* Add Rails 8 support.
2626
- Routes are lazy-loaded by default in test and development environments now so Devise loads them before `Devise.mappings` call. [#5728](https://github.com/heartcombo/devise/pull/5728)
27-
* Add Ruby 3.4 support.
27+
* Add Ruby 3.4 and 4.0 support.
2828
* Reenable Mongoid test suite across all Rails 7+ versions, to ensure we continue supporting it. Changes to dirty tracking to support Mongoid 8.0+. [#5568](https://github.com/heartcombo/devise/pull/5568)
2929
* Password length validator is changed from
3030

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ gem "rails-controller-testing"
1414
gem "responders", "~> 3.1"
1515

1616
group :test do
17+
gem "minitest", "< 6"
1718
gem "mocha", "~> 2.1", require: false
1819
gem "omniauth-facebook"
1920
gem "omniauth-openid"
2021
gem "rexml"
2122
gem "timecop"
2223
gem "webrat"
24+
gem "ostruct"
2325
end
2426

2527
platforms :ruby do

Gemfile.lock

Lines changed: 97 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
GIT
22
remote: https://github.com/mongodb/mongoid.git
3-
revision: 1d3deaa9d028176988205f541ee588621030662a
3+
revision: 4dcdaddea5d88a819c7c0d98ea0e994e13f515fe
44
branch: 9.0-stable
55
specs:
6-
mongoid (9.0.8)
6+
mongoid (9.0.9)
77
activemodel (>= 5.1, < 8.2, != 7.0.0)
88
concurrent-ruby (>= 1.0.5, < 2.0)
99
mongo (>= 2.18.0, < 3.0.0)
@@ -23,66 +23,66 @@ GEM
2323
specs:
2424
action_text-trix (2.1.15)
2525
railties
26-
actioncable (8.1.0)
27-
actionpack (= 8.1.0)
28-
activesupport (= 8.1.0)
26+
actioncable (8.1.1)
27+
actionpack (= 8.1.1)
28+
activesupport (= 8.1.1)
2929
nio4r (~> 2.0)
3030
websocket-driver (>= 0.6.1)
3131
zeitwerk (~> 2.6)
32-
actionmailbox (8.1.0)
33-
actionpack (= 8.1.0)
34-
activejob (= 8.1.0)
35-
activerecord (= 8.1.0)
36-
activestorage (= 8.1.0)
37-
activesupport (= 8.1.0)
32+
actionmailbox (8.1.1)
33+
actionpack (= 8.1.1)
34+
activejob (= 8.1.1)
35+
activerecord (= 8.1.1)
36+
activestorage (= 8.1.1)
37+
activesupport (= 8.1.1)
3838
mail (>= 2.8.0)
39-
actionmailer (8.1.0)
40-
actionpack (= 8.1.0)
41-
actionview (= 8.1.0)
42-
activejob (= 8.1.0)
43-
activesupport (= 8.1.0)
39+
actionmailer (8.1.1)
40+
actionpack (= 8.1.1)
41+
actionview (= 8.1.1)
42+
activejob (= 8.1.1)
43+
activesupport (= 8.1.1)
4444
mail (>= 2.8.0)
4545
rails-dom-testing (~> 2.2)
46-
actionpack (8.1.0)
47-
actionview (= 8.1.0)
48-
activesupport (= 8.1.0)
46+
actionpack (8.1.1)
47+
actionview (= 8.1.1)
48+
activesupport (= 8.1.1)
4949
nokogiri (>= 1.8.5)
5050
rack (>= 2.2.4)
5151
rack-session (>= 1.0.1)
5252
rack-test (>= 0.6.3)
5353
rails-dom-testing (~> 2.2)
5454
rails-html-sanitizer (~> 1.6)
5555
useragent (~> 0.16)
56-
actiontext (8.1.0)
56+
actiontext (8.1.1)
5757
action_text-trix (~> 2.1.15)
58-
actionpack (= 8.1.0)
59-
activerecord (= 8.1.0)
60-
activestorage (= 8.1.0)
61-
activesupport (= 8.1.0)
58+
actionpack (= 8.1.1)
59+
activerecord (= 8.1.1)
60+
activestorage (= 8.1.1)
61+
activesupport (= 8.1.1)
6262
globalid (>= 0.6.0)
6363
nokogiri (>= 1.8.5)
64-
actionview (8.1.0)
65-
activesupport (= 8.1.0)
64+
actionview (8.1.1)
65+
activesupport (= 8.1.1)
6666
builder (~> 3.1)
6767
erubi (~> 1.11)
6868
rails-dom-testing (~> 2.2)
6969
rails-html-sanitizer (~> 1.6)
70-
activejob (8.1.0)
71-
activesupport (= 8.1.0)
70+
activejob (8.1.1)
71+
activesupport (= 8.1.1)
7272
globalid (>= 0.3.6)
73-
activemodel (8.1.0)
74-
activesupport (= 8.1.0)
75-
activerecord (8.1.0)
76-
activemodel (= 8.1.0)
77-
activesupport (= 8.1.0)
73+
activemodel (8.1.1)
74+
activesupport (= 8.1.1)
75+
activerecord (8.1.1)
76+
activemodel (= 8.1.1)
77+
activesupport (= 8.1.1)
7878
timeout (>= 0.4.0)
79-
activestorage (8.1.0)
80-
actionpack (= 8.1.0)
81-
activejob (= 8.1.0)
82-
activerecord (= 8.1.0)
83-
activesupport (= 8.1.0)
79+
activestorage (8.1.1)
80+
actionpack (= 8.1.1)
81+
activejob (= 8.1.1)
82+
activerecord (= 8.1.1)
83+
activesupport (= 8.1.1)
8484
marcel (~> 1.0)
85-
activesupport (8.1.0)
85+
activesupport (8.1.1)
8686
base64
8787
bigdecimal
8888
concurrent-ruby (~> 1.0, >= 1.3.1)
@@ -97,37 +97,38 @@ GEM
9797
uri (>= 0.13.1)
9898
base64 (0.3.0)
9999
bcrypt (3.1.20)
100-
bigdecimal (3.3.1)
100+
bigdecimal (4.0.1)
101101
bson (5.2.0)
102102
builder (3.3.0)
103-
concurrent-ruby (1.3.5)
104-
connection_pool (2.5.4)
103+
concurrent-ruby (1.3.6)
104+
connection_pool (3.0.2)
105105
crass (1.0.6)
106-
date (3.4.1)
106+
date (3.5.1)
107107
drb (2.2.3)
108-
erb (5.1.1)
108+
erb (6.0.1)
109109
erubi (1.13.1)
110110
faraday (2.14.0)
111111
faraday-net_http (>= 2.0, < 3.5)
112112
json
113113
logger
114-
faraday-net_http (3.4.1)
115-
net-http (>= 0.5.0)
114+
faraday-net_http (3.4.2)
115+
net-http (~> 0.5)
116116
globalid (1.3.0)
117117
activesupport (>= 6.1)
118-
hashie (5.0.0)
119-
i18n (1.14.7)
118+
hashie (5.1.0)
119+
logger
120+
i18n (1.14.8)
120121
concurrent-ruby (~> 1.0)
121-
io-console (0.8.1)
122-
irb (1.15.2)
122+
io-console (0.8.2)
123+
irb (1.16.0)
123124
pp (>= 0.6.0)
124125
rdoc (>= 4.0.0)
125126
reline (>= 0.4.2)
126-
json (2.15.1)
127+
json (2.18.0)
127128
jwt (3.1.2)
128129
base64
129130
logger (1.7.0)
130-
loofah (2.24.1)
131+
loofah (2.25.0)
131132
crass (~> 1.0.2)
132133
nokogiri (>= 1.12.0)
133134
mail (2.9.0)
@@ -139,17 +140,17 @@ GEM
139140
marcel (1.1.0)
140141
mini_mime (1.1.5)
141142
mini_portile2 (2.8.9)
142-
minitest (5.26.0)
143-
mocha (2.7.1)
143+
minitest (5.27.0)
144+
mocha (2.8.2)
144145
ruby2_keywords (>= 0.0.5)
145-
mongo (2.21.3)
146+
mongo (2.22.0)
146147
base64
147148
bson (>= 4.14.1, < 6.0.0)
148-
multi_xml (0.7.2)
149-
bigdecimal (~> 3.1)
150-
net-http (0.6.0)
151-
uri
152-
net-imap (0.5.12)
149+
multi_xml (0.8.0)
150+
bigdecimal (>= 3.1, < 5)
151+
net-http (0.9.1)
152+
uri (>= 0.11.1)
153+
net-imap (0.6.2)
153154
date
154155
net-protocol
155156
net-pop (0.1.2)
@@ -158,11 +159,11 @@ GEM
158159
timeout
159160
net-smtp (0.5.1)
160161
net-protocol
161-
nio4r (2.7.4)
162-
nokogiri (1.18.10)
162+
nio4r (2.7.5)
163+
nokogiri (1.19.0)
163164
mini_portile2 (~> 2.8.2)
164165
racc (~> 1.4)
165-
oauth2 (2.0.17)
166+
oauth2 (2.0.18)
166167
faraday (>= 0.17.3, < 4.0)
167168
jwt (>= 1.0, < 4.0)
168169
logger (~> 1.2)
@@ -178,23 +179,24 @@ GEM
178179
omniauth-facebook (10.0.0)
179180
bigdecimal
180181
omniauth-oauth2 (>= 1.2, < 3)
181-
omniauth-oauth2 (1.8.0)
182-
oauth2 (>= 1.4, < 3)
182+
omniauth-oauth2 (1.9.0)
183+
oauth2 (>= 2.0.2, < 3)
183184
omniauth (~> 2.0)
184185
omniauth-openid (2.0.2)
185186
omniauth (>= 1.1)
186187
rack-openid (~> 1.4)
187188
ruby-openid (~> 2.1, >= 2.1.8)
188189
version_gem (~> 1.1, >= 1.1.8)
189190
orm_adapter (0.5.0)
191+
ostruct (0.6.3)
190192
pp (0.6.3)
191193
prettyprint
192194
prettyprint (0.2.0)
193-
psych (5.2.6)
195+
psych (5.3.1)
194196
date
195197
stringio
196198
racc (1.8.1)
197-
rack (3.2.3)
199+
rack (3.2.4)
198200
rack-openid (1.4.2)
199201
rack (>= 1.1.0)
200202
ruby-openid (>= 2.1.8)
@@ -207,22 +209,22 @@ GEM
207209
rack (>= 3.0.0)
208210
rack-test (2.2.0)
209211
rack (>= 1.3)
210-
rackup (2.2.1)
212+
rackup (2.3.1)
211213
rack (>= 3)
212-
rails (8.1.0)
213-
actioncable (= 8.1.0)
214-
actionmailbox (= 8.1.0)
215-
actionmailer (= 8.1.0)
216-
actionpack (= 8.1.0)
217-
actiontext (= 8.1.0)
218-
actionview (= 8.1.0)
219-
activejob (= 8.1.0)
220-
activemodel (= 8.1.0)
221-
activerecord (= 8.1.0)
222-
activestorage (= 8.1.0)
223-
activesupport (= 8.1.0)
214+
rails (8.1.1)
215+
actioncable (= 8.1.1)
216+
actionmailbox (= 8.1.1)
217+
actionmailer (= 8.1.1)
218+
actionpack (= 8.1.1)
219+
actiontext (= 8.1.1)
220+
actionview (= 8.1.1)
221+
activejob (= 8.1.1)
222+
activemodel (= 8.1.1)
223+
activerecord (= 8.1.1)
224+
activestorage (= 8.1.1)
225+
activesupport (= 8.1.1)
224226
bundler (>= 1.15.0)
225-
railties (= 8.1.0)
227+
railties (= 8.1.1)
226228
rails-controller-testing (1.0.5)
227229
actionpack (>= 5.0.1.rc1)
228230
actionview (>= 5.0.1.rc1)
@@ -234,21 +236,21 @@ GEM
234236
rails-html-sanitizer (1.6.2)
235237
loofah (~> 2.21)
236238
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
237-
railties (8.1.0)
238-
actionpack (= 8.1.0)
239-
activesupport (= 8.1.0)
239+
railties (8.1.1)
240+
actionpack (= 8.1.1)
241+
activesupport (= 8.1.1)
240242
irb (~> 1.13)
241243
rackup (>= 1.0.0)
242244
rake (>= 12.2)
243245
thor (~> 1.0, >= 1.2.2)
244246
tsort (>= 0.2)
245247
zeitwerk (~> 2.6)
246-
rake (13.3.0)
247-
rdoc (6.15.0)
248+
rake (13.3.1)
249+
rdoc (7.0.3)
248250
erb
249251
psych (>= 4.0.0)
250252
tsort
251-
reline (0.6.2)
253+
reline (0.6.3)
252254
io-console (~> 0.5)
253255
responders (3.2.0)
254256
actionpack (>= 7.0)
@@ -260,16 +262,16 @@ GEM
260262
snaky_hash (2.0.3)
261263
hashie (>= 0.1.0, < 6)
262264
version_gem (>= 1.1.8, < 3)
263-
sqlite3 (2.7.4)
265+
sqlite3 (2.9.0)
264266
mini_portile2 (~> 2.8.0)
265-
stringio (3.1.7)
267+
stringio (3.2.0)
266268
thor (1.4.0)
267269
timecop (0.9.10)
268-
timeout (0.4.3)
270+
timeout (0.6.0)
269271
tsort (0.2.0)
270272
tzinfo (2.0.6)
271273
concurrent-ruby (~> 1.0)
272-
uri (1.0.4)
274+
uri (1.1.1)
273275
useragent (0.16.11)
274276
version_gem (1.1.9)
275277
warden (1.2.9)
@@ -282,19 +284,21 @@ GEM
282284
base64
283285
websocket-extensions (>= 0.1.0)
284286
websocket-extensions (0.1.5)
285-
zeitwerk (2.7.3)
287+
zeitwerk (2.7.4)
286288

287289
PLATFORMS
288290
ruby
289291

290292
DEPENDENCIES
291293
devise!
294+
minitest (< 6)
292295
mocha (~> 2.1)
293296
mongoid (~> 9.0)!
294297
omniauth
295298
omniauth-facebook
296299
omniauth-oauth2
297300
omniauth-openid
301+
ostruct
298302
rails (~> 8.1.0)
299303
rails-controller-testing
300304
rdoc
@@ -305,4 +309,4 @@ DEPENDENCIES
305309
webrat
306310

307311
BUNDLED WITH
308-
2.6.9
312+
4.0.3

gemfiles/Gemfile-rails-7-0

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ group :test do
1818
gem "timecop"
1919
gem "webrat", "0.7.3", require: false
2020
gem "mocha", "~> 2.1", require: false
21+
gem "minitest", "< 6"
22+
gem "ostruct"
2123
end
2224

2325
platforms :ruby do

0 commit comments

Comments
 (0)