diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1da8968..1253dee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,10 @@ env: jobs: test: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + gemfile: [Gemfile, Gemfile.next] services: postgres: image: postgres:latest @@ -61,6 +65,8 @@ jobs: with: ruby-version: .ruby-version bundler-cache: true + env: + BUNDLE_GEMFILE: ${{ matrix.gemfile }} - name: Wait for PostgreSQL run: | @@ -77,6 +83,8 @@ jobs: done - name: Set up the database + env: + BUNDLE_GEMFILE: ${{ matrix.gemfile }} run: | cp config/database.yml.sample config/database.yml bin/rails db:create @@ -85,5 +93,6 @@ jobs: - name: Run tests env: + BUNDLE_GEMFILE: ${{ matrix.gemfile }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} run: COVERAGE=true bundle exec rspec spec diff --git a/Gemfile b/Gemfile index aa27e44..e22058a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,12 @@ +def next? + File.basename(__FILE__) == "Gemfile.next" +end source "https://rubygems.org" ruby file: ".ruby-version" +gem "next_rails" + # gem "activerecord-enhancedsqlite3-adapter", "~> 0.5" gem "amazing_print", "~> 1.5" gem "aws-sdk-s3", "~> 1.8", require: false @@ -27,8 +32,13 @@ gem "propshaft", "~> 0.8" gem "pry-rails", "~> 0.3" gem "puma", "~> 6.4" gem "rails_bootstrap_navbar", "~> 3.0" -gem "rails", "~> 8.0.0" -gem "rails-i18n", "~> 8.0.0" +if next? + gem "rails", "~> 8.1.0" + gem "rails-i18n", "~> 8.x" +else + gem "rails", "~> 8.0.0" + gem "rails-i18n", "~> 8.0.0" +end gem "redis-namespace", "~> 1.11" gem "redis", "~> 5.0" gem "sentry-rails", "~> 5.5" diff --git a/Gemfile.lock b/Gemfile.lock index ae5f9f6..fb1ae22 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,6 +272,8 @@ GEM timeout net-smtp (0.5.1) net-protocol + next_rails (1.4.7) + rainbow (>= 3) nio4r (2.7.4) nokogiri (1.18.10-arm64-darwin) racc (~> 1.4) @@ -358,6 +360,7 @@ GEM thor (~> 1.0, >= 1.2.2) tsort (>= 0.2) zeitwerk (~> 2.6) + rainbow (3.1.1) rake (13.3.0) rchardet (1.8.0) rdoc (6.15.0) @@ -471,6 +474,7 @@ GEM PLATFORMS arm64-darwin-23 arm64-darwin-24 + arm64-darwin-25 x86_64-linux DEPENDENCIES @@ -499,6 +503,7 @@ DEPENDENCIES importmap-rails (~> 2.0) kredis (~> 1.2) net-pop! + next_rails octokit (~> 9.1) octopoller (~> 0.3) pg diff --git a/Gemfile.next b/Gemfile.next new file mode 120000 index 0000000..6ab7900 --- /dev/null +++ b/Gemfile.next @@ -0,0 +1 @@ +Gemfile \ No newline at end of file diff --git a/Gemfile.next.lock b/Gemfile.next.lock new file mode 100644 index 0000000..22b2cf9 --- /dev/null +++ b/Gemfile.next.lock @@ -0,0 +1,540 @@ +GIT + remote: https://github.com/fastruby/baseline.git + revision: 60a5488d068233c1b67a025bfed1deb5b156c25a + specs: + baseline (1.0) + +GIT + remote: https://github.com/ruby/net-pop.git + revision: e8d0afe2773b9eb6a23c39e9e437f6fc0fc7c733 + specs: + net-pop (0.1.2) + net-protocol + +GIT + remote: https://github.com/rubygems/gems.git + revision: c20c05888cb2b882bf3b99d3618cc37f69559f6a + specs: + gems (1.2.0) + +GEM + remote: https://rubygems.org/ + specs: + action_text-trix (2.1.17) + railties + actioncable (8.1.2) + actionpack (= 8.1.2) + activesupport (= 8.1.2) + nio4r (~> 2.0) + websocket-driver (>= 0.6.1) + zeitwerk (~> 2.6) + actionmailbox (8.1.2) + actionpack (= 8.1.2) + activejob (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) + mail (>= 2.8.0) + actionmailer (8.1.2) + actionpack (= 8.1.2) + actionview (= 8.1.2) + activejob (= 8.1.2) + activesupport (= 8.1.2) + mail (>= 2.8.0) + rails-dom-testing (~> 2.2) + actionpack (8.1.2) + actionview (= 8.1.2) + activesupport (= 8.1.2) + 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.1.2) + action_text-trix (~> 2.1.15) + actionpack (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) + globalid (>= 0.6.0) + nokogiri (>= 1.8.5) + actionview (8.1.2) + activesupport (= 8.1.2) + builder (~> 3.1) + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (8.1.2) + activesupport (= 8.1.2) + globalid (>= 0.3.6) + activemodel (8.1.2) + activesupport (= 8.1.2) + activerecord (8.1.2) + activemodel (= 8.1.2) + activesupport (= 8.1.2) + timeout (>= 0.4.0) + activestorage (8.1.2) + actionpack (= 8.1.2) + activejob (= 8.1.2) + activerecord (= 8.1.2) + activesupport (= 8.1.2) + marcel (~> 1.0) + activesupport (8.1.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + json + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + amazing_print (1.6.0) + annotaterb (4.10.2) + ansi (1.5.0) + autoprefixer-rails (10.4.16.0) + execjs (~> 2) + aws-eventstream (1.3.0) + aws-partitions (1.957.0) + aws-sdk-core (3.201.3) + aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.88.0) + aws-sdk-core (~> 3, >= 3.201.0) + aws-sigv4 (~> 1.5) + aws-sdk-s3 (1.156.0) + aws-sdk-core (~> 3, >= 3.201.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.5) + aws-sigv4 (1.9.0) + aws-eventstream (~> 1, >= 1.0.2) + base64 (0.2.0) + better_errors (2.10.1) + erubi (>= 1.0.0) + rack (>= 0.9.0) + rouge (>= 1.0.0) + bigdecimal (3.3.1) + binding_of_caller (1.0.1) + debug_inspector (>= 1.2.0) + bootsnap (1.18.3) + msgpack (~> 1.2) + bootstrap (5.3.3) + autoprefixer-rails (>= 9.1.0) + popper_js (>= 2.11.8, < 3) + bootstrap-navbar (3.2.2) + gem_config (~> 0.3) + builder (3.3.0) + byebug (11.1.3) + choice (0.2.0) + codecov (0.2.12) + json + simplecov + coderay (1.1.3) + concurrent-ruby (1.3.5) + connection_pool (2.5.4) + crack (1.0.0) + bigdecimal + rexml + crass (1.0.6) + dartsass-rails (0.5.0) + railties (>= 6.0.0) + sass-embedded (~> 1.63) + 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) + debug_inspector (1.2.0) + diff-lcs (1.5.1) + docile (1.4.1) + dotenv (3.1.2) + drb (2.2.3) + erb (5.1.1) + erubi (1.13.1) + et-orbi (1.2.11) + tzinfo + excon (1.1.1) + execjs (2.9.1) + factory_bot (6.4.6) + activesupport (>= 5.0.0) + factory_bot_rails (6.4.3) + factory_bot (~> 6.4) + railties (>= 5.0.0) + faraday (1.10.4) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.1) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.1.1) + multipart-post (~> 2.0) + faraday-net_http (1.0.2) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.1) + faraday (~> 1.0) + fog-aws (3.29.0) + base64 (~> 0.2.0) + fog-core (~> 2.6) + fog-json (~> 1.1) + fog-xml (~> 0.1) + fog-core (2.6.0) + builder + excon (~> 1.0) + formatador (>= 0.2, < 2.0) + mime-types + fog-json (1.2.0) + fog-core + multi_json (~> 1.10) + fog-xml (0.1.4) + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + formatador (1.1.0) + fugit (1.11.0) + et-orbi (~> 1, >= 1.2.11) + raabro (~> 1.4) + gem_config (0.3.2) + git (2.1.1) + activesupport (>= 5.0) + addressable (~> 2.8) + process_executer (~> 1.1) + rchardet (~> 1.8) + globalid (1.3.0) + activesupport (>= 6.1) + google-protobuf (4.27.2) + bigdecimal + rake (>= 13) + haml (6.3.0) + temple (>= 0.8.2) + thor + tilt + hashdiff (1.1.1) + i18n (1.14.7) + concurrent-ruby (~> 1.0) + importmap-rails (2.0.1) + actionpack (>= 6.0.0) + activesupport (>= 6.0.0) + railties (>= 6.0.0) + io-console (0.8.1) + irb (1.15.2) + pp (>= 0.6.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + jmespath (1.6.2) + json (2.10.1) + kredis (1.7.0) + activemodel (>= 6.0.0) + activesupport (>= 6.0.0) + redis (>= 4.2, < 6) + logger (1.6.0) + loofah (2.24.1) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) + mail (2.9.0) + logger + mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp + marcel (1.1.0) + method_source (1.1.0) + mime-types (3.6.0) + logger + mime-types-data (~> 3.2015) + mime-types-data (3.2024.1001) + mini_mime (1.1.5) + minitest (5.26.0) + msgpack (1.7.2) + multi_json (1.15.0) + multipart-post (2.4.1) + net-imap (0.6.3) + date + net-protocol + net-protocol (0.2.2) + timeout + net-smtp (0.5.1) + net-protocol + next_rails (1.4.7) + rainbow (>= 3) + nio4r (2.7.4) + nokogiri (1.18.10-arm64-darwin) + racc (~> 1.4) + nokogiri (1.18.10-x86_64-linux-gnu) + racc (~> 1.4) + octokit (9.2.0) + faraday (>= 1, < 3) + sawyer (~> 0.9) + octopoller (0.3.1) + pg (1.5.6) + popper_js (2.11.8) + pp (0.6.3) + prettyprint + prettyprint (0.2.0) + process_executer (1.1.0) + propshaft (0.9.0) + actionpack (>= 7.0.0) + activesupport (>= 7.0.0) + rack + railties (>= 7.0.0) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + pry-rails (0.3.11) + pry (>= 0.13.0) + psych (5.2.6) + date + stringio + public_suffix (6.0.1) + puma (6.4.2) + nio4r (~> 2.0) + raabro (1.4.0) + racc (1.8.1) + rack (3.2.3) + rack-session (2.1.1) + base64 (>= 0.1.0) + rack (>= 3.0.0) + rack-test (2.2.0) + rack (>= 1.3) + rackup (2.2.1) + rack (>= 3) + rails (8.1.2) + actioncable (= 8.1.2) + actionmailbox (= 8.1.2) + actionmailer (= 8.1.2) + actionpack (= 8.1.2) + actiontext (= 8.1.2) + actionview (= 8.1.2) + activejob (= 8.1.2) + activemodel (= 8.1.2) + activerecord (= 8.1.2) + activestorage (= 8.1.2) + activesupport (= 8.1.2) + bundler (>= 1.15.0) + railties (= 8.1.2) + rails-controller-testing (1.0.5) + actionpack (>= 5.0.1.rc1) + actionview (>= 5.0.1.rc1) + activesupport (>= 5.0.1.rc1) + rails-dom-testing (2.3.0) + activesupport (>= 5.0.0) + minitest + nokogiri (>= 1.6) + rails-erd (1.7.2) + activerecord (>= 4.2) + activesupport (>= 4.2) + choice (~> 0.2.0) + ruby-graphviz (~> 1.2) + rails-html-sanitizer (1.6.2) + 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) + rails-i18n (8.0.2) + i18n (>= 0.7, < 2) + railties (>= 8.0.0, < 9) + rails_bootstrap_navbar (3.0.0) + bootstrap-navbar (~> 3.0) + rails (>= 3.0.0) + railties (8.1.2) + actionpack (= 8.1.2) + activesupport (= 8.1.2) + irb (~> 1.13) + rackup (>= 1.0.0) + rake (>= 12.2) + thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) + zeitwerk (~> 2.6) + rainbow (3.1.1) + rake (13.3.0) + rchardet (1.8.0) + rdoc (6.15.0) + erb + psych (>= 4.0.0) + tsort + redis (5.2.0) + redis-client (>= 0.22.0) + redis-client (0.22.2) + connection_pool + redis-namespace (1.11.0) + redis (>= 4) + reline (0.6.2) + io-console (~> 0.5) + rexml (3.3.7) + rouge (4.3.0) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.13.0) + rspec-rails (6.1.4) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.1) + ruby-graphviz (1.2.5) + rexml + ruby2_keywords (0.0.5) + rufus-scheduler (3.9.1) + fugit (~> 1.1, >= 1.1.6) + sass-embedded (1.77.8-arm64-darwin) + google-protobuf (~> 4.26) + sass-embedded (1.77.8-x86_64-linux-gnu) + google-protobuf (~> 4.26) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + securerandom (0.4.1) + sentry-rails (5.18.2) + railties (>= 5.0) + sentry-ruby (~> 5.18.2) + sentry-ruby (5.18.2) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + sentry-sidekiq (5.18.2) + sentry-ruby (~> 5.18.2) + sidekiq (>= 3.0) + sidekiq (7.3.0) + concurrent-ruby (< 2) + connection_pool (>= 2.3.0) + logger + rack (>= 2.2.4) + redis-client (>= 0.22.2) + sidekiq-scheduler (5.0.5) + rufus-scheduler (~> 3.2) + sidekiq (>= 6, < 8) + tilt (>= 1.4.0, < 3) + simplecov (0.22.0) + docile (~> 1.1) + simplecov-html (~> 0.11) + simplecov_json_formatter (~> 0.1) + simplecov-console (0.9.3) + ansi + simplecov + terminal-table + simplecov-html (0.13.1) + simplecov_json_formatter (0.1.4) + sitemap_generator (6.3.0) + builder (~> 3.0) + stimulus-rails (1.3.3) + railties (>= 6.0.0) + stringio (3.1.7) + temple (0.10.3) + terminal-table (4.0.0) + unicode-display_width (>= 1.1.1, < 4) + thor (1.4.0) + tilt (2.4.0) + timeout (0.4.3) + tsort (0.2.0) + turbo-rails (2.0.6) + actionpack (>= 6.0.0) + activejob (>= 6.0.0) + railties (>= 6.0.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unicode-display_width (3.1.4) + unicode-emoji (~> 4.0, >= 4.0.4) + unicode-emoji (4.0.4) + uri (1.0.4) + useragent (0.16.11) + vcr (6.3.1) + base64 + webmock (3.23.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) + websocket-driver (0.8.0) + base64 + websocket-extensions (>= 0.1.0) + websocket-extensions (0.1.5) + zeitwerk (2.7.3) + +PLATFORMS + arm64-darwin-23 + arm64-darwin-24 + arm64-darwin-25 + x86_64-linux + +DEPENDENCIES + amazing_print (~> 1.5) + annotaterb (~> 4.4) + aws-sdk-s3 (~> 1.8) + baseline! + better_errors (~> 2.8) + binding_of_caller (~> 1.0) + bootsnap (~> 1.17) + bootstrap (~> 5.3.3) + byebug (~> 11.1) + codecov + dartsass-rails (~> 0.5) + database_cleaner-active_record + dotenv (~> 3.1.2) + factory_bot_rails (~> 6.2) + faraday + faraday-multipart + faraday-retry + faraday_middleware + fog-aws + gems! + git (~> 2.1) + haml (~> 6.0) + importmap-rails (~> 2.0) + kredis (~> 1.2) + net-pop! + next_rails + octokit (~> 9.1) + octopoller (~> 0.3) + pg + propshaft (~> 0.8) + pry-rails (~> 0.3) + puma (~> 6.4) + rails (~> 8.1.0) + rails-controller-testing + rails-erd + rails-i18n (~> 8.x) + rails_bootstrap_navbar (~> 3.0) + redis (~> 5.0) + redis-namespace (~> 1.11) + rspec-rails (~> 6.1.0) + sentry-rails (~> 5.5) + sentry-sidekiq (~> 5.5) + sidekiq (~> 7.2) + sidekiq-scheduler (~> 5.0) + simplecov (~> 0.22) + simplecov-console + sitemap_generator (~> 6.3) + stimulus-rails (~> 1.3) + turbo-rails (~> 2.0) + vcr + webmock + +RUBY VERSION + ruby 3.4.7p58 + +BUNDLED WITH + 2.5.13 diff --git a/config/application.rb b/config/application.rb index 5090518..d3d39b1 100644 --- a/config/application.rb +++ b/config/application.rb @@ -16,11 +16,10 @@ module RailsBump class Application < Rails::Application - config.load_defaults 7.1 + config.load_defaults 8.0 config.autoload_lib ignore: %w(assets tasks) config.time_zone = "Berlin" - config.active_support.to_time_preserves_timezone = :zone config.revision = ENV.fetch("HEROKU_SLUG_COMMIT") { `git rev-parse HEAD 2> /dev/null`.chomp } # config.revision = begin # ENV.fetch("HATCHBOX_REVISION")