activerecord-spanner-adapter 2.5.1 → 2.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69f3ecf02a5d1f545a2a9a0182a768e9bad73c8223b54acdc38e38b9f5a639fb
4
- data.tar.gz: 641d598c91a69eeb4af93fced37f9842334fb42d95378013711d9fa08ef10f88
3
+ metadata.gz: 95f5439f841462a7fb1d4be2eac6333fb9e67ddc9038002ca15d04a6a8845f87
4
+ data.tar.gz: e713c475fc1cc4fbd056fcd4197613d79ab739fd27aa0fd22618e3871dfd0e45
5
5
  SHA512:
6
- metadata.gz: 951478249b5dc96f1dec3b9b1aa0b8764a361963e129283e5cb22ae391fc85d3572cf5a3056442c09a46732237524c89807aede0f0bb55b8c938c92b6a891475
7
- data.tar.gz: 2d36a28118c79c5680227a8a7cba2ba3a07586168229151bbeae764ecf1ef36e70c6bb4327703d5835e18fa5b0093cfc9a49f6f2555ecb3ab670bbf2cda4cbda
6
+ metadata.gz: c3181723a9aec9fe057bf22fd454509dae392e95545b189a2177a53dd24b2e05f1e59f19d9e4e83d553843d05f86a86d037bc69cc3fb1c3614b7fd75c328afe0
7
+ data.tar.gz: 10ed060f43d6454a0f249235861787889c93e87722d70b0a89b559ce6650ad5b9ab27aa1b828b49cc43e0d22e076dc892cae42563d9f0f6b8f807b45422246cd
@@ -1,16 +1,20 @@
1
+ name: acceptance tests on emulator
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  push:
3
8
  branches:
4
9
  - main
5
10
  pull_request:
6
- name: acceptance tests on emulator
7
11
  jobs:
8
12
  test:
9
13
  runs-on: ubuntu-latest
10
14
 
11
15
  services:
12
16
  emulator:
13
- image: gcr.io/cloud-spanner-emulator/emulator:latest
17
+ image: gcr.io/cloud-spanner-emulator/emulator:1.5.55
14
18
  ports:
15
19
  - 9010:9010
16
20
  - 9020:9020
@@ -18,28 +22,32 @@ jobs:
18
22
  strategy:
19
23
  max-parallel: 4
20
24
  matrix:
21
- ruby: ["3.1", "3.2", "3.3", "3.4"]
25
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
22
26
  ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
23
27
  # Exclude combinations that are not supported.
24
28
  exclude:
25
- - ruby: "3.1"
26
- ar: "~> 8.0.0"
27
- - ruby: "3.1"
28
- ar: "~> 8.1.0"
29
29
  - ruby: "3.4"
30
30
  ar: "~> 7.0.0"
31
31
  - ruby: "3.4"
32
32
  ar: "~> 7.1.0"
33
33
  - ruby: "3.4"
34
34
  ar: "~> 7.2.0"
35
+ - ruby: "4.0"
36
+ ar: "~> 7.0.0"
37
+ - ruby: "4.0"
38
+ ar: "~> 7.1.0"
39
+ - ruby: "4.0"
40
+ ar: "~> 7.2.0"
35
41
  env:
36
42
  AR_VERSION: ${{ matrix.ar }}
37
43
  steps:
38
- - uses: actions/checkout@v6
44
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
45
+ with:
46
+ persist-credentials: false
39
47
  - name: Set up Ruby
40
48
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
41
49
  # (see https://github.com/ruby/setup-ruby#versioning):
42
- uses: ruby/setup-ruby@v1
50
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
43
51
  with:
44
52
  bundler-cache: false
45
53
  ruby-version: ${{ matrix.ruby }}
@@ -1,9 +1,13 @@
1
+ name: acceptance tests on production
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  push:
3
8
  branches:
4
9
  - main
5
10
  pull_request:
6
- name: acceptance tests on production
7
11
  jobs:
8
12
  check-env:
9
13
  outputs:
@@ -26,20 +30,22 @@ jobs:
26
30
  matrix:
27
31
  ruby: [3.3]
28
32
  steps:
29
- - uses: actions/checkout@v6
33
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
34
+ with:
35
+ persist-credentials: false
30
36
  - name: Set up Ruby
31
37
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
32
38
  # (see https://github.com/ruby/setup-ruby#versioning):
33
- uses: ruby/setup-ruby@v1
39
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
34
40
  with:
35
41
  bundler-cache: true
36
42
  ruby-version: ${{ matrix.ruby }}
37
43
  - name: Authenticate Google Cloud
38
- uses: google-github-actions/auth@v3
44
+ uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
39
45
  with:
40
46
  credentials_json: ${{ secrets.GCP_SA_KEY }}
41
47
  - name: Setup GCloud
42
- uses: google-github-actions/setup-gcloud@v3
48
+ uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
43
49
  with:
44
50
  project_id: ${{ secrets.GCP_PROJECT_ID }}
45
51
  - name: Install dependencies
@@ -1,37 +1,45 @@
1
+ name: ci
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  push:
3
8
  branches:
4
9
  - main
5
10
  pull_request:
6
- name: ci
7
11
  jobs:
8
12
  test:
9
13
  runs-on: ubuntu-latest
10
14
  strategy:
11
15
  max-parallel: 4
12
16
  matrix:
13
- ruby: ["3.1", "3.2", "3.3", "3.4"]
17
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
14
18
  ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
15
19
  # Exclude combinations that are not supported.
16
20
  exclude:
17
- - ruby: "3.1"
18
- ar: "~> 8.0.0"
19
- - ruby: "3.1"
20
- ar: "~> 8.1.0"
21
21
  - ruby: "3.4"
22
22
  ar: "~> 7.0.0"
23
23
  - ruby: "3.4"
24
24
  ar: "~> 7.1.0"
25
25
  - ruby: "3.4"
26
26
  ar: "~> 7.2.0"
27
+ - ruby: "4.0"
28
+ ar: "~> 7.0.0"
29
+ - ruby: "4.0"
30
+ ar: "~> 7.1.0"
31
+ - ruby: "4.0"
32
+ ar: "~> 7.2.0"
27
33
  env:
28
34
  AR_VERSION: ${{ matrix.ar }}
29
35
  steps:
30
- - uses: actions/checkout@v6
36
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
37
+ with:
38
+ persist-credentials: false
31
39
  - name: Set up Ruby
32
40
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
33
41
  # (see https://github.com/ruby/setup-ruby#versioning):
34
- uses: ruby/setup-ruby@v1
42
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
35
43
  with:
36
44
  bundler-cache: false
37
45
  ruby-version: ${{ matrix.ruby }}
@@ -1,16 +1,20 @@
1
+ name: nightly acceptance tests on emulator
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  schedule:
3
8
  # 06:00 UTC
4
9
  - cron: '0 6 * * *'
5
10
  workflow_dispatch:
6
- name: nightly acceptance tests on emulator
7
11
  jobs:
8
12
  test:
9
13
  runs-on: ubuntu-latest
10
14
 
11
15
  services:
12
16
  emulator:
13
- image: gcr.io/cloud-spanner-emulator/emulator:latest
17
+ image: gcr.io/cloud-spanner-emulator/emulator:1.5.55
14
18
  ports:
15
19
  - 9010:9010
16
20
  - 9020:9020
@@ -18,26 +22,30 @@ jobs:
18
22
  strategy:
19
23
  max-parallel: 4
20
24
  matrix:
21
- ruby: ["3.1", "3.2", "3.3", "3.4"]
25
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
22
26
  ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
23
27
  # Exclude combinations that are not supported.
24
28
  exclude:
25
- - ruby: "3.1"
26
- ar: "~> 8.0.0"
27
- - ruby: "3.1"
28
- ar: "~> 8.1.0"
29
29
  - ruby: "3.4"
30
30
  ar: "~> 7.0.0"
31
31
  - ruby: "3.4"
32
32
  ar: "~> 7.1.0"
33
33
  - ruby: "3.4"
34
34
  ar: "~> 7.2.0"
35
+ - ruby: "4.0"
36
+ ar: "~> 7.0.0"
37
+ - ruby: "4.0"
38
+ ar: "~> 7.1.0"
39
+ - ruby: "4.0"
40
+ ar: "~> 7.2.0"
35
41
  env:
36
42
  AR_VERSION: ${{ matrix.ar }}
37
43
  steps:
38
- - uses: actions/checkout@v6
44
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
45
+ with:
46
+ persist-credentials: false
39
47
  - name: Set up Ruby
40
- uses: ruby/setup-ruby@v1
48
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
41
49
  with:
42
50
  # Disable caching as we are overriding the ActiveRecord below.
43
51
  bundler-cache: false
@@ -1,8 +1,12 @@
1
+ name: nightly acceptance tests on production
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  schedule:
3
8
  # 02:00 UTC
4
9
  - cron: '0 2 * * *'
5
- name: nightly acceptance tests on production
6
10
  jobs:
7
11
  test:
8
12
  runs-on: ubuntu-latest
@@ -12,20 +16,22 @@ jobs:
12
16
  matrix:
13
17
  ruby: [3.3]
14
18
  steps:
15
- - uses: actions/checkout@v6
19
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20
+ with:
21
+ persist-credentials: false
16
22
  - name: Set up Ruby
17
23
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby
18
24
  # (see https://github.com/ruby/setup-ruby#versioning):
19
- uses: ruby/setup-ruby@v1
25
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
20
26
  with:
21
27
  bundler-cache: true
22
28
  ruby-version: ${{ matrix.ruby }}
23
29
  - name: Authenticate Google Cloud
24
- uses: google-github-actions/auth@v3
30
+ uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
25
31
  with:
26
32
  credentials_json: ${{ secrets.GCP_SA_KEY }}
27
33
  - name: Setup GCloud
28
- uses: google-github-actions/setup-gcloud@v3
34
+ uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
29
35
  with:
30
36
  project_id: ${{ secrets.GCP_PROJECT_ID }}
31
37
  - name: Install dependencies
@@ -1,9 +1,13 @@
1
+ name: nightly-unit-tests
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  schedule:
3
8
  # 05:30 UTC
4
9
  - cron: '30 5 * * *'
5
10
  workflow_dispatch:
6
- name: nightly-unit-tests
7
11
  jobs:
8
12
  test:
9
13
  runs-on: ubuntu-latest
@@ -11,26 +15,30 @@ jobs:
11
15
  max-parallel: 4
12
16
  matrix:
13
17
  # Run acceptance tests all supported combinations of Ruby and ActiveRecord.
14
- ruby: ["3.1", "3.2", "3.3", "3.4"]
18
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
15
19
  ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0", "~> 8.1.0"]
16
20
  # Exclude combinations that are not supported.
17
21
  exclude:
18
- - ruby: "3.1"
19
- ar: "~> 8.0.0"
20
- - ruby: "3.1"
21
- ar: "~> 8.1.0"
22
22
  - ruby: "3.4"
23
23
  ar: "~> 7.0.0"
24
24
  - ruby: "3.4"
25
25
  ar: "~> 7.1.0"
26
26
  - ruby: "3.4"
27
27
  ar: "~> 7.2.0"
28
+ - ruby: "4.0"
29
+ ar: "~> 7.0.0"
30
+ - ruby: "4.0"
31
+ ar: "~> 7.1.0"
32
+ - ruby: "4.0"
33
+ ar: "~> 7.2.0"
28
34
  env:
29
35
  AR_VERSION: ${{ matrix.ar }}
30
36
  steps:
31
- - uses: actions/checkout@v6
37
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
38
+ with:
39
+ persist-credentials: false
32
40
  - name: Set up Ruby
33
- uses: ruby/setup-ruby@v1
41
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
34
42
  with:
35
43
  # Disable caching as we are overriding the ActiveRecord below.
36
44
  bundler-cache: false
@@ -1,5 +1,8 @@
1
1
  name: rubocop
2
2
 
3
+ permissions:
4
+ contents: read
5
+
3
6
  on:
4
7
  pull_request:
5
8
  types: [opened, synchronize]
@@ -12,13 +15,15 @@ jobs:
12
15
  timeout-minutes: 10
13
16
 
14
17
  steps:
15
- - uses: actions/checkout@v6
18
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
19
+ with:
20
+ persist-credentials: false
16
21
  - name: setup ruby
17
- uses: ruby/setup-ruby@v1
22
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
18
23
  with:
19
- ruby-version: '3.4.8'
24
+ ruby-version: '4.0.5'
20
25
  - name: cache gems
21
- uses: actions/cache@v5
26
+ uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
22
27
  with:
23
28
  path: vendor/bundle
24
29
  key: ${{ runner.os }}-rubocop-${{ hashFiles('**/Gemfile.lock') }}
@@ -1,6 +1,10 @@
1
+ name: samples
2
+
3
+ permissions:
4
+ contents: read
5
+
1
6
  on:
2
7
  pull_request:
3
- name: samples
4
8
  jobs:
5
9
  test:
6
10
  runs-on: ubuntu-latest
@@ -8,24 +12,30 @@ jobs:
8
12
  strategy:
9
13
  max-parallel: 4
10
14
  matrix:
11
- ruby: ["3.1", "3.2", "3.3", "3.4"]
15
+ ruby: ["3.2", "3.3", "3.4", "4.0"]
12
16
  ar: ["~> 7.0.0", "~> 7.1.0", "~> 7.2.0", "~> 8.0.0"]
13
17
  # Exclude combinations that are not supported.
14
18
  exclude:
15
- - ruby: "3.1"
16
- ar: "~> 8.0.0"
17
19
  - ruby: "3.4"
18
20
  ar: "~> 7.0.0"
19
21
  - ruby: "3.4"
20
22
  ar: "~> 7.1.0"
21
23
  - ruby: "3.4"
22
24
  ar: "~> 7.2.0"
25
+ - ruby: "4.0"
26
+ ar: "~> 7.0.0"
27
+ - ruby: "4.0"
28
+ ar: "~> 7.1.0"
29
+ - ruby: "4.0"
30
+ ar: "~> 7.2.0"
23
31
  env:
24
32
  AR_VERSION: ${{ matrix.ar }}
25
33
  steps:
26
- - uses: actions/checkout@v6
34
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
35
+ with:
36
+ persist-credentials: false
27
37
  - name: Set up Ruby
28
- uses: ruby/setup-ruby@v1
38
+ uses: ruby/setup-ruby@d45b1a4e94b71acab930e56e79c6aa188764e7f9 # v1.316.0
29
39
  with:
30
40
  bundler-cache: false
31
41
  ruby-version: ${{ matrix.ruby }}
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "2.5.1"
2
+ ".": "2.6.0"
3
3
  }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ### 2.6.0 (2026-07-09)
4
+
5
+ #### Features
6
+
7
+ * Ruby 3.2 minimum and Ruby 4.0 support ([#397](https://github.com/googleapis/ruby-spanner-activerecord/issues/397))
8
+
3
9
  ### 2.5.1 (2026-06-30)
4
10
 
5
11
  #### Bug Fixes
data/Gemfile CHANGED
@@ -10,7 +10,9 @@ gem "minitest", "~> 5.27.0"
10
10
  gem "minitest-rg", "~> 5.4.0"
11
11
  gem "pry", "~> 0.14.2"
12
12
  gem "pry-byebug", "~> 3.11.0"
13
+ gem "readline"
13
14
  gem "mutex_m"
15
+ gem "irb"
14
16
  # Add sqlite3 for testing for compatibility with other adapters.
15
17
  gem 'sqlite3'
16
18
 
data/README.md CHANGED
@@ -11,9 +11,9 @@ for Spanner PostgreSQL-dialect databases.__
11
11
 
12
12
  This project provides a Spanner adapter for ActiveRecord. It supports the following versions:
13
13
 
14
- - ActiveRecord 7.0.x with Ruby 3.1 and higher.
15
- - ActiveRecord 7.1.x with Ruby 3.1 and higher.
16
- - ActiveRecord 7.2.x with Ruby 3.1 and higher.
14
+ - ActiveRecord 7.0.x with Ruby 3.2 and higher.
15
+ - ActiveRecord 7.1.x with Ruby 3.2 and higher.
16
+ - ActiveRecord 7.2.x with Ruby 3.2 and higher.
17
17
  - ActiveRecord 8.0.x with Ruby 3.2 and higher.
18
18
  - ActiveRecord 8.1.x with Ruby 3.2 and higher.
19
19
 
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename f }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.required_ruby_version = ">= 3.1"
25
+ spec.required_ruby_version = ">= 3.2"
26
26
 
27
27
  spec.add_dependency "google-cloud-spanner", "~> 2.25"
28
28
  spec.add_dependency "google-cloud-spanner-v1", "~> 1.7"
@@ -30,7 +30,7 @@ Gem::Specification.new do |spec|
30
30
 
31
31
  spec.add_development_dependency "autotest-suffix", "~> 1.1"
32
32
  spec.add_development_dependency "bundler", [">= 2.0", "< 5.0"]
33
- spec.add_development_dependency "google-style", "~> 1.31.0"
33
+ spec.add_development_dependency "google-style", "~> 1.32.0"
34
34
  spec.add_development_dependency "minitest", "~> 5.10"
35
35
  spec.add_development_dependency "minitest-autotest", "~> 1.0"
36
36
  spec.add_development_dependency "minitest-focus", "~> 1.1"
@@ -5,5 +5,5 @@
5
5
  # https://opensource.org/licenses/MIT.
6
6
 
7
7
  module ActiveRecordSpannerAdapter
8
- VERSION = "2.5.1".freeze
8
+ VERSION = "2.6.0".freeze
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-spanner-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.1
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
@@ -97,14 +97,14 @@ dependencies:
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: 1.31.0
100
+ version: 1.32.0
101
101
  type: :development
102
102
  prerelease: false
103
103
  version_requirements: !ruby/object:Gem::Requirement
104
104
  requirements:
105
105
  - - "~>"
106
106
  - !ruby/object:Gem::Version
107
- version: 1.31.0
107
+ version: 1.32.0
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: minitest
110
110
  requirement: !ruby/object:Gem::Requirement
@@ -597,7 +597,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
597
597
  requirements:
598
598
  - - ">="
599
599
  - !ruby/object:Gem::Version
600
- version: '3.1'
600
+ version: '3.2'
601
601
  required_rubygems_version: !ruby/object:Gem::Requirement
602
602
  requirements:
603
603
  - - ">="