lhm-shopify 4.2.1 → 4.5.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +20 -0
  3. data/.github/workflows/test.yml +9 -4
  4. data/.gitignore +0 -1
  5. data/.ruby-version +1 -0
  6. data/Appraisals +6 -8
  7. data/CHANGELOG.md +29 -0
  8. data/Gemfile.lock +36 -27
  9. data/README.md +30 -1
  10. data/dev.yml +6 -7
  11. data/gemfiles/{activerecord_6.1.gemfile → activerecord_7.2.gemfile} +1 -2
  12. data/gemfiles/{activerecord_6.1.gemfile.lock → activerecord_7.2.gemfile.lock} +36 -22
  13. data/gemfiles/{activerecord_7.1.gemfile → activerecord_8.0.gemfile} +1 -1
  14. data/gemfiles/{activerecord_7.1.gemfile.lock → activerecord_8.0.gemfile.lock} +31 -22
  15. data/gemfiles/{activerecord_7.0.gemfile → activerecord_head.gemfile} +1 -2
  16. data/gemfiles/activerecord_head.gemfile.lock +96 -0
  17. data/lhm.gemspec +2 -0
  18. data/lib/lhm/chunker.rb +13 -4
  19. data/lib/lhm/entangler.rb +1 -1
  20. data/lib/lhm/intersection.rb +3 -2
  21. data/lib/lhm/invoker.rb +8 -7
  22. data/lib/lhm/migration.rb +3 -2
  23. data/lib/lhm/migrator.rb +25 -10
  24. data/lib/lhm/sql_helper.rb +1 -1
  25. data/lib/lhm/sql_retry.rb +1 -0
  26. data/lib/lhm/throttler/backoff_reduction.rb +42 -0
  27. data/lib/lhm/throttler/replica_lag.rb +4 -18
  28. data/lib/lhm/throttler/threads_running.rb +3 -0
  29. data/lib/lhm/throttler/time.rb +5 -0
  30. data/lib/lhm/throttler.rb +1 -0
  31. data/lib/lhm/version.rb +1 -1
  32. data/lib/lhm.rb +2 -2
  33. data/spec/fixtures/composite_primary_key_with_varchar_columns.ddl +10 -0
  34. data/spec/fixtures/composite_primary_key_with_varchar_columns_dest.ddl +10 -0
  35. data/spec/fixtures/myisam_users.ddl +10 -0
  36. data/spec/integration/chunker_spec.rb +115 -0
  37. data/spec/integration/cleanup_spec.rb +1 -0
  38. data/spec/integration/lhm_spec.rb +102 -15
  39. data/spec/integration/sql_retry/db_connection_helper.rb +1 -1
  40. data/spec/integration/sql_retry/lock_wait_spec.rb +4 -2
  41. data/spec/unit/entangler_spec.rb +14 -14
  42. data/spec/unit/migrator_spec.rb +34 -4
  43. data/spec/unit/throttler/replica_lag_spec.rb +1 -5
  44. data/spec/unit/throttler_spec.rb +60 -0
  45. metadata +43 -12
  46. data/gemfiles/activerecord_7.0.gemfile.lock +0 -74
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dec22d00a0a019706b1a6d62e85e416caf210aa2d0b4f77bb3ccf562f1db8fb2
4
- data.tar.gz: 181acf59e61b100dc3320b6674a7cd13a2a1dcf767c7259a88a58dbf4b826bf5
3
+ metadata.gz: f6810104b2e7de311501c58b38b5ab605bf808b2391e9406901dd97394ae29c2
4
+ data.tar.gz: 251bdd83425a0986d5d3cdded7fc05e4d53731eb86269a3059f2524780287b6e
5
5
  SHA512:
6
- metadata.gz: 8c197de7b7658cdb9c31dd91adde7fdaf54505bc7e910812d8c80edf447f6266630c08a80d773391071c518f72b9527280e1ece7e2bdc00bc60d5a8c22f294ed
7
- data.tar.gz: 6f1f7da4e1bd2e61fb8921eb9e724408d01ee576d98eb8ba393c2c2dada846368ec2a187e5c61d77f3691290edc815addd0e93acb8e1fa065c206564243ef798
6
+ metadata.gz: 866539e9bcac6acc7740766524d52e87de8572bde63d336b4dd1636c87da876d178729eaa5e716dafed53339c903ba79677980a0f29346c8ad36e0cebb145e7f
7
+ data.tar.gz: 0c7840100abf5b849e6750061f269fab888633bba7afd287cad3461e70e941f26f9a7a42fd215effa89797c7841c0b1200aab69d44d1119c79951ef53e8dee98
@@ -0,0 +1,20 @@
1
+ version: 2
2
+ registries:
3
+ ruby-shopify:
4
+ type: rubygems-server
5
+ url: https://pkgs.shopify.io/basic/gems/ruby
6
+ username: ${{secrets.RUBYGEMS_SERVER_PKGS_SHOPIFY_IO_USERNAME}}
7
+ password: ${{secrets.RUBYGEMS_SERVER_PKGS_SHOPIFY_IO_PASSWORD}}
8
+ github-com:
9
+ type: git
10
+ url: https://github.com
11
+ username: ${{secrets.DEPENDENCIES_GITHUB_USER}}
12
+ password: ${{secrets.DEPENDENCIES_GITHUB_TOKEN}}
13
+ updates:
14
+ - package-ecosystem: bundler
15
+ directory: "/"
16
+ schedule:
17
+ interval: daily
18
+ open-pull-requests-limit: 100
19
+ insecure-external-code-execution: allow
20
+ registries: "*"
@@ -13,16 +13,21 @@ jobs:
13
13
 
14
14
  strategy:
15
15
  fail-fast: false
16
+ max-parallel: 8
16
17
  matrix:
17
- activerecord: ["6.1", "7.0", "7.1"]
18
- ruby: ["3.0", "3.1", "3.2", "head"]
18
+ activerecord: ["7.2", "8.0", "head"]
19
+ ruby: ["3.1", "3.2", "3.3", "head"]
19
20
  mysql: ["5.7", "8.0"]
20
21
  adapter: ["mysql2", "trilogy"]
21
22
  exclude:
22
23
  - activerecord: 6.1
23
24
  ruby: head
24
- - activerecord: 7.0
25
+ - activerecord: 7.2
25
26
  ruby: head
27
+ - activerecord: 8.0
28
+ ruby: 3.1
29
+ - activerecord: head
30
+ ruby: 3.1
26
31
 
27
32
  env:
28
33
  BUNDLE_GEMFILE: "${{ github.workspace }}/gemfiles/activerecord_${{ matrix.activerecord }}.gemfile"
@@ -40,7 +45,7 @@ jobs:
40
45
 
41
46
  - name: Setup MySQL and ProxySQL (docker-compose)
42
47
  # Might have to change to docker compose up -d (i.e. Compose V2) when the Ubuntu image changes the docker-compose version
43
- run: docker-compose -f docker-compose-mysql-${{ matrix.mysql }}.yml up -d
48
+ run: docker compose -f docker-compose-mysql-${{ matrix.mysql }}.yml up -d
44
49
 
45
50
  - name: Wait until DBs are alive
46
51
  run: ./scripts/helpers/wait-for-dbs.sh
data/.gitignore CHANGED
@@ -2,7 +2,6 @@
2
2
  .bundle
3
3
  pkg/*
4
4
  .rvmrc
5
- .ruby-version
6
5
  .ruby-gemset
7
6
  bin/rake
8
7
  gemfiles/vendor
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.3.6
data/Appraisals CHANGED
@@ -1,13 +1,11 @@
1
- appraise "activerecord-6.1" do
2
- gem "activerecord", "6.1.0"
3
- gem "activerecord-trilogy-adapter"
1
+ appraise "activerecord-7.2" do
2
+ gem "activerecord", "7.2.2.1"
4
3
  end
5
4
 
6
- appraise "activerecord-7.0" do
7
- gem "activerecord", "7.0.8"
8
- gem "activerecord-trilogy-adapter"
5
+ appraise "activerecord-8.0" do
6
+ gem "activerecord", "8.0.1"
9
7
  end
10
8
 
11
- appraise "activerecord-7.1" do
12
- gem "activerecord", "7.1.1"
9
+ appraise "activerecord-head" do
10
+ gem "activerecord", git: "https://github.com/rails/rails.git", branch: "main"
13
11
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Unreleased
2
2
 
3
+ # 4.5.1 (Jul, 2025)
4
+ * Create update before insert trigger
5
+
6
+ # 4.5.0 (Feb, 2025)
7
+ * Update test matrix to include Rails 8
8
+ * Add option to force tables to use default engine
9
+ * Change default algorithm for add/rename/remove column operations
10
+ * Drop support for ActiveRecord version 6.1, as it has reached EOL
11
+ * Add support for tables with generated columns
12
+
13
+ # 4.4.2 (Sep, 2024)
14
+ * Allow caller to set the algorithm that will be used for DDL ALTER TABLE operations
15
+
16
+ # 4.4.1 (Aug, 2024)
17
+ * Extend max_binlog_cache_size exceeded error handling to all throttlers
18
+
19
+ # 4.4.0 (Aug, 2024)
20
+ * Add support for retrying chunks when running into max_binlog_cache_size exceeded error
21
+
22
+ # 4.3.0 (Aug, 2024)
23
+ * Drop support for Ruby 3.0, as it reached its EOL
24
+ * Add support for next Rails version
25
+
26
+ # 4.2.3 (Jul, 2024)
27
+ * Fix check for warnings against PKs with line breaks
28
+
29
+ # 4.2.2 (Jun, 2024)
30
+ * Avoid using the INSTANT algorithm.
31
+
3
32
  # 4.2.1 (Mar, 2024)
4
33
  * Retry more errors when using Trilogy.
5
34
 
data/Gemfile.lock CHANGED
@@ -1,67 +1,74 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lhm-shopify (4.2.1)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (7.1.1)
11
- activesupport (= 7.1.1)
12
- activerecord (7.1.1)
13
- activemodel (= 7.1.1)
14
- activesupport (= 7.1.1)
10
+ activemodel (8.0.1)
11
+ activesupport (= 8.0.1)
12
+ activerecord (8.0.1)
13
+ activemodel (= 8.0.1)
14
+ activesupport (= 8.0.1)
15
15
  timeout (>= 0.4.0)
16
- activesupport (7.1.1)
16
+ activesupport (8.0.1)
17
17
  base64
18
+ benchmark (>= 0.3)
18
19
  bigdecimal
19
- concurrent-ruby (~> 1.0, >= 1.0.2)
20
+ concurrent-ruby (~> 1.0, >= 1.3.1)
20
21
  connection_pool (>= 2.2.5)
21
22
  drb
22
23
  i18n (>= 1.6, < 2)
24
+ logger (>= 1.4.2)
23
25
  minitest (>= 5.1)
24
- mutex_m
25
- tzinfo (~> 2.0)
26
+ securerandom (>= 0.3)
27
+ tzinfo (~> 2.0, >= 2.0.5)
28
+ uri (>= 0.13.1)
26
29
  after_do (0.4.0)
27
30
  appraisal (2.5.0)
28
31
  bundler
29
32
  rake
30
33
  thor (>= 0.14.0)
31
- base64 (0.1.1)
32
- bigdecimal (3.1.4)
34
+ base64 (0.2.0)
35
+ benchmark (0.4.0)
36
+ bigdecimal (3.1.9)
33
37
  byebug (11.1.3)
34
- concurrent-ruby (1.2.2)
35
- connection_pool (2.4.1)
36
- docile (1.4.0)
37
- drb (2.1.1)
38
- ruby2_keywords
39
- i18n (1.14.1)
38
+ concurrent-ruby (1.3.5)
39
+ connection_pool (2.5.0)
40
+ docile (1.4.1)
41
+ drb (2.2.1)
42
+ i18n (1.14.7)
40
43
  concurrent-ruby (~> 1.0)
41
- minitest (5.22.2)
42
- mocha (2.1.0)
44
+ logger (1.6.5)
45
+ minitest (5.25.4)
46
+ mocha (2.4.5)
43
47
  ruby2_keywords (>= 0.0.5)
44
- mutex_m (0.1.2)
45
- mysql2 (0.5.5)
46
- rake (13.0.6)
48
+ mysql2 (0.5.6)
49
+ ostruct (0.6.1)
50
+ rake (13.2.1)
47
51
  retriable (3.1.2)
48
52
  ruby2_keywords (0.0.5)
53
+ securerandom (0.4.1)
49
54
  simplecov (0.22.0)
50
55
  docile (~> 1.1)
51
56
  simplecov-html (~> 0.11)
52
57
  simplecov_json_formatter (~> 0.1)
53
58
  simplecov-html (0.12.3)
54
59
  simplecov_json_formatter (0.1.4)
55
- thor (1.2.2)
56
- timeout (0.4.0)
60
+ thor (1.3.2)
61
+ timeout (0.4.3)
57
62
  toxiproxy (2.0.2)
58
- trilogy (2.6.0)
63
+ trilogy (2.8.1)
59
64
  tzinfo (2.0.6)
60
65
  concurrent-ruby (~> 1.0)
66
+ uri (1.0.2)
61
67
 
62
68
  PLATFORMS
63
69
  arm64-darwin-21
64
70
  arm64-darwin-22
71
+ arm64-darwin-23
65
72
  x86_64-darwin-20
66
73
  x86_64-linux
67
74
 
@@ -71,13 +78,15 @@ DEPENDENCIES
71
78
  appraisal
72
79
  byebug
73
80
  lhm-shopify!
81
+ logger
74
82
  minitest
75
83
  mocha
76
84
  mysql2
85
+ ostruct
77
86
  rake
78
87
  simplecov
79
88
  toxiproxy
80
89
  trilogy
81
90
 
82
91
  BUNDLED WITH
83
- 2.2.22
92
+ 2.6.3
data/README.md CHANGED
@@ -207,6 +207,35 @@ Or to set that as default throttler, use the following (for instance in a Rails
207
207
  Lhm.setup_throttler(:threads_running_throttler)
208
208
  ```
209
209
 
210
+ ### Retrying chunks using Throttler
211
+
212
+ If chunks fail due to the MySQL `max_binlog_cache_size` being exceeded, the Chunker class will call the `backoff_stride` method on the throttler to reduce the stride size and retry the chunk. The default backoff factor is 0.2 (reducing the chunk size by 20% with each failure), and the minimum stride size is 1 (the stride can be reduced until each chunk is 1 row). Default values can be overridden (see below). To disable backoff, set `min_stride_size` equal to `stride_size`; this will throw an exception when `max_binlog_cache_size` is exceeded. Configuration options should be passed into the time throttler constructor or in the `throttler_options` of change_table when using a time throttler.
213
+
214
+ ```ruby
215
+ ## Configure on throttler instance
216
+ my_throttler = Lhm::Throttler::ThreadsRunning.new(stride: 2000, delay: 1, backoff_reduction_factor: 0.1, min_stride_size: 10)
217
+
218
+ Lhm.change_table :users, throttler: my_throttler do |m|
219
+ ...
220
+ end
221
+
222
+ ## Or pass as throttler options
223
+ Lhm.change_table :users, {
224
+ throttler: :time_throttler,
225
+ throttler_options: {
226
+ stride: 2000,
227
+ delay: 1,
228
+ backoff_reduction_factor: 0.1,
229
+ min_stride_size: 10
230
+ }
231
+ } do |t|
232
+ ...
233
+ end
234
+ ```
235
+
236
+ ### Custom Throttlers with retry functionality
237
+ If using your own throttler, ensure that the class definition includes the `Lhm::Throttler::BackoffReduction` to retry failed chunks.
238
+
210
239
  ## Table rename strategies
211
240
 
212
241
  There are two different table rename strategies available: `LockedSwitcher` and
@@ -311,7 +340,7 @@ open coverage/index.html
311
340
  ```
312
341
 
313
342
  ### Merging for a new version
314
- When creating a PR for a new version, make sure that th version has been bumped in `lib/lhm/version.rb`. Then run the following code snippet to ensure the everything is consistent, otherwise
343
+ When creating a PR for a new version, make sure that the version has been bumped in `lib/lhm/version.rb`. Then run the following code snippet to ensure the everything is consistent, otherwise
315
344
  the gem will not publish.
316
345
  ```bash
317
346
  bundle install
data/dev.yml CHANGED
@@ -1,11 +1,9 @@
1
1
  name: lhm
2
2
  up:
3
- - homebrew:
4
- - mysql-client@5.7:
5
- or: [mysql@5.7]
6
- conflicts: [shopify/shopify/mysql-client, mysql-connector-c, mysql, mysql-client]
3
+ - packages:
4
+ - mysql-client
7
5
  - wget
8
- - ruby: 3.2.2
6
+ - ruby
9
7
  - bundler
10
8
  - podman
11
9
  - custom:
@@ -14,8 +12,9 @@ up:
14
12
  meet: ":"
15
13
  - custom:
16
14
  name: Podman compose
17
- met?: podman-compose ps | grep -ioE -q "lhm.*running\(4\)"
18
- meet: podman-compose up -d
15
+ met?: "[[ $(podman-compose ps | grep -c -e 'running' -e 'Up') == 4 ]] 2> /dev/null"
16
+ meet: podman-compose -f docker-compose-mysql-8.0.yml up -d
17
+ down: podman-compose down
19
18
  - custom:
20
19
  name: Waiting for DBs to be operational
21
20
  met?: ./scripts/helpers/wait-for-dbs.sh
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "6.1.0"
6
- gem "activerecord-trilogy-adapter"
5
+ gem "activerecord", "7.2.2.1"
7
6
 
8
7
  gemspec path: "../"
@@ -1,76 +1,90 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- lhm-shopify (4.2.1)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.1.0)
11
- activesupport (= 6.1.0)
12
- activerecord (6.1.0)
13
- activemodel (= 6.1.0)
14
- activesupport (= 6.1.0)
15
- activerecord-trilogy-adapter (3.1.2)
16
- activerecord (>= 6.0.a, < 7.1.a)
17
- trilogy (>= 2.4.0)
18
- activesupport (6.1.0)
19
- concurrent-ruby (~> 1.0, >= 1.0.2)
10
+ activemodel (7.2.2.1)
11
+ activesupport (= 7.2.2.1)
12
+ activerecord (7.2.2.1)
13
+ activemodel (= 7.2.2.1)
14
+ activesupport (= 7.2.2.1)
15
+ timeout (>= 0.4.0)
16
+ activesupport (7.2.2.1)
17
+ base64
18
+ benchmark (>= 0.3)
19
+ bigdecimal
20
+ concurrent-ruby (~> 1.0, >= 1.3.1)
21
+ connection_pool (>= 2.2.5)
22
+ drb
20
23
  i18n (>= 1.6, < 2)
24
+ logger (>= 1.4.2)
21
25
  minitest (>= 5.1)
22
- tzinfo (~> 2.0)
23
- zeitwerk (~> 2.3)
26
+ securerandom (>= 0.3)
27
+ tzinfo (~> 2.0, >= 2.0.5)
24
28
  after_do (0.4.0)
25
29
  appraisal (2.5.0)
26
30
  bundler
27
31
  rake
28
32
  thor (>= 0.14.0)
33
+ base64 (0.2.0)
34
+ benchmark (0.4.0)
35
+ bigdecimal (3.1.9)
29
36
  byebug (11.1.3)
30
- concurrent-ruby (1.2.2)
37
+ concurrent-ruby (1.3.5)
38
+ connection_pool (2.5.0)
31
39
  docile (1.4.0)
32
- i18n (1.14.1)
40
+ drb (2.2.1)
41
+ i18n (1.14.7)
33
42
  concurrent-ruby (~> 1.0)
34
- minitest (5.22.2)
43
+ logger (1.6.5)
44
+ minitest (5.25.4)
35
45
  mocha (2.1.0)
36
46
  ruby2_keywords (>= 0.0.5)
37
47
  mysql2 (0.5.5)
48
+ ostruct (0.6.1)
38
49
  rake (13.0.6)
39
50
  retriable (3.1.2)
40
51
  ruby2_keywords (0.0.5)
52
+ securerandom (0.4.1)
41
53
  simplecov (0.22.0)
42
54
  docile (~> 1.1)
43
55
  simplecov-html (~> 0.11)
44
56
  simplecov_json_formatter (~> 0.1)
45
57
  simplecov-html (0.12.3)
46
58
  simplecov_json_formatter (0.1.4)
47
- thor (1.2.2)
59
+ thor (1.3.2)
60
+ timeout (0.4.3)
48
61
  toxiproxy (2.0.2)
49
- trilogy (2.6.0)
62
+ trilogy (2.9.0)
50
63
  tzinfo (2.0.6)
51
64
  concurrent-ruby (~> 1.0)
52
- zeitwerk (2.6.12)
53
65
 
54
66
  PLATFORMS
55
67
  arm64-darwin-21
56
68
  arm64-darwin-22
69
+ arm64-darwin-23
57
70
  x86_64-darwin-20
58
71
  x86_64-linux
59
72
 
60
73
  DEPENDENCIES
61
- activerecord (= 6.1.0)
62
- activerecord-trilogy-adapter
74
+ activerecord (= 7.2.2.1)
63
75
  after_do
64
76
  appraisal
65
77
  byebug
66
78
  lhm-shopify!
79
+ logger
67
80
  minitest
68
81
  mocha
69
82
  mysql2
83
+ ostruct
70
84
  rake
71
85
  simplecov
72
86
  toxiproxy
73
87
  trilogy
74
88
 
75
89
  BUNDLED WITH
76
- 2.2.22
90
+ 2.6.3
@@ -2,6 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "7.1.1"
5
+ gem "activerecord", "8.0.1"
6
6
 
7
7
  gemspec path: "../"
@@ -1,83 +1,92 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- lhm-shopify (4.2.1)
4
+ lhm-shopify (4.5.1)
5
5
  retriable (>= 3.0.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (7.1.1)
11
- activesupport (= 7.1.1)
12
- activerecord (7.1.1)
13
- activemodel (= 7.1.1)
14
- activesupport (= 7.1.1)
10
+ activemodel (8.0.1)
11
+ activesupport (= 8.0.1)
12
+ activerecord (8.0.1)
13
+ activemodel (= 8.0.1)
14
+ activesupport (= 8.0.1)
15
15
  timeout (>= 0.4.0)
16
- activesupport (7.1.1)
16
+ activesupport (8.0.1)
17
17
  base64
18
+ benchmark (>= 0.3)
18
19
  bigdecimal
19
- concurrent-ruby (~> 1.0, >= 1.0.2)
20
+ concurrent-ruby (~> 1.0, >= 1.3.1)
20
21
  connection_pool (>= 2.2.5)
21
22
  drb
22
23
  i18n (>= 1.6, < 2)
24
+ logger (>= 1.4.2)
23
25
  minitest (>= 5.1)
24
- mutex_m
25
- tzinfo (~> 2.0)
26
+ securerandom (>= 0.3)
27
+ tzinfo (~> 2.0, >= 2.0.5)
28
+ uri (>= 0.13.1)
26
29
  after_do (0.4.0)
27
30
  appraisal (2.5.0)
28
31
  bundler
29
32
  rake
30
33
  thor (>= 0.14.0)
31
- base64 (0.1.1)
32
- bigdecimal (3.1.4)
34
+ base64 (0.2.0)
35
+ benchmark (0.4.0)
36
+ bigdecimal (3.1.9)
33
37
  byebug (11.1.3)
34
- concurrent-ruby (1.2.2)
35
- connection_pool (2.4.1)
38
+ concurrent-ruby (1.3.5)
39
+ connection_pool (2.5.0)
36
40
  docile (1.4.0)
37
- drb (2.1.1)
38
- ruby2_keywords
41
+ drb (2.2.1)
39
42
  i18n (1.14.1)
40
43
  concurrent-ruby (~> 1.0)
44
+ logger (1.6.1)
41
45
  minitest (5.22.2)
42
46
  mocha (2.1.0)
43
47
  ruby2_keywords (>= 0.0.5)
44
- mutex_m (0.1.2)
45
48
  mysql2 (0.5.5)
49
+ ostruct (0.6.1)
46
50
  rake (13.0.6)
47
51
  retriable (3.1.2)
48
52
  ruby2_keywords (0.0.5)
53
+ securerandom (0.4.1)
49
54
  simplecov (0.22.0)
50
55
  docile (~> 1.1)
51
56
  simplecov-html (~> 0.11)
52
57
  simplecov_json_formatter (~> 0.1)
53
58
  simplecov-html (0.12.3)
54
59
  simplecov_json_formatter (0.1.4)
55
- thor (1.2.2)
56
- timeout (0.4.0)
60
+ thor (1.3.2)
61
+ timeout (0.4.3)
57
62
  toxiproxy (2.0.2)
58
- trilogy (2.6.0)
63
+ trilogy (2.9.0)
59
64
  tzinfo (2.0.6)
60
65
  concurrent-ruby (~> 1.0)
66
+ uri (1.0.2)
61
67
 
62
68
  PLATFORMS
63
69
  arm64-darwin-21
64
70
  arm64-darwin-22
71
+ arm64-darwin-23
65
72
  x86_64-darwin-20
66
73
  x86_64-linux
67
74
 
68
75
  DEPENDENCIES
69
- activerecord (= 7.1.1)
76
+ activerecord (= 8.0.1)
70
77
  after_do
71
78
  appraisal
72
79
  byebug
73
80
  lhm-shopify!
81
+ logger
74
82
  minitest
75
83
  mocha
76
84
  mysql2
85
+ ostruct
77
86
  rake
78
87
  simplecov
79
88
  toxiproxy
80
89
  trilogy
81
90
 
82
91
  BUNDLED WITH
83
- 2.2.22
92
+ 2.6.3
@@ -2,7 +2,6 @@
2
2
 
3
3
  source "https://rubygems.org"
4
4
 
5
- gem "activerecord", "7.0.8"
6
- gem "activerecord-trilogy-adapter"
5
+ gem "activerecord", git: "https://github.com/rails/rails.git", branch: "main"
7
6
 
8
7
  gemspec path: "../"
@@ -0,0 +1,96 @@
1
+ GIT
2
+ remote: https://github.com/rails/rails.git
3
+ revision: bdad2707835949a96dd29e747b8c324593efd4d8
4
+ branch: main
5
+ specs:
6
+ activemodel (8.1.0.alpha)
7
+ activesupport (= 8.1.0.alpha)
8
+ activerecord (8.1.0.alpha)
9
+ activemodel (= 8.1.0.alpha)
10
+ activesupport (= 8.1.0.alpha)
11
+ timeout (>= 0.4.0)
12
+ activesupport (8.1.0.alpha)
13
+ base64
14
+ benchmark (>= 0.3)
15
+ bigdecimal
16
+ concurrent-ruby (~> 1.0, >= 1.3.1)
17
+ connection_pool (>= 2.2.5)
18
+ drb
19
+ i18n (>= 1.6, < 2)
20
+ logger (>= 1.4.2)
21
+ minitest (>= 5.1)
22
+ securerandom (>= 0.3)
23
+ tzinfo (~> 2.0, >= 2.0.5)
24
+ uri (>= 0.13.1)
25
+
26
+ PATH
27
+ remote: ..
28
+ specs:
29
+ lhm-shopify (4.5.1)
30
+ retriable (>= 3.0.0)
31
+
32
+ GEM
33
+ remote: https://rubygems.org/
34
+ specs:
35
+ after_do (0.4.0)
36
+ appraisal (2.5.0)
37
+ bundler
38
+ rake
39
+ thor (>= 0.14.0)
40
+ base64 (0.2.0)
41
+ benchmark (0.4.0)
42
+ bigdecimal (3.1.9)
43
+ byebug (11.1.3)
44
+ concurrent-ruby (1.3.5)
45
+ connection_pool (2.5.0)
46
+ docile (1.4.1)
47
+ drb (2.2.1)
48
+ i18n (1.14.7)
49
+ concurrent-ruby (~> 1.0)
50
+ logger (1.6.5)
51
+ minitest (5.25.4)
52
+ mocha (2.4.5)
53
+ ruby2_keywords (>= 0.0.5)
54
+ mysql2 (0.5.6)
55
+ ostruct (0.6.1)
56
+ rake (13.2.1)
57
+ retriable (3.1.2)
58
+ ruby2_keywords (0.0.5)
59
+ securerandom (0.4.1)
60
+ simplecov (0.22.0)
61
+ docile (~> 1.1)
62
+ simplecov-html (~> 0.11)
63
+ simplecov_json_formatter (~> 0.1)
64
+ simplecov-html (0.12.3)
65
+ simplecov_json_formatter (0.1.4)
66
+ thor (1.3.2)
67
+ timeout (0.4.3)
68
+ toxiproxy (2.0.2)
69
+ trilogy (2.9.0)
70
+ tzinfo (2.0.6)
71
+ concurrent-ruby (~> 1.0)
72
+ uri (1.0.2)
73
+
74
+ PLATFORMS
75
+ arm64-darwin-22
76
+ arm64-darwin-23
77
+ x86_64-linux
78
+
79
+ DEPENDENCIES
80
+ activerecord!
81
+ after_do
82
+ appraisal
83
+ byebug
84
+ lhm-shopify!
85
+ logger
86
+ minitest
87
+ mocha
88
+ mysql2
89
+ ostruct
90
+ rake
91
+ simplecov
92
+ toxiproxy
93
+ trilogy
94
+
95
+ BUNDLED WITH
96
+ 2.6.3