activerecord-spanner-adapter 2.6.0 → 2.7.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/acceptance-tests-on-emulator.yaml +9 -13
  3. data/.github/workflows/acceptance-tests-on-production.yaml +4 -3
  4. data/.github/workflows/ci.yaml +8 -12
  5. data/.github/workflows/nightly-acceptance-tests-on-emulator.yaml +9 -13
  6. data/.github/workflows/nightly-acceptance-tests-on-production.yaml +4 -3
  7. data/.github/workflows/nightly-unit-tests.yaml +8 -12
  8. data/.github/workflows/rubocop.yaml +3 -3
  9. data/.github/workflows/samples.yaml +8 -12
  10. data/.gitignore +0 -1
  11. data/.release-please-manifest.json +1 -1
  12. data/.rubocop.yml +2 -0
  13. data/Appraisals +15 -0
  14. data/CHANGELOG.md +13 -0
  15. data/Gemfile +12 -22
  16. data/Gemfile.lock +479 -0
  17. data/acceptance/cases/migration/change_table_test.rb +4 -14
  18. data/acceptance/cases/models/generated_column_test.rb +8 -26
  19. data/acceptance/test_helper.rb +10 -22
  20. data/activerecord-spanner-adapter.gemspec +2 -1
  21. data/benchmarks/db/migrate/01_create_tables.rb +1 -1
  22. data/examples/rails/README.md +1 -1
  23. data/examples/snippets/Rakefile +0 -7
  24. data/examples/snippets/array-data-type/db/migrate/01_create_tables.rb +1 -1
  25. data/examples/snippets/batch-dml/db/migrate/01_create_tables.rb +1 -1
  26. data/examples/snippets/bulk-insert/db/migrate/01_create_tables.rb +1 -1
  27. data/examples/snippets/commit-timestamp/db/migrate/01_create_tables.rb +1 -1
  28. data/examples/snippets/create-records/db/migrate/01_create_tables.rb +1 -1
  29. data/examples/snippets/date-data-type/db/migrate/01_create_tables.rb +1 -1
  30. data/examples/snippets/generated-column/db/migrate/01_create_tables.rb +1 -1
  31. data/examples/snippets/hints/db/migrate/01_create_tables.rb +1 -1
  32. data/examples/snippets/interleaved-tables/README.md +2 -5
  33. data/examples/snippets/isolation-level/db/migrate/01_create_tables.rb +1 -1
  34. data/examples/snippets/migrations/db/migrate/01_create_tables.rb +1 -1
  35. data/examples/snippets/mutations/db/migrate/01_create_tables.rb +1 -1
  36. data/examples/snippets/optimistic-locking/db/migrate/01_create_tables.rb +1 -1
  37. data/examples/snippets/partitioned-dml/db/migrate/01_create_tables.rb +1 -1
  38. data/examples/snippets/query-logs/application.rb +3 -3
  39. data/examples/snippets/query-logs/db/migrate/01_create_tables.rb +1 -1
  40. data/examples/snippets/quickstart/db/migrate/01_create_tables.rb +1 -1
  41. data/examples/snippets/read-only-transactions/db/migrate/01_create_tables.rb +1 -1
  42. data/examples/snippets/read-write-transactions/db/migrate/01_create_tables.rb +1 -1
  43. data/examples/snippets/stale-reads/db/migrate/01_create_tables.rb +1 -1
  44. data/examples/snippets/tags/db/migrate/01_create_tables.rb +1 -1
  45. data/examples/snippets/timestamp-data-type/db/migrate/01_create_tables.rb +1 -1
  46. data/gemfiles/7.1.gemfile +18 -0
  47. data/gemfiles/7.1.gemfile.lock +389 -0
  48. data/gemfiles/7.2.gemfile +18 -0
  49. data/gemfiles/7.2.gemfile.lock +479 -0
  50. data/gemfiles/8.0.gemfile +18 -0
  51. data/gemfiles/8.0.gemfile.lock +480 -0
  52. data/gemfiles/8.1.gemfile +18 -0
  53. data/gemfiles/8.1.gemfile.lock +478 -0
  54. data/lib/active_record/connection_adapters/spanner/database_statements.rb +62 -95
  55. data/lib/active_record/connection_adapters/spanner/quoting.rb +0 -22
  56. data/lib/active_record/connection_adapters/spanner/schema_creation.rb +3 -15
  57. data/lib/active_record/connection_adapters/spanner/schema_statements.rb +0 -4
  58. data/lib/active_record/connection_adapters/spanner_adapter.rb +12 -14
  59. data/lib/active_record/type/spanner/spanner_active_record_converter.rb +33 -2
  60. data/lib/activerecord_spanner_adapter/base.rb +5 -27
  61. data/lib/activerecord_spanner_adapter/connection.rb +0 -20
  62. data/lib/activerecord_spanner_adapter/information_schema.rb +1 -4
  63. data/lib/activerecord_spanner_adapter/table.rb +0 -22
  64. data/lib/activerecord_spanner_adapter/version.rb +1 -1
  65. data/lib/arel/visitors/spanner.rb +12 -15
  66. data/lib/spanner_client_ext.rb +6 -2
  67. metadata +27 -17
  68. data/acceptance/cases/interleaved_associations/has_many_associations_using_interleaved_test.rb +0 -221
  69. data/acceptance/cases/models/interleave_test.rb +0 -113
  70. data/acceptance/cases/transactions/optimistic_locking_test.rb +0 -152
  71. data/acceptance/models/album.rb +0 -15
  72. data/acceptance/models/track.rb +0 -23
  73. data/examples/snippets/interleaved-tables-before-7.1/README.md +0 -167
  74. data/examples/snippets/interleaved-tables-before-7.1/Rakefile +0 -13
  75. data/examples/snippets/interleaved-tables-before-7.1/application.rb +0 -122
  76. data/examples/snippets/interleaved-tables-before-7.1/config/database.yml +0 -9
  77. data/examples/snippets/interleaved-tables-before-7.1/db/migrate/01_create_tables.rb +0 -44
  78. data/examples/snippets/interleaved-tables-before-7.1/db/seeds.rb +0 -40
  79. data/examples/snippets/interleaved-tables-before-7.1/models/album.rb +0 -20
  80. data/examples/snippets/interleaved-tables-before-7.1/models/singer.rb +0 -18
  81. data/examples/snippets/interleaved-tables-before-7.1/models/track.rb +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 95f5439f841462a7fb1d4be2eac6333fb9e67ddc9038002ca15d04a6a8845f87
4
- data.tar.gz: e713c475fc1cc4fbd056fcd4197613d79ab739fd27aa0fd22618e3871dfd0e45
3
+ metadata.gz: 41dae7d478b4a4521252f61a067212b27830838b5d4a54afabc7bec93094f22a
4
+ data.tar.gz: 0e4a34bf22617d59d60384e8453161f3508e90bdaff903f3ca05e6e584463291
5
5
  SHA512:
6
- metadata.gz: c3181723a9aec9fe057bf22fd454509dae392e95545b189a2177a53dd24b2e05f1e59f19d9e4e83d553843d05f86a86d037bc69cc3fb1c3614b7fd75c328afe0
7
- data.tar.gz: 10ed060f43d6454a0f249235861787889c93e87722d70b0a89b559ce6650ad5b9ab27aa1b828b49cc43e0d22e076dc892cae42563d9f0f6b8f807b45422246cd
6
+ metadata.gz: 443363fbda3066dcc55f6630995b25c16a1ef2122c4f933ed143c53178be0d13ba7632b7b306d65b9333d52b6ff5c854eb777f5f62777254e1353b7bbb10f1f8
7
+ data.tar.gz: c1090b73bddf63303f339c6833fac3e8538ef1759f7455984977878d29d7d78439c0125936780b98f81af2b073e5b244a9de44d0e07e6a157393dfe97d17acb8
@@ -14,7 +14,7 @@ jobs:
14
14
 
15
15
  services:
16
16
  emulator:
17
- image: gcr.io/cloud-spanner-emulator/emulator:1.5.55
17
+ image: gcr.io/cloud-spanner-emulator/emulator:1.5.56
18
18
  ports:
19
19
  - 9010:9010
20
20
  - 9020:9020
@@ -23,31 +23,27 @@ jobs:
23
23
  max-parallel: 4
24
24
  matrix:
25
25
  ruby: ["3.2", "3.3", "3.4", "4.0"]
26
- ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
26
+ ar: ["7.1", "7.2", "8.0", "8.1"]
27
27
  # Exclude combinations that are not supported.
28
28
  exclude:
29
29
  - ruby: "3.4"
30
- ar: "~> 7.0.0"
30
+ ar: "7.1"
31
31
  - ruby: "3.4"
32
- ar: "~> 7.1.0"
33
- - ruby: "3.4"
34
- ar: "~> 7.2.0"
35
- - ruby: "4.0"
36
- ar: "~> 7.0.0"
32
+ ar: "7.2"
37
33
  - ruby: "4.0"
38
- ar: "~> 7.1.0"
34
+ ar: "7.1"
39
35
  - ruby: "4.0"
40
- ar: "~> 7.2.0"
36
+ ar: "7.2"
41
37
  env:
42
- AR_VERSION: ${{ matrix.ar }}
38
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.ar }}.gemfile
43
39
  steps:
44
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
40
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
45
41
  with:
46
42
  persist-credentials: false
47
43
  - name: Set up Ruby
48
44
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
49
45
  # (see https://github.com/ruby/setup-ruby#versioning):
50
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
46
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
51
47
  with:
52
48
  bundler-cache: false
53
49
  ruby-version: ${{ matrix.ruby }}
@@ -30,15 +30,16 @@ jobs:
30
30
  matrix:
31
31
  ruby: [3.3]
32
32
  steps:
33
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
33
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
34
34
  with:
35
35
  persist-credentials: false
36
36
  - name: Set up Ruby
37
37
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
38
38
  # (see https://github.com/ruby/setup-ruby#versioning):
39
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
39
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
40
40
  with:
41
- bundler-cache: true
41
+ # Disable caching to avoid frozen mode errors during automated release PRs when the gemspec version is bumped.
42
+ bundler-cache: false
42
43
  ruby-version: ${{ matrix.ruby }}
43
44
  - name: Authenticate Google Cloud
44
45
  uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
@@ -15,31 +15,27 @@ jobs:
15
15
  max-parallel: 4
16
16
  matrix:
17
17
  ruby: ["3.2", "3.3", "3.4", "4.0"]
18
- ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
18
+ ar: ["7.1", "7.2", "8.0", "8.1"]
19
19
  # Exclude combinations that are not supported.
20
20
  exclude:
21
21
  - ruby: "3.4"
22
- ar: "~> 7.0.0"
22
+ ar: "7.1"
23
23
  - ruby: "3.4"
24
- ar: "~> 7.1.0"
25
- - ruby: "3.4"
26
- ar: "~> 7.2.0"
27
- - ruby: "4.0"
28
- ar: "~> 7.0.0"
24
+ ar: "7.2"
29
25
  - ruby: "4.0"
30
- ar: "~> 7.1.0"
26
+ ar: "7.1"
31
27
  - ruby: "4.0"
32
- ar: "~> 7.2.0"
28
+ ar: "7.2"
33
29
  env:
34
- AR_VERSION: ${{ matrix.ar }}
30
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.ar }}.gemfile
35
31
  steps:
36
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
32
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
37
33
  with:
38
34
  persist-credentials: false
39
35
  - name: Set up Ruby
40
36
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
41
37
  # (see https://github.com/ruby/setup-ruby#versioning):
42
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
38
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
43
39
  with:
44
40
  bundler-cache: false
45
41
  ruby-version: ${{ matrix.ruby }}
@@ -14,7 +14,7 @@ jobs:
14
14
 
15
15
  services:
16
16
  emulator:
17
- image: gcr.io/cloud-spanner-emulator/emulator:1.5.55
17
+ image: gcr.io/cloud-spanner-emulator/emulator:1.5.56
18
18
  ports:
19
19
  - 9010:9010
20
20
  - 9020:9020
@@ -23,29 +23,25 @@ jobs:
23
23
  max-parallel: 4
24
24
  matrix:
25
25
  ruby: ["3.2", "3.3", "3.4", "4.0"]
26
- ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
26
+ ar: ["7.1", "7.2", "8.0", "8.1"]
27
27
  # Exclude combinations that are not supported.
28
28
  exclude:
29
29
  - ruby: "3.4"
30
- ar: "~> 7.0.0"
30
+ ar: "7.1"
31
31
  - ruby: "3.4"
32
- ar: "~> 7.1.0"
33
- - ruby: "3.4"
34
- ar: "~> 7.2.0"
35
- - ruby: "4.0"
36
- ar: "~> 7.0.0"
32
+ ar: "7.2"
37
33
  - ruby: "4.0"
38
- ar: "~> 7.1.0"
34
+ ar: "7.1"
39
35
  - ruby: "4.0"
40
- ar: "~> 7.2.0"
36
+ ar: "7.2"
41
37
  env:
42
- AR_VERSION: ${{ matrix.ar }}
38
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.ar }}.gemfile
43
39
  steps:
44
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
40
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
45
41
  with:
46
42
  persist-credentials: false
47
43
  - name: Set up Ruby
48
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
44
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
49
45
  with:
50
46
  # Disable caching as we are overriding the ActiveRecord below.
51
47
  bundler-cache: false
@@ -16,15 +16,16 @@ jobs:
16
16
  matrix:
17
17
  ruby: [3.3]
18
18
  steps:
19
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
19
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
20
20
  with:
21
21
  persist-credentials: false
22
22
  - name: Set up Ruby
23
23
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
24
24
  # (see https://github.com/ruby/setup-ruby#versioning):
25
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
25
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
26
26
  with:
27
- bundler-cache: true
27
+ # Disable caching to avoid frozen mode errors during automated release PRs when the gemspec version is bumped.
28
+ bundler-cache: false
28
29
  ruby-version: ${{ matrix.ruby }}
29
30
  - name: Authenticate Google Cloud
30
31
  uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
@@ -16,29 +16,25 @@ jobs:
16
16
  matrix:
17
17
  # Run acceptance tests all supported combinations of Ruby and ActiveRecord.
18
18
  ruby: ["3.2", "3.3", "3.4", "4.0"]
19
- ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
19
+ ar: ["7.1", "7.2", "8.0", "8.1"]
20
20
  # Exclude combinations that are not supported.
21
21
  exclude:
22
22
  - ruby: "3.4"
23
- ar: "~> 7.0.0"
23
+ ar: "7.1"
24
24
  - ruby: "3.4"
25
- ar: "~> 7.1.0"
26
- - ruby: "3.4"
27
- ar: "~> 7.2.0"
28
- - ruby: "4.0"
29
- ar: "~> 7.0.0"
25
+ ar: "7.2"
30
26
  - ruby: "4.0"
31
- ar: "~> 7.1.0"
27
+ ar: "7.1"
32
28
  - ruby: "4.0"
33
- ar: "~> 7.2.0"
29
+ ar: "7.2"
34
30
  env:
35
- AR_VERSION: ${{ matrix.ar }}
31
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.ar }}.gemfile
36
32
  steps:
37
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
33
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
38
34
  with:
39
35
  persist-credentials: false
40
36
  - name: Set up Ruby
41
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
37
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
42
38
  with:
43
39
  # Disable caching as we are overriding the ActiveRecord below.
44
40
  bundler-cache: false
@@ -15,13 +15,13 @@ jobs:
15
15
  timeout-minutes: 10
16
16
 
17
17
  steps:
18
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
18
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
19
19
  with:
20
20
  persist-credentials: false
21
21
  - name: setup ruby
22
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
22
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
23
23
  with:
24
- ruby-version: '4.0.5'
24
+ ruby-version: '4.0.6'
25
25
  - name: cache gems
26
26
  uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
27
27
  with:
@@ -13,29 +13,25 @@ jobs:
13
13
  max-parallel: 4
14
14
  matrix:
15
15
  ruby: ["3.2", "3.3", "3.4", "4.0"]
16
- ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0"]
16
+ ar: ["7.1", "7.2", "8.0"]
17
17
  # Exclude combinations that are not supported.
18
18
  exclude:
19
19
  - ruby: "3.4"
20
- ar: "~> 7.0.0"
20
+ ar: "7.1"
21
21
  - ruby: "3.4"
22
- ar: "~> 7.1.0"
23
- - ruby: "3.4"
24
- ar: "~> 7.2.0"
25
- - ruby: "4.0"
26
- ar: "~> 7.0.0"
22
+ ar: "7.2"
27
23
  - ruby: "4.0"
28
- ar: "~> 7.1.0"
24
+ ar: "7.1"
29
25
  - ruby: "4.0"
30
- ar: "~> 7.2.0"
26
+ ar: "7.2"
31
27
  env:
32
- AR_VERSION: ${{ matrix.ar }}
28
+ BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.ar }}.gemfile
33
29
  steps:
34
- - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
30
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
35
31
  with:
36
32
  persist-credentials: false
37
33
  - name: Set up Ruby
38
- uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
34
+ uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0
39
35
  with:
40
36
  bundler-cache: false
41
37
  ruby-version: ${{ matrix.ruby }}
data/.gitignore CHANGED
@@ -52,7 +52,6 @@ build-iPhoneSimulator/
52
52
 
53
53
  # for a library or gem, you might want to ignore these files since the code is
54
54
  # intended to run in multiple environments; otherwise, check them in:
55
- Gemfile.lock
56
55
  .ruby-version
57
56
  .ruby-gemset
58
57
 
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "2.6.0"
2
+ ".": "2.7.0"
3
3
  }
data/.rubocop.yml CHANGED
@@ -4,7 +4,9 @@ inherit_gem:
4
4
  AllCops:
5
5
  Exclude:
6
6
  - "activerecord-spanner-adapter.gemspec"
7
+ - "Appraisals"
7
8
  - "Gemfile"
9
+ - "gemfiles/*"
8
10
  - "Rakefile"
9
11
  - "bin/*"
10
12
  - "test/**/*"
data/Appraisals ADDED
@@ -0,0 +1,15 @@
1
+ appraise "7.1" do
2
+ gem "activerecord", "~> 7.1.0"
3
+ end
4
+
5
+ appraise "7.2" do
6
+ gem "activerecord", "~> 7.2.0"
7
+ end
8
+
9
+ appraise "8.0" do
10
+ gem "activerecord", "~> 8.0.0"
11
+ end
12
+
13
+ appraise "8.1" do
14
+ gem "activerecord", "~> 8.1.0"
15
+ end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ### 2.7.0 (2026-08-19)
4
+
5
+ #### Features
6
+
7
+ * drop ActiveRecord 7.0 support ([#410](https://github.com/googleapis/ruby-spanner-activerecord/issues/410))
8
+ ### Performance Improvements
9
+
10
+ * avoid method cache invalidation during Arel compilation ([#415](https://github.com/googleapis/ruby-spanner-activerecord/issues/415))
11
+ * fast O(1) type lookup map in SpannerActiveRecordConverter ([#418](https://github.com/googleapis/ruby-spanner-activerecord/issues/418))
12
+ * freeze request tag prefixes and prevent duplicate option appends ([#417](https://github.com/googleapis/ruby-spanner-activerecord/issues/417))
13
+ * memoize Snapshot.from_grpc method arity ([#419](https://github.com/googleapis/ruby-spanner-activerecord/issues/419))
14
+ * serialize query types and params in a single pass ([#416](https://github.com/googleapis/ruby-spanner-activerecord/issues/416))
15
+
3
16
  ### 2.6.0 (2026-07-09)
4
17
 
5
18
  #### Features
data/Gemfile CHANGED
@@ -3,29 +3,19 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in activerecord-spanner.gemspec
4
4
  gemspec
5
5
 
6
- ar_version = ENV.fetch("AR_VERSION", "~> 7.1.0")
7
- gem "activerecord", ar_version
8
- gem "ostruct"
6
+ unless ENV["APPRAISAL_INITIALIZED"] || ENV["APPRAISAL_UNDER_TEST"] || (ENV["BUNDLE_GEMFILE"] && ENV["BUNDLE_GEMFILE"].include?("gemfiles/"))
7
+ ar_version = ENV.fetch("AR_VERSION", "~> 7.1.0")
8
+ gem "activerecord", ar_version
9
+ end
10
+ gem "docker-api"
11
+ gem "irb"
9
12
  gem "minitest", "~> 5.27.0"
10
13
  gem "minitest-rg", "~> 5.4.0"
11
- gem "pry", "~> 0.14.2"
12
- gem "pry-byebug", "~> 3.11.0"
13
- gem "readline"
14
14
  gem "mutex_m"
15
- gem "irb"
16
- # Add sqlite3 for testing for compatibility with other adapters.
17
- gem 'sqlite3'
18
-
19
- # Required for samples and testing.
20
- install_if -> { ar_version.dup.to_s.sub("~>", "").strip < "7.1.0" && !ENV["SKIP_COMPOSITE_PK"] } do
21
- gem "composite_primary_keys"
22
- end
23
-
24
- # Required for samples
25
- gem "docker-api"
15
+ gem "ostruct"
16
+ gem "pry", "~> 0.16.0"
17
+ gem "pry-byebug", "~> 3.12.0"
18
+ gem "readline"
26
19
  gem "sinatra-activerecord"
27
-
28
- # Force google-protobuf to compile from source to avoid ABI issues in CI
29
- if ENV["CI"]
30
- gem "google-protobuf", force_ruby_platform: true
31
- end
20
+ # Add sqlite3 for testing for compatibility with other adapters.
21
+ gem "sqlite3"