From 6d88429b00f57be9c96806301e8f97c7c48ab39b Mon Sep 17 00:00:00 2001 From: Bohdan Zhuravel Date: Wed, 22 Oct 2025 19:14:47 +0300 Subject: [PATCH] Support Rails 8.1 --- .github/workflows/checks.yml | 133 ++++++++++++++---------------- Appraisals | 14 ++++ CONTRIBUTING.md | 34 ++++---- README.md | 45 +++++----- docker-compose.yml | 89 ++++++++++++++++---- gemfiles/activerecord_6.0.gemfile | 1 + gemfiles/activerecord_6.1.gemfile | 1 + gemfiles/activerecord_7.0.gemfile | 5 ++ gemfiles/activerecord_8.1.gemfile | 10 +++ spec/config.default.yml | 69 ++++++++++++---- temping.gemspec | 4 +- 11 files changed, 259 insertions(+), 146 deletions(-) create mode 100644 gemfiles/activerecord_8.1.gemfile diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index dc9134c..2f0b136 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -19,14 +19,14 @@ jobs: name: Run StandardRB linter runs-on: ubuntu-latest env: - BUNDLE_GEMFILE: gemfiles/activerecord_8.0.gemfile + BUNDLE_GEMFILE: gemfiles/activerecord_8.1.gemfile steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.3' + ruby-version: '3.4' bundler-cache: true - name: Run StandardRB id: offenses @@ -40,7 +40,7 @@ jobs: echo '${{ steps.offenses.outputs.LINTER_OFFENSES }}' - name: Fail if StandardRB offenses found if: steps.offenses.outputs.LINTER_OFFENSES - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: "core.setFailed('StandardRB linter offenses found. Please inspect the details \ of the previous step in the job for more info.')" @@ -51,74 +51,65 @@ jobs: fail-fast: false matrix: include: - - ruby: '3.3' - rails: '8.0' - - ruby: '3.3' - rails: '7.2' - - ruby: '3.3' - rails: '7.1' - - ruby: '3.3' - rails: '7.0' - - ruby: '3.2' - rails: '8.0' - - ruby: '3.2' - rails: '7.2' - - ruby: '3.2' - rails: '7.1' - - ruby: '3.2' - rails: '7.0' - - ruby: '3.1' - rails: '7.2' - - ruby: '3.1' - rails: '7.1' - - ruby: '3.1' - rails: '7.0' - - ruby: '3.1' - rails: '6.1' - - ruby: '3.0' - rails: '7.1' - - ruby: '3.0' - rails: '7.0' - - ruby: '3.0' - rails: '6.1' - - ruby: '2.7' - rails: '7.1' - - ruby: '2.7' - rails: '7.0' - - ruby: '2.7' - rails: '6.1' - - ruby: '2.7' - rails: '6.0' - - ruby: '2.6' - rails: '6.1' - - ruby: '2.6' - rails: '6.0' - - ruby: '2.5' - rails: '6.1' - - ruby: '2.5' - rails: '6.0' - - ruby: 'jruby' - rails: '7.0' - - ruby: 'jruby' - rails: '6.1' - - ruby: 'truffleruby' - rails: '8.0' - - ruby: 'truffleruby' - rails: '7.2' - - ruby: 'truffleruby' - rails: '7.1' - - ruby: 'truffleruby' - rails: '7.0' - - ruby: 'truffleruby' - rails: '6.1' - - ruby: 'truffleruby' - rails: '6.0' + # Rails 6.0 requires Ruby >= 2.5 and < 3.0 + - {rails: '6.0', ruby: '2.5'} + - {rails: '6.0', ruby: '2.6'} + - {rails: '6.0', ruby: '2.7'} + - {rails: '6.0', ruby: 'truffleruby'} + + # Rails 6.1 requires Ruby >= 2.5 and < 3.2 + - {rails: '6.1', ruby: '2.5'} + - {rails: '6.1', ruby: '2.6'} + - {rails: '6.1', ruby: '2.7'} + - {rails: '6.1', ruby: '3.0'} + - {rails: '6.1', ruby: '3.1'} + - {rails: '6.1', ruby: 'jruby'} + - {rails: '6.1', ruby: 'truffleruby'} + + # Rails 7.0 requires Ruby >= 2.7 + - {rails: '7.0', ruby: '2.7'} + - {rails: '7.0', ruby: '3.0'} + - {rails: '7.0', ruby: '3.1'} + - {rails: '7.0', ruby: '3.2'} + - {rails: '7.0', ruby: '3.3'} + - {rails: '7.0', ruby: '3.4'} + - {rails: '7.0', ruby: 'jruby'} + - {rails: '7.0', ruby: 'truffleruby'} + + # Rails 7.1 requires Ruby >= 2.7 + - {rails: '7.1', ruby: '2.7'} + - {rails: '7.1', ruby: '3.0'} + - {rails: '7.1', ruby: '3.1'} + - {rails: '7.1', ruby: '3.2'} + - {rails: '7.1', ruby: '3.3'} + - {rails: '7.1', ruby: '3.4'} + - {rails: '7.1', ruby: 'truffleruby'} + + # Rails 7.2 requires Ruby >= 3.1 + - {rails: '7.2', ruby: '3.1'} + - {rails: '7.2', ruby: '3.2'} + - {rails: '7.2', ruby: '3.3'} + - {rails: '7.2', ruby: '3.4'} + - {rails: '7.2', ruby: 'truffleruby'} + + # Rails 8.0 requires Ruby >= 3.2 + - {rails: '8.0', ruby: '3.2'} + - {rails: '8.0', ruby: '3.3'} + - {rails: '8.0', ruby: '3.4'} + - {rails: '8.0', ruby: 'truffleruby'} + + # Rails 8.1 requires Ruby >= 3.2 + - {rails: '8.1', ruby: '3.2'} + - {rails: '8.1', ruby: '3.3'} + - {rails: '8.1', ruby: '3.4'} + - {rails: '8.1', ruby: 'truffleruby'} + env: BUNDLE_GEMFILE: gemfiles/activerecord_${{ matrix.rails }}.gemfile SKIPPED_ADAPTERS: ${{ matrix.skipped_adapters }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup MySQL and PostgreSQL via Docker Compose run: docker compose up -d --wait - name: Install Ruby @@ -139,10 +130,10 @@ jobs: needs: tests runs-on: ubuntu-latest env: - BUNDLE_GEMFILE: gemfiles/activerecord_8.0.gemfile + BUNDLE_GEMFILE: gemfiles/activerecord_8.1.gemfile steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Download artifacts uses: actions/download-artifact@v4 with: @@ -152,7 +143,7 @@ jobs: - name: Install Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '3.3' + ruby-version: '3.4' bundler-cache: true - name: Collate coverage reports run: ${{ matrix.env }} bundle exec rake ci:coverage:collate @@ -173,7 +164,7 @@ jobs: echo "Total branch test coverage: ${{ steps.coverage.outputs.COVERAGE_BRANCH }}%" - name: Fail if coverage is low if: steps.coverage.outputs.COVERAGE_LINE != 100 || steps.coverage.outputs.COVERAGE_BRANCH < 95 - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: "core.setFailed('Please make sure line test coverage is 100% and branch test coverage is > 95%. \ Currently: ${{ steps.coverage.outputs.COVERAGE_LINE }}% (line), \ diff --git a/Appraisals b/Appraisals index e0ac287..ba3f4c8 100644 --- a/Appraisals +++ b/Appraisals @@ -2,12 +2,14 @@ appraise "activerecord-6.0" do gem "activerecord", "~> 6.0.0" gem "activesupport", "~> 6.0.0" gem "sqlite3", "~> 1.4", platforms: [:ruby, :truffleruby] + gem "concurrent-ruby", "1.3.4" # https://stackoverflow.com/a/79361034 end appraise "activerecord-6.1" do gem "activerecord", "~> 6.1.0" gem "activesupport", "~> 6.1.0" gem "sqlite3", "~> 1.4", platforms: [:ruby, :truffleruby] + gem "concurrent-ruby", "1.3.4" # https://stackoverflow.com/a/79361034 end appraise "activerecord-7.0" do @@ -15,6 +17,11 @@ appraise "activerecord-7.0" do gem "activesupport", "~> 7.0.0" gem "sqlite3", "~> 1.6", platforms: [:ruby, :truffleruby] gem "standard", "~> 1.31" + gem "concurrent-ruby", "1.3.4" # https://stackoverflow.com/a/79361034 + + install_if '-> { RUBY_VERSION >= "3.4.0" }' do + gem "mutex_m" # mutex_m is no longer a part of the default gems + end end appraise "activerecord-7.1" do @@ -37,3 +44,10 @@ appraise "activerecord-8.0" do gem "sqlite3", "~> 2.1", platforms: [:ruby, :truffleruby] gem "standard", "~> 1.31" end + +appraise "activerecord-8.1" do + gem "activerecord", "~> 8.1.0" + gem "activesupport", "~> 8.1.0" + gem "sqlite3", "~> 2.1", platforms: [:ruby, :truffleruby] + gem "standard", "~> 1.31" +end diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e0e7455..ff208e4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,40 +2,40 @@ Want to contribute to the development of temping? Great! Here's what you can do: -* suggest a feature or submit a bug at https://github.com/jpignata/temping/issues -* contribute code or documentation by submitting a pull request at https://github.com/jpignata/temping/pulls +* suggest a feature or submit a bug at +* contribute code or documentation by submitting a pull request at -If you submit code make sure that the test suite is still green by either manually running -the tests or making use of the CI, which starts upon every pull request. +If you submit code make sure that the test suite is still green by either manually running +the tests or making use of the CI, which starts upon every pull request. -The code is currently tested against several versions of SQLite3, PostgreSQL and MySQL. -If you want to run the tests manually please first make sure you have Docker +The code is currently tested against several versions of SQLite3, PostgreSQL and MySQL. +If you want to run the tests manually please first make sure you have Docker installed and then run ```shell -$ docker compose up -d --wait +docker compose up -d --wait ``` -to start the container. Once the container is up and running you can run +to start the container. Once the container is up and running you can run ```shell -$ rake -``` +rake +``` -to run the whole test suite including StandardRB linter. +to run the whole test suite including StandardRB linter. If you want to test a particular database adapter version run -`rake spec:`, e.g. `rake spec:mysql8.0` +`rake spec:`, e.g. `rake spec:mysql8.4` (the name should correspond to keys in `spec/config.default.yml`). -You can prepend the call with a specific gemfile -(located in `gemfiles` directory) to test against a particular -ActiveRecord version. This is done with the help of -[Appraisal gem](https://github.com/thoughtbot/appraisal). +You can prepend the call with a specific gemfile +(located in `gemfiles` directory) to test against a particular +ActiveRecord version. This is done with the help of +[Appraisal gem](https://github.com/thoughtbot/appraisal). For example: ```shell -$ BUNDLE_GEMFILE=gemfiles/activerecord_8.0.gemfile rake +BUNDLE_GEMFILE=gemfiles/activerecord_8.1.gemfile rake ``` The configuration used to access the databases is stored in diff --git a/README.md b/README.md index 8c034fc..fdec2c8 100644 --- a/README.md +++ b/README.md @@ -126,7 +126,7 @@ codey.quack # => "arf!" ``` -All attributes you pass to `create_table` are evaluated too. +All attributes you pass to `create_table` are evaluated too. For example you can create a dog with a primary key of the type uuid (assuming you use PostgreSQL with uuid-ossp extension enabled): @@ -169,7 +169,7 @@ my_car.navigate_to(:home) ## Namespaces -Temping supports creating models within namespaces. +Temping supports creating models within namespaces. You can do this either by just including the full namespace in the name: ```ruby @@ -195,11 +195,11 @@ Engineers::Developer.table_name # => "hard_working_developers" Engineers::Developer # => Engineers::Developer(id: integer) ``` -Please note that if you create the modules yourself, Temping will NOT attempt -to undefine them when you call `Temping.teardown`, it will only undefine the modules/models +Please note that if you create the modules yourself, Temping will NOT attempt +to undefine them when you call `Temping.teardown`, it will only undefine the modules/models created by itself: -```ruby +```ruby module Engineers; end Temping.create("engineers/developers") Temping.create("animal/cat") @@ -214,7 +214,7 @@ Object.const_defined?("Animal::Cat") # => false Deep namespaces are supported as well: -```ruby +```ruby Temping.create("continents/countries/cities/streets/buildings") # => Continents::Countries::Cities::Streets::Building(id: integer) @@ -222,10 +222,10 @@ Temping.create("continents/countries/cities/streets/buildings") ## Foreign Keys -Temporary tables in [MySQL](https://dev.mysql.com/doc/refman/9.1/en/create-table-foreign-keys.html) +Temporary tables in [MySQL](https://dev.mysql.com/doc/refman/9.5/en/create-table-foreign-keys.html) cannot have foreign keys. PostgreSQL doesn't have this limitation. -If you want to use foreign keys with Temping in MySQL you might want to consider +If you want to use foreign keys with Temping in MySQL you might want to consider making tables permanent by overwriting `temporary` option when you set up a model: ```ruby @@ -237,34 +237,35 @@ Temping.create(:post, temporary: false) do end ``` -This however is not a recommended approach because the whole idea of Temping +This however is not a recommended approach because the whole idea of Temping is about using **temporary** tables. ## Tested Environments The latest version of this gem is tested with the following setups: -* MRI 3.3 with ActiveRecord 8.0, 7.2, 7.1, 7.0 -* MRI 3.2 with ActiveRecord 8.0, 7.2, 7.1, 7.0 -* MRI 3.1 with ActiveRecord 7.2, 7.1, 7.0, 6.1 -* MRI 3.0 with ActiveRecord 7.1, 7.0, 6.1 -* MRI 2.7 with ActiveRecord 7.1, 7.0, 6.1, 6.0 -* MRI 2.6 with ActiveRecord 6.1, 6.0 -* MRI 2.5 with ActiveRecord 6.1, 6.0 -* JRuby with ActiveRecord 7.0, 6.1 (with activerecord-jdbc-adapter) -* TruffleRuby with ActiveRecord 8.0, 7.2, 7.1, 7.0, 6.1, 6.0 +- MRI 3.4 with ActiveRecord 8.1, 8.0, 7.2, 7.1, 7.0 +- MRI 3.3 with ActiveRecord 8.1, 8.0, 7.2, 7.1, 7.0 +- MRI 3.2 with ActiveRecord 8.1, 8.0, 7.2, 7.1, 7.0 +- MRI 3.1 with ActiveRecord 7.2, 7.1, 7.0, 6.1 +- MRI 3.0 with ActiveRecord 7.1, 7.0, 6.1 +- MRI 2.7 with ActiveRecord 7.1, 7.0, 6.1, 6.0 +- MRI 2.6 with ActiveRecord 6.1, 6.0 +- MRI 2.5 with ActiveRecord 6.1, 6.0 +- JRuby with ActiveRecord 7.0, 6.1 (with activerecord-jdbc-adapter) +- TruffleRuby with ActiveRecord 8.1, 8.0, 7.2, 7.1, 7.0, 6.1, 6.0 with the following database systems: -* SQLite3 -* MySQL (versions 5.6-9.1) -* PostgreSQL (versions 10-17) +- SQLite3 +- MySQL (versions 5.6-9.5) +- PostgreSQL (versions 10-18) If you need to support older versions of Ruby or ActiveRecord you might have to use the older versions of this gem (4.0.0 or below). ## Contributing -All contributions are welcome! +All contributions are welcome! Please take a look at `CONTRIBUTING.md` for some tips. diff --git a/docker-compose.yml b/docker-compose.yml index 4baef1b..6cecf9b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,53 @@ version: "3.8" services: + mysql9.5: + image: "mysql:9.5" + ports: + - "13316:3306" + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + healthcheck: + test: mysqladmin -u root -h 127.0.0.1 -P 3306 ping + interval: 1s + timeout: 5s + retries: 60 + mysql9.4: + image: "mysql:9.4" + ports: + - "13317:3306" + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + healthcheck: + test: mysqladmin -u root -h 127.0.0.1 -P 3306 ping + interval: 1s + timeout: 5s + retries: 60 + mysql9.3: + image: "mysql:9.3" + ports: + - "13318:3306" + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + healthcheck: + test: mysqladmin -u root -h 127.0.0.1 -P 3306 ping + interval: 1s + timeout: 5s + retries: 60 + mysql9.2: + image: "mysql:9.2" + ports: + - "13319:3306" + environment: + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + healthcheck: + test: mysqladmin -u root -h 127.0.0.1 -P 3306 ping + interval: 1s + timeout: 5s + retries: 60 mysql9.1: image: "mysql:9.1" ports: - - "13316:3306" + - "13320:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -14,7 +58,7 @@ services: mysql9.0: image: "mysql:9.0" ports: - - "13317:3306" + - "13321:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -25,7 +69,7 @@ services: mysql8.4: image: "mysql:8.4" ports: - - "13318:3306" + - "13322:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -36,7 +80,7 @@ services: mysql8.3: image: "mysql:8.3" ports: - - "13319:3306" + - "13323:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -47,7 +91,7 @@ services: mysql8.2: image: "mysql:8.2" ports: - - "13320:3306" + - "13324:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -58,7 +102,7 @@ services: mysql8.1: image: "mysql:8.1" ports: - - "13321:3306" + - "13325:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -69,7 +113,7 @@ services: mysql8.0: image: "mysql:8.0.31" ports: - - "13322:3306" + - "13326:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -80,7 +124,7 @@ services: mysql5.7: image: "mysql:5.7.40" ports: - - "13323:3306" + - "13327:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -91,7 +135,7 @@ services: mysql5.6: image: "mysql:5.6.51" ports: - - "13324:3306" + - "13328:3306" environment: MYSQL_ALLOW_EMPTY_PASSWORD: 1 healthcheck: @@ -99,10 +143,21 @@ services: interval: 1s timeout: 5s retries: 60 + postgresql18: + image: "postgres:18" + ports: + - "15442:5432" + environment: + POSTGRES_PASSWORD: password + healthcheck: + test: pg_isready -U postgres -h 127.0.0.1 -p 5432 + interval: 1s + timeout: 5s + retries: 60 postgresql17: image: "postgres:17" ports: - - "15442:5432" + - "15443:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -113,7 +168,7 @@ services: postgresql16: image: "postgres:16" ports: - - "15443:5432" + - "15444:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -124,7 +179,7 @@ services: postgresql15: image: "postgres:15" ports: - - "15444:5432" + - "15445:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -135,7 +190,7 @@ services: postgresql14: image: "postgres:14" ports: - - "15445:5432" + - "15446:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -146,7 +201,7 @@ services: postgresql13: image: "postgres:13" ports: - - "15446:5432" + - "15447:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -157,7 +212,7 @@ services: postgresql12: image: "postgres:12" ports: - - "15447:5432" + - "15448:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -168,7 +223,7 @@ services: postgresql11: image: "postgres:11" ports: - - "15448:5432" + - "15449:5432" environment: POSTGRES_PASSWORD: password healthcheck: @@ -179,7 +234,7 @@ services: postgresql10: image: "postgres:10" ports: - - "15449:5432" + - "15450:5432" environment: POSTGRES_PASSWORD: password healthcheck: diff --git a/gemfiles/activerecord_6.0.gemfile b/gemfiles/activerecord_6.0.gemfile index 10cc96d..335b9a7 100644 --- a/gemfiles/activerecord_6.0.gemfile +++ b/gemfiles/activerecord_6.0.gemfile @@ -5,5 +5,6 @@ source "https://rubygems.org" gem "activerecord", "~> 6.0.0" gem "activesupport", "~> 6.0.0" gem "sqlite3", "~> 1.4", platforms: [:ruby, :truffleruby] +gem "concurrent-ruby", "1.3.4" gemspec path: "../" diff --git a/gemfiles/activerecord_6.1.gemfile b/gemfiles/activerecord_6.1.gemfile index c4e1a1f..2f432ba 100644 --- a/gemfiles/activerecord_6.1.gemfile +++ b/gemfiles/activerecord_6.1.gemfile @@ -5,5 +5,6 @@ source "https://rubygems.org" gem "activerecord", "~> 6.1.0" gem "activesupport", "~> 6.1.0" gem "sqlite3", "~> 1.4", platforms: [:ruby, :truffleruby] +gem "concurrent-ruby", "1.3.4" gemspec path: "../" diff --git a/gemfiles/activerecord_7.0.gemfile b/gemfiles/activerecord_7.0.gemfile index 8118937..c6e0c65 100644 --- a/gemfiles/activerecord_7.0.gemfile +++ b/gemfiles/activerecord_7.0.gemfile @@ -6,5 +6,10 @@ gem "activerecord", "~> 7.0.0" gem "activesupport", "~> 7.0.0" gem "sqlite3", "~> 1.6", platforms: [:ruby, :truffleruby] gem "standard", "~> 1.31" +gem "concurrent-ruby", "1.3.4" + +install_if -> { RUBY_VERSION >= "3.4.0" } do + gem "mutex_m" +end gemspec path: "../" diff --git a/gemfiles/activerecord_8.1.gemfile b/gemfiles/activerecord_8.1.gemfile new file mode 100644 index 0000000..d5febb3 --- /dev/null +++ b/gemfiles/activerecord_8.1.gemfile @@ -0,0 +1,10 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "activerecord", "~> 8.1.0" +gem "activesupport", "~> 8.1.0" +gem "sqlite3", "~> 2.1", platforms: [:ruby, :truffleruby] +gem "standard", "~> 1.31" + +gemspec path: "../" diff --git a/spec/config.default.yml b/spec/config.default.yml index 8dc26f7..91b47d1 100644 --- a/spec/config.default.yml +++ b/spec/config.default.yml @@ -1,122 +1,157 @@ sqlite: adapter: sqlite3 database: ":memory:" -mysql9.1: +mysql9.5: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13316 -mysql9.0: +mysql9.4: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13317 -mysql8.4: +mysql9.3: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13318 -mysql8.3: +mysql9.2: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13319 -mysql8.2: +mysql9.1: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13320 -mysql8.1: +mysql9.0: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13321 -mysql8.0: +mysql8.4: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13322 -mysql5.7: +mysql8.3: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13323 -mysql5.6: +mysql8.2: adapter: mysql2 host: 127.0.0.1 database: temping_test username: root password: port: 13324 -postgresql17: +mysql8.1: + adapter: mysql2 + host: 127.0.0.1 + database: temping_test + username: root + password: + port: 13325 +mysql8.0: + adapter: mysql2 + host: 127.0.0.1 + database: temping_test + username: root + password: + port: 13326 +mysql5.7: + adapter: mysql2 + host: 127.0.0.1 + database: temping_test + username: root + password: + port: 13327 +mysql5.6: + adapter: mysql2 + host: 127.0.0.1 + database: temping_test + username: root + password: + port: 13328 +postgresql18: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15442 -postgresql16: +postgresql17: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15443 -postgresql15: +postgresql16: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15444 -postgresql14: +postgresql15: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15445 -postgresql13: +postgresql14: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15446 -postgresql12: +postgresql13: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15447 -postgresql11: +postgresql12: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15448 -postgresql10: +postgresql11: adapter: postgresql host: 127.0.0.1 database: temping_test username: postgres password: password port: 15449 +postgresql10: + adapter: postgresql + host: 127.0.0.1 + database: temping_test + username: postgres + password: password + port: 15450 diff --git a/temping.gemspec b/temping.gemspec index ece1db3..3317b36 100644 --- a/temping.gemspec +++ b/temping.gemspec @@ -11,8 +11,8 @@ Gem::Specification.new do |s| s.required_ruby_version = ">= 2.5" - s.add_dependency "activerecord", ">= 6.0", "< 8.1" - s.add_dependency "activesupport", ">= 6.0", "< 8.1" + s.add_dependency "activerecord", ">= 6.0", "< 8.2" + s.add_dependency "activesupport", ">= 6.0", "< 8.2" s.add_development_dependency "appraisal", "~> 2.5"