Skip to content

Commit

Permalink
Ensure Rails 8 and Ruby 3.3 compatibility (#23)
Browse files Browse the repository at this point in the history
* Switch CI Setup to Ubuntu 22.04 and PG 14
* Bump database cleaner to fix "undefined method table_name for class ActiveRecord::SchemaMigration"
* Use Nokogiri 1.15 to keep it working between Ruby 3.2 and 3.3
  • Loading branch information
makmic authored Dec 11, 2024
1 parent 7f87162 commit a1d6170
Show file tree
Hide file tree
Showing 8 changed files with 265 additions and 17 deletions.
13 changes: 11 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ name: Tests
- master
jobs:
test_pg:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
services:
postgres:
image: postgres:9.3
image: postgres:14.15
env:
POSTGRES_PASSWORD: postgres
options: "--health-cmd pg_isready --health-interval 10s --health-timeout 5s
Expand Down Expand Up @@ -44,6 +44,15 @@ jobs:
gemfile: Gemfile.6.1.pg
- ruby: 3.2.0
gemfile: Gemfile.7.0.pg
- ruby: 3.2.0
gemfile: Gemfile.8.0.pg

- ruby: 3.3.6
gemfile: Gemfile.6.1.pg
- ruby: 3.3.6
gemfile: Gemfile.7.0.pg
- ruby: 3.3.6
gemfile: Gemfile.8.0.pg
env:
BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
steps:
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.2.0
3.3.6
2 changes: 1 addition & 1 deletion Gemfile
5 changes: 3 additions & 2 deletions Gemfile.7.0.pg
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
source 'https://rubygems.org'

# Runtime dependencies
gem 'rails', '=7.0.1'
gem 'rails', '~>7.0.1'
gem 'pg', '> 1.2.3'
gem 'activerecord', '=7.0.1'
gem 'activerecord', '~>7.0.1'

# Development dependencies
gem 'rspec', '~>3.5'
gem 'rake', '> 10.0'
gem 'pry'
gem 'gemika', '>= 0.8.1'
gem 'database_cleaner'
gem 'nokogiri', '= 1.15'

# Gem under test
gem 'rails_state_machine', :path => '.'
19 changes: 9 additions & 10 deletions Gemfile.7.0.pg.lock
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ GEM
coderay (1.1.3)
concurrent-ruby (1.2.2)
crass (1.0.6)
database_cleaner (2.0.1)
database_cleaner-active_record (~> 2.0.0)
database_cleaner-active_record (2.0.1)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
Expand All @@ -101,7 +101,7 @@ GEM
marcel (1.0.2)
method_source (1.0.0)
mini_mime (1.1.5)
mini_portile2 (2.8.5)
mini_portile2 (2.8.8)
minitest (5.20.0)
net-imap (0.3.7)
date
Expand All @@ -113,16 +113,14 @@ GEM
net-smtp (0.4.0)
net-protocol
nio4r (2.7.0)
nokogiri (1.15.5)
nokogiri (1.15.0)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.15.5-x86_64-linux)
racc (~> 1.4)
pg (1.5.4)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
racc (1.7.3)
racc (1.8.1)
rack (2.2.8)
rack-test (2.1.0)
rack (>= 1.3)
Expand Down Expand Up @@ -182,12 +180,13 @@ PLATFORMS
x86_64-linux

DEPENDENCIES
activerecord (= 7.0.1)
activerecord (~> 7.0.1)
database_cleaner
gemika (>= 0.8.1)
nokogiri (= 1.15)
pg (> 1.2.3)
pry
rails (= 7.0.1)
rails (~> 7.0.1)
rails_state_machine!
rake (> 10.0)
rspec (~> 3.5)
Expand Down
16 changes: 16 additions & 0 deletions Gemfile.8.0.pg
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
source 'https://rubygems.org'

# Runtime dependencies
gem 'rails', '~>8.0.0'
gem 'pg', '> 1.2.3'
gem 'activerecord', '~>8.0.0'

# Development dependencies
gem 'rspec', '~>3.5'
gem 'rake', '> 10.0'
gem 'pry'
gem 'gemika', '>= 0.8.1'
gem 'database_cleaner'

# Gem under test
gem 'rails_state_machine', :path => '.'
223 changes: 223 additions & 0 deletions Gemfile.8.0.pg.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
PATH
remote: .
specs:
rails_state_machine (3.0.0)
activerecord

GEM
remote: https://rubygems.org/
specs:
actioncable (8.0.0.1)
actionpack (= 8.0.0.1)
activesupport (= 8.0.0.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (8.0.0.1)
actionpack (= 8.0.0.1)
activejob (= 8.0.0.1)
activerecord (= 8.0.0.1)
activestorage (= 8.0.0.1)
activesupport (= 8.0.0.1)
mail (>= 2.8.0)
actionmailer (8.0.0.1)
actionpack (= 8.0.0.1)
actionview (= 8.0.0.1)
activejob (= 8.0.0.1)
activesupport (= 8.0.0.1)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
actionpack (8.0.0.1)
actionview (= 8.0.0.1)
activesupport (= 8.0.0.1)
nokogiri (>= 1.8.5)
rack (>= 2.2.4)
rack-session (>= 1.0.1)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
useragent (~> 0.16)
actiontext (8.0.0.1)
actionpack (= 8.0.0.1)
activerecord (= 8.0.0.1)
activestorage (= 8.0.0.1)
activesupport (= 8.0.0.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (8.0.0.1)
activesupport (= 8.0.0.1)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
activejob (8.0.0.1)
activesupport (= 8.0.0.1)
globalid (>= 0.3.6)
activemodel (8.0.0.1)
activesupport (= 8.0.0.1)
activerecord (8.0.0.1)
activemodel (= 8.0.0.1)
activesupport (= 8.0.0.1)
timeout (>= 0.4.0)
activestorage (8.0.0.1)
actionpack (= 8.0.0.1)
activejob (= 8.0.0.1)
activerecord (= 8.0.0.1)
activesupport (= 8.0.0.1)
marcel (~> 1.0)
activesupport (8.0.0.1)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.8)
builder (3.3.0)
coderay (1.1.3)
concurrent-ruby (1.3.4)
connection_pool (2.4.1)
crass (1.0.6)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
date (3.4.1)
diff-lcs (1.5.1)
drb (2.2.1)
erubi (1.13.0)
gemika (0.8.3)
globalid (1.2.1)
activesupport (>= 6.1)
i18n (1.14.6)
concurrent-ruby (~> 1.0)
io-console (0.8.0)
irb (1.14.1)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
logger (1.6.2)
loofah (2.23.1)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
marcel (1.0.4)
method_source (1.1.0)
mini_mime (1.1.5)
minitest (5.25.4)
net-imap (0.5.1)
date
net-protocol
net-pop (0.1.2)
net-protocol
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
nokogiri (1.17.1-x86_64-linux)
racc (~> 1.4)
pg (1.5.9)
pry (0.15.0)
coderay (~> 1.1)
method_source (~> 1.0)
psych (5.2.1)
date
stringio
racc (1.8.1)
rack (3.1.8)
rack-session (2.0.0)
rack (>= 3.0.0)
rack-test (2.1.0)
rack (>= 1.3)
rackup (2.2.1)
rack (>= 3)
rails (8.0.0.1)
actioncable (= 8.0.0.1)
actionmailbox (= 8.0.0.1)
actionmailer (= 8.0.0.1)
actionpack (= 8.0.0.1)
actiontext (= 8.0.0.1)
actionview (= 8.0.0.1)
activejob (= 8.0.0.1)
activemodel (= 8.0.0.1)
activerecord (= 8.0.0.1)
activestorage (= 8.0.0.1)
activesupport (= 8.0.0.1)
bundler (>= 1.15.0)
railties (= 8.0.0.1)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
rails-html-sanitizer (1.6.1)
loofah (~> 2.21)
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)
railties (8.0.0.1)
actionpack (= 8.0.0.1)
activesupport (= 8.0.0.1)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
thor (~> 1.0, >= 1.2.2)
zeitwerk (~> 2.6)
rake (13.2.1)
rdoc (6.8.1)
psych (>= 4.0.0)
reline (0.5.12)
io-console (~> 0.5)
rspec (3.13.0)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.2)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.2)
securerandom (0.4.0)
stringio (3.1.2)
thor (1.3.2)
timeout (0.4.2)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uri (1.0.2)
useragent (0.16.11)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
zeitwerk (2.7.1)

PLATFORMS
x86_64-linux

DEPENDENCIES
activerecord (~> 8.0.0)
database_cleaner
gemika (>= 0.8.1)
pg (> 1.2.3)
pry
rails (~> 8.0.0)
rails_state_machine!
rake (> 10.0)
rspec (~> 3.5)

BUNDLED WITH
2.5.23
2 changes: 1 addition & 1 deletion Gemfile.lock

0 comments on commit a1d6170

Please sign in to comment.