departure 6.7.0 → 7.0.0

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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test.yml +5 -14
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +1 -1
  5. data/Appraisals +4 -24
  6. data/CHANGELOG.md +15 -1
  7. data/Gemfile +6 -1
  8. data/Gemfile.lock +108 -86
  9. data/README.md +8 -0
  10. data/Rakefile +9 -0
  11. data/bin/rails +24 -0
  12. data/departure.gemspec +3 -3
  13. data/gemfiles/rails_7_0.gemfile +8 -2
  14. data/gemfiles/rails_7_0.gemfile.lock +182 -131
  15. data/gemfiles/rails_7_1.gemfile +7 -2
  16. data/gemfiles/rails_7_1.gemfile.lock +156 -140
  17. data/gemfiles/{ruby_2.7_rails_6_0.gemfile → rails_7_2.gemfile} +7 -3
  18. data/gemfiles/rails_7_2.gemfile.lock +288 -0
  19. data/gemfiles/{rails_6_0.gemfile → rails_8_0.gemfile} +6 -2
  20. data/gemfiles/rails_8_0.gemfile.lock +285 -0
  21. data/lib/active_record/connection_adapters/for_alter.rb +4 -17
  22. data/lib/active_record/connection_adapters/patch_connection_handling.rb +18 -0
  23. data/lib/active_record/connection_adapters/percona_adapter.rb +9 -56
  24. data/lib/active_record/connection_adapters/rails_7_2_departure_adapter.rb +215 -0
  25. data/lib/active_record/connection_adapters/rails_8_0_departure_adapter.rb +293 -0
  26. data/lib/departure/command.rb +6 -2
  27. data/lib/departure/configuration.rb +2 -1
  28. data/lib/departure/migration.rb +1 -5
  29. data/lib/departure/rails_adapter.rb +146 -0
  30. data/lib/departure/rails_patches/active_record_migrator_with_advisory_lock_patch.rb +25 -0
  31. data/lib/departure/runner.rb +24 -4
  32. data/lib/departure/version.rb +1 -1
  33. data/lib/departure.rb +2 -5
  34. data/lib/lhm/column_with_sql.rb +1 -8
  35. data/test_database.rb +2 -6
  36. metadata +18 -47
  37. data/gemfiles/rails_6_0.gemfile.lock +0 -238
  38. data/gemfiles/rails_6_1.gemfile +0 -10
  39. data/gemfiles/rails_6_1.gemfile.lock +0 -241
  40. data/gemfiles/ruby_2.7_rails_6_0.gemfile.lock +0 -239
  41. data/gemfiles/ruby_2.7_rails_6_1.gemfile +0 -11
  42. data/gemfiles/ruby_2.7_rails_6_1.gemfile.lock +0 -242
  43. data/gemfiles/ruby_2.7_rails_7_0.gemfile +0 -11
  44. data/gemfiles/ruby_2.7_rails_7_0.gemfile.lock +0 -241
  45. data/gemfiles/ruby_2.7_rails_7_1.gemfile +0 -11
  46. data/gemfiles/ruby_2.7_rails_7_1.gemfile.lock +0 -275
@@ -1,104 +1,123 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- departure (6.7.0)
5
- activerecord (>= 6.0.0, < 7.2.0, != 7.0.0)
4
+ departure (6.8.0)
5
+ activerecord (>= 7.0.1)
6
6
  mysql2 (>= 0.4.0, < 0.6.0)
7
- railties (>= 6.0.0, < 7.2.0, != 7.0.0)
7
+ railties (>= 7.0.1)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- actioncable (7.0.8)
13
- actionpack (= 7.0.8)
14
- activesupport (= 7.0.8)
12
+ actioncable (8.0.2)
13
+ actionpack (= 8.0.2)
14
+ activesupport (= 8.0.2)
15
15
  nio4r (~> 2.0)
16
16
  websocket-driver (>= 0.6.1)
17
- actionmailbox (7.0.8)
18
- actionpack (= 7.0.8)
19
- activejob (= 7.0.8)
20
- activerecord (= 7.0.8)
21
- activestorage (= 7.0.8)
22
- activesupport (= 7.0.8)
23
- mail (>= 2.7.1)
24
- net-imap
25
- net-pop
26
- net-smtp
27
- actionmailer (7.0.8)
28
- actionpack (= 7.0.8)
29
- actionview (= 7.0.8)
30
- activejob (= 7.0.8)
31
- activesupport (= 7.0.8)
32
- mail (~> 2.5, >= 2.5.4)
33
- net-imap
34
- net-pop
35
- net-smtp
36
- rails-dom-testing (~> 2.0)
37
- actionpack (7.0.8)
38
- actionview (= 7.0.8)
39
- activesupport (= 7.0.8)
40
- rack (~> 2.0, >= 2.2.4)
17
+ zeitwerk (~> 2.6)
18
+ actionmailbox (8.0.2)
19
+ actionpack (= 8.0.2)
20
+ activejob (= 8.0.2)
21
+ activerecord (= 8.0.2)
22
+ activestorage (= 8.0.2)
23
+ activesupport (= 8.0.2)
24
+ mail (>= 2.8.0)
25
+ actionmailer (8.0.2)
26
+ actionpack (= 8.0.2)
27
+ actionview (= 8.0.2)
28
+ activejob (= 8.0.2)
29
+ activesupport (= 8.0.2)
30
+ mail (>= 2.8.0)
31
+ rails-dom-testing (~> 2.2)
32
+ actionpack (8.0.2)
33
+ actionview (= 8.0.2)
34
+ activesupport (= 8.0.2)
35
+ nokogiri (>= 1.8.5)
36
+ rack (>= 2.2.4)
37
+ rack-session (>= 1.0.1)
41
38
  rack-test (>= 0.6.3)
42
- rails-dom-testing (~> 2.0)
43
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
44
- actiontext (7.0.8)
45
- actionpack (= 7.0.8)
46
- activerecord (= 7.0.8)
47
- activestorage (= 7.0.8)
48
- activesupport (= 7.0.8)
39
+ rails-dom-testing (~> 2.2)
40
+ rails-html-sanitizer (~> 1.6)
41
+ useragent (~> 0.16)
42
+ actiontext (8.0.2)
43
+ actionpack (= 8.0.2)
44
+ activerecord (= 8.0.2)
45
+ activestorage (= 8.0.2)
46
+ activesupport (= 8.0.2)
49
47
  globalid (>= 0.6.0)
50
48
  nokogiri (>= 1.8.5)
51
- actionview (7.0.8)
52
- activesupport (= 7.0.8)
49
+ actionview (8.0.2)
50
+ activesupport (= 8.0.2)
53
51
  builder (~> 3.1)
54
- erubi (~> 1.4)
55
- rails-dom-testing (~> 2.0)
56
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
57
- activejob (7.0.8)
58
- activesupport (= 7.0.8)
52
+ erubi (~> 1.11)
53
+ rails-dom-testing (~> 2.2)
54
+ rails-html-sanitizer (~> 1.6)
55
+ activejob (8.0.2)
56
+ activesupport (= 8.0.2)
59
57
  globalid (>= 0.3.6)
60
- activemodel (7.0.8)
61
- activesupport (= 7.0.8)
62
- activerecord (7.0.8)
63
- activemodel (= 7.0.8)
64
- activesupport (= 7.0.8)
65
- activestorage (7.0.8)
66
- actionpack (= 7.0.8)
67
- activejob (= 7.0.8)
68
- activerecord (= 7.0.8)
69
- activesupport (= 7.0.8)
58
+ activemodel (8.0.2)
59
+ activesupport (= 8.0.2)
60
+ activerecord (8.0.2)
61
+ activemodel (= 8.0.2)
62
+ activesupport (= 8.0.2)
63
+ timeout (>= 0.4.0)
64
+ activestorage (8.0.2)
65
+ actionpack (= 8.0.2)
66
+ activejob (= 8.0.2)
67
+ activerecord (= 8.0.2)
68
+ activesupport (= 8.0.2)
70
69
  marcel (~> 1.0)
71
- mini_mime (>= 1.1.0)
72
- activesupport (7.0.8)
73
- concurrent-ruby (~> 1.0, >= 1.0.2)
70
+ activesupport (8.0.2)
71
+ base64
72
+ benchmark (>= 0.3)
73
+ bigdecimal
74
+ concurrent-ruby (~> 1.0, >= 1.3.1)
75
+ connection_pool (>= 2.2.5)
76
+ drb
74
77
  i18n (>= 1.6, < 2)
78
+ logger (>= 1.4.2)
75
79
  minitest (>= 5.1)
76
- tzinfo (~> 2.0)
80
+ securerandom (>= 0.3)
81
+ tzinfo (~> 2.0, >= 2.0.5)
82
+ uri (>= 0.13.1)
77
83
  appraisal (2.4.1)
78
84
  bundler
79
85
  rake
80
86
  thor (>= 0.14.0)
81
- ast (2.4.2)
82
- builder (3.2.4)
83
- byebug (11.1.3)
87
+ ast (2.4.3)
88
+ base64 (0.2.0)
89
+ benchmark (0.4.0)
90
+ bigdecimal (3.1.9)
91
+ builder (3.3.0)
92
+ byebug (12.0.0)
84
93
  climate_control (0.0.4)
85
94
  activesupport (>= 3.0)
86
95
  codeclimate-test-reporter (1.0.9)
87
96
  simplecov (<= 0.13)
88
97
  coderay (1.1.3)
89
- concurrent-ruby (1.2.3)
98
+ concurrent-ruby (1.3.5)
99
+ connection_pool (2.5.0)
90
100
  crass (1.0.6)
91
- date (3.3.4)
92
- diff-lcs (1.5.1)
101
+ date (3.4.1)
102
+ diff-lcs (1.6.1)
93
103
  docile (1.1.5)
94
- erubi (1.12.0)
104
+ drb (2.2.1)
105
+ erubi (1.13.1)
95
106
  globalid (1.2.1)
96
107
  activesupport (>= 6.1)
97
- i18n (1.14.1)
108
+ i18n (1.14.7)
98
109
  concurrent-ruby (~> 1.0)
99
- json (2.7.1)
100
- language_server-protocol (3.17.0.3)
101
- loofah (2.22.0)
110
+ io-console (0.8.0)
111
+ irb (1.15.1)
112
+ pp (>= 0.6.0)
113
+ rdoc (>= 4.0.0)
114
+ reline (>= 0.4.2)
115
+ json (2.10.2)
116
+ language_server-protocol (3.17.0.4)
117
+ lhm (2.2.0)
118
+ lint_roller (1.1.0)
119
+ logger (1.7.0)
120
+ loofah (2.24.0)
102
121
  crass (~> 1.0.2)
103
122
  nokogiri (>= 1.12.0)
104
123
  mail (2.8.1)
@@ -106,135 +125,167 @@ GEM
106
125
  net-imap
107
126
  net-pop
108
127
  net-smtp
109
- marcel (1.0.2)
110
- method_source (1.0.0)
128
+ marcel (1.0.4)
129
+ method_source (1.1.0)
111
130
  mini_mime (1.1.5)
112
- minitest (5.22.2)
131
+ minitest (5.25.5)
132
+ mutex_m (0.3.0)
113
133
  mysql2 (0.5.6)
114
- net-imap (0.4.10)
134
+ net-imap (0.5.6)
115
135
  date
116
136
  net-protocol
117
137
  net-pop (0.1.2)
118
138
  net-protocol
119
139
  net-protocol (0.2.2)
120
140
  timeout
121
- net-smtp (0.4.0.1)
141
+ net-smtp (0.5.1)
122
142
  net-protocol
123
- nio4r (2.7.0)
124
- nokogiri (1.16.2-arm64-darwin)
143
+ nio4r (2.7.4)
144
+ nokogiri (1.18.6-arm64-darwin)
125
145
  racc (~> 1.4)
126
- nokogiri (1.16.2-x86_64-linux)
146
+ nokogiri (1.18.6-x86_64-linux-gnu)
127
147
  racc (~> 1.4)
128
- parallel (1.24.0)
129
- parser (3.3.0.5)
148
+ parallel (1.26.3)
149
+ parser (3.3.7.4)
130
150
  ast (~> 2.4.1)
131
151
  racc
132
- pry (0.14.2)
152
+ pp (0.6.2)
153
+ prettyprint
154
+ prettyprint (0.2.0)
155
+ prism (1.4.0)
156
+ pry (0.15.2)
133
157
  coderay (~> 1.1)
134
158
  method_source (~> 1.0)
135
- pry-byebug (3.10.1)
136
- byebug (~> 11.0)
137
- pry (>= 0.13, < 0.15)
138
- racc (1.7.3)
139
- rack (2.2.8)
140
- rack-test (2.1.0)
159
+ pry-byebug (3.11.0)
160
+ byebug (~> 12.0)
161
+ pry (>= 0.13, < 0.16)
162
+ psych (5.2.3)
163
+ date
164
+ stringio
165
+ racc (1.8.1)
166
+ rack (3.1.12)
167
+ rack-session (2.1.0)
168
+ base64 (>= 0.1.0)
169
+ rack (>= 3.0.0)
170
+ rack-test (2.2.0)
141
171
  rack (>= 1.3)
142
- rails (7.0.8)
143
- actioncable (= 7.0.8)
144
- actionmailbox (= 7.0.8)
145
- actionmailer (= 7.0.8)
146
- actionpack (= 7.0.8)
147
- actiontext (= 7.0.8)
148
- actionview (= 7.0.8)
149
- activejob (= 7.0.8)
150
- activemodel (= 7.0.8)
151
- activerecord (= 7.0.8)
152
- activestorage (= 7.0.8)
153
- activesupport (= 7.0.8)
172
+ rackup (2.2.1)
173
+ rack (>= 3)
174
+ rails (8.0.2)
175
+ actioncable (= 8.0.2)
176
+ actionmailbox (= 8.0.2)
177
+ actionmailer (= 8.0.2)
178
+ actionpack (= 8.0.2)
179
+ actiontext (= 8.0.2)
180
+ actionview (= 8.0.2)
181
+ activejob (= 8.0.2)
182
+ activemodel (= 8.0.2)
183
+ activerecord (= 8.0.2)
184
+ activestorage (= 8.0.2)
185
+ activesupport (= 8.0.2)
154
186
  bundler (>= 1.15.0)
155
- railties (= 7.0.8)
187
+ railties (= 8.0.2)
156
188
  rails-dom-testing (2.2.0)
157
189
  activesupport (>= 5.0.0)
158
190
  minitest
159
191
  nokogiri (>= 1.6)
160
- rails-html-sanitizer (1.6.0)
192
+ rails-html-sanitizer (1.6.2)
161
193
  loofah (~> 2.21)
162
- nokogiri (~> 1.14)
163
- railties (7.0.8)
164
- actionpack (= 7.0.8)
165
- activesupport (= 7.0.8)
166
- method_source
194
+ 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)
195
+ railties (8.0.2)
196
+ actionpack (= 8.0.2)
197
+ activesupport (= 8.0.2)
198
+ irb (~> 1.13)
199
+ rackup (>= 1.0.0)
167
200
  rake (>= 12.2)
168
- thor (~> 1.0)
169
- zeitwerk (~> 2.5)
201
+ thor (~> 1.0, >= 1.2.2)
202
+ zeitwerk (~> 2.6)
170
203
  rainbow (3.1.1)
171
- rake (13.1.0)
172
- regexp_parser (2.9.0)
173
- rexml (3.2.6)
204
+ rake (13.2.1)
205
+ rdoc (6.13.1)
206
+ psych (>= 4.0.0)
207
+ regexp_parser (2.10.0)
208
+ reline (0.6.0)
209
+ io-console (~> 0.5)
174
210
  rspec (3.13.0)
175
211
  rspec-core (~> 3.13.0)
176
212
  rspec-expectations (~> 3.13.0)
177
213
  rspec-mocks (~> 3.13.0)
178
- rspec-core (3.13.0)
214
+ rspec-core (3.13.3)
179
215
  rspec-support (~> 3.13.0)
180
- rspec-expectations (3.13.0)
216
+ rspec-expectations (3.13.3)
181
217
  diff-lcs (>= 1.2.0, < 2.0)
182
218
  rspec-support (~> 3.13.0)
183
- rspec-its (1.3.0)
219
+ rspec-its (1.3.1)
184
220
  rspec-core (>= 3.0.0)
185
221
  rspec-expectations (>= 3.0.0)
186
- rspec-mocks (3.13.0)
222
+ rspec-mocks (3.13.2)
187
223
  diff-lcs (>= 1.2.0, < 2.0)
188
224
  rspec-support (~> 3.13.0)
189
- rspec-support (3.13.0)
190
- rubocop (1.60.2)
225
+ rspec-support (3.13.2)
226
+ rubocop (1.74.0)
191
227
  json (~> 2.3)
192
- language_server-protocol (>= 3.17.0)
228
+ language_server-protocol (~> 3.17.0.2)
229
+ lint_roller (~> 1.1.0)
193
230
  parallel (~> 1.10)
194
231
  parser (>= 3.3.0.2)
195
232
  rainbow (>= 2.2.2, < 4.0)
196
- regexp_parser (>= 1.8, < 3.0)
197
- rexml (>= 3.2.5, < 4.0)
198
- rubocop-ast (>= 1.30.0, < 2.0)
233
+ regexp_parser (>= 2.9.3, < 3.0)
234
+ rubocop-ast (>= 1.38.0, < 2.0)
199
235
  ruby-progressbar (~> 1.7)
200
- unicode-display_width (>= 2.4.0, < 3.0)
201
- rubocop-ast (1.30.0)
202
- parser (>= 3.2.1.0)
236
+ unicode-display_width (>= 2.4.0, < 4.0)
237
+ rubocop-ast (1.43.0)
238
+ parser (>= 3.3.7.2)
239
+ prism (~> 1.4)
203
240
  rubocop-performance (1.20.2)
204
241
  rubocop (>= 1.48.1, < 2.0)
205
242
  rubocop-ast (>= 1.30.0, < 2.0)
206
243
  ruby-progressbar (1.13.0)
244
+ securerandom (0.4.1)
207
245
  simplecov (0.13.0)
208
246
  docile (~> 1.1.0)
209
247
  json (>= 1.8, < 3)
210
248
  simplecov-html (~> 0.10.0)
211
249
  simplecov-html (0.10.2)
212
- thor (1.3.0)
213
- timeout (0.4.1)
250
+ stringio (3.1.6)
251
+ thor (1.3.2)
252
+ timeout (0.4.3)
214
253
  tzinfo (2.0.6)
215
254
  concurrent-ruby (~> 1.0)
216
- unicode-display_width (2.5.0)
217
- websocket-driver (0.7.6)
255
+ unicode-display_width (3.1.4)
256
+ unicode-emoji (~> 4.0, >= 4.0.4)
257
+ unicode-emoji (4.0.4)
258
+ uri (1.0.3)
259
+ useragent (0.16.11)
260
+ websocket-driver (0.7.7)
261
+ base64
218
262
  websocket-extensions (>= 0.1.0)
219
263
  websocket-extensions (0.1.5)
220
- zeitwerk (2.6.13)
264
+ zeitwerk (2.6.18)
221
265
 
222
266
  PLATFORMS
223
267
  arm64-darwin-23
268
+ arm64-darwin-24
224
269
  x86_64-linux
225
270
 
226
271
  DEPENDENCIES
227
272
  appraisal (~> 2.4.1)
273
+ base64
274
+ bigdecimal
228
275
  climate_control (~> 0.0.3)
229
276
  codeclimate-test-reporter (~> 1.0.3)
230
277
  departure!
278
+ lhm
279
+ logger
280
+ mutex_m
231
281
  pry-byebug
232
- rails (= 7.0.8)
282
+ rails (> 7.0.8)
233
283
  rake (>= 10.0)
234
284
  rspec (~> 3.4, >= 3.4.0)
235
285
  rspec-its (~> 1.2)
236
- rubocop (~> 1.60.2)
286
+ rubocop (~> 1.74.0)
237
287
  rubocop-performance (~> 1.20.2)
288
+ zeitwerk (< 2.7.0)
238
289
 
239
290
  BUNDLED WITH
240
- 2.4.22
291
+ 2.6.6
@@ -2,9 +2,14 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
+ gem 'base64'
5
6
  gem 'codeclimate-test-reporter', '~> 1.0.3', group: :test, require: nil
6
- gem 'rails', '7.1.3'
7
- gem 'rubocop', '~> 1.60.2', require: false
7
+ gem 'lhm'
8
+ gem 'logger'
9
+ gem 'mutex_m', require: false
10
+ gem 'rails', '> 7.1.3'
11
+ gem 'rubocop', '~> 1.74.0', require: false
8
12
  gem 'rubocop-performance', '~> 1.20.2', require: false
13
+ gem 'zeitwerk', '< 2.7.0'
9
14
 
10
15
  gemspec path: '../'