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