From ce13949d04bb8f24b35d5a987bd80ab24bb8435b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Tue, 14 Apr 2026 20:17:23 -0600 Subject: [PATCH 1/2] Make it work with ruby 3.2 --- .ruby-version | 2 +- .tool-versions | 1 + Gemfile | 2 +- Gemfile.lock | 635 +++++++++++++++++++++++++++++-------------------- 4 files changed, 385 insertions(+), 255 deletions(-) create mode 100644 .tool-versions diff --git a/.ruby-version b/.ruby-version index 2a49746..b347b11 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -ruby-3.1.1 +3.2.3 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..b347b11 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +3.2.3 diff --git a/Gemfile b/Gemfile index 47b58eb..e49b4b5 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby "3.1.1" +ruby "3.2.3" # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" gem "rails", "~> 7.0.4" diff --git a/Gemfile.lock b/Gemfile.lock index 833b390..7db80ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,144 +1,197 @@ GIT remote: https://github.com/fastruby/sitemap-parser.git - revision: 5c7a74c0e4d69f63d277f6e1c8163ffa3566ca07 + revision: 4e3a281ac5d80e2cb7e7fc3c2bef70128abead16 branch: fixes/recurse-to-level-n specs: sitemap-parser (0.5.6) - nokogiri (~> 1.6) + nokogiri (>= 1.6) typhoeus (>= 0.6, < 2.0) GEM remote: https://rubygems.org/ specs: - actioncable (7.0.4) - actionpack (= 7.0.4) - activesupport (= 7.0.4) + actioncable (7.0.10) + actionpack (= 7.0.10) + activesupport (= 7.0.10) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4) - actionpack (= 7.0.4) - activejob (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + actionmailbox (7.0.10) + actionpack (= 7.0.10) + activejob (= 7.0.10) + activerecord (= 7.0.10) + activestorage (= 7.0.10) + activesupport (= 7.0.10) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4) - actionpack (= 7.0.4) - actionview (= 7.0.4) - activejob (= 7.0.4) - activesupport (= 7.0.4) + actionmailer (7.0.10) + actionpack (= 7.0.10) + actionview (= 7.0.10) + activejob (= 7.0.10) + activesupport (= 7.0.10) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4) - actionview (= 7.0.4) - activesupport (= 7.0.4) - rack (~> 2.0, >= 2.2.0) + actionpack (7.0.10) + actionview (= 7.0.10) + activesupport (= 7.0.10) + racc + rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4) - actionpack (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + actiontext (7.0.10) + actionpack (= 7.0.10) + activerecord (= 7.0.10) + activestorage (= 7.0.10) + activesupport (= 7.0.10) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4) - activesupport (= 7.0.4) + actionview (7.0.10) + activesupport (= 7.0.10) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4) - activesupport (= 7.0.4) + activejob (7.0.10) + activesupport (= 7.0.10) globalid (>= 0.3.6) - activemodel (7.0.4) - activesupport (= 7.0.4) - activerecord (7.0.4) - activemodel (= 7.0.4) - activesupport (= 7.0.4) - activestorage (7.0.4) - actionpack (= 7.0.4) - activejob (= 7.0.4) - activerecord (= 7.0.4) - activesupport (= 7.0.4) + activemodel (7.0.10) + activesupport (= 7.0.10) + activerecord (7.0.10) + activemodel (= 7.0.10) + activesupport (= 7.0.10) + activestorage (7.0.10) + actionpack (= 7.0.10) + activejob (= 7.0.10) + activerecord (= 7.0.10) + activesupport (= 7.0.10) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4) + activesupport (7.0.10) + base64 + benchmark (>= 0.3) + bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) + mutex_m + securerandom (>= 0.3) tzinfo (~> 2.0) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - ast (2.4.2) - bcrypt (3.1.18) + addressable (2.9.0) + public_suffix (>= 2.0.2, < 8.0) + ast (2.4.3) + base64 (0.3.0) + bcrypt (3.1.22) + benchmark (0.5.0) + bigdecimal (4.1.1) bindex (0.8.1) - bootsnap (1.13.0) + bootsnap (1.23.0) msgpack (~> 1.2) - builder (3.2.4) - capybara (3.37.1) + builder (3.3.0) + capybara (3.40.0) addressable matrix mini_mime (>= 0.1.3) - nokogiri (~> 1.8) + nokogiri (~> 1.11) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) childprocess (4.1.0) coderay (1.1.3) - colorize (0.8.1) - concurrent-ruby (1.1.10) - connection_pool (2.3.0) + concurrent-ruby (1.3.6) + connection_pool (3.0.2) crass (1.0.6) - cssbundling-rails (1.1.1) + cssbundling-rails (1.4.3) railties (>= 6.0.0) - debug (1.6.2) - irb (>= 1.3.6) - reline (>= 0.3.1) - devise (4.8.1) + csv (3.3.5) + date (3.5.1) + debug (1.11.1) + irb (~> 1.10) + reline (>= 0.3.8) + devise (4.9.4) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) responders warden (~> 1.2.3) - diff-lcs (1.5.0) - docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - dotenv (2.8.1) - dotenv-rails (2.8.1) - dotenv (= 2.8.1) - railties (>= 3.2) - dotenv_validator (1.2.0) + diff-lcs (1.6.2) + docile (1.4.1) + domain_name (0.6.20240107) + dotenv (3.2.0) + dotenv-rails (3.2.0) + dotenv (= 3.2.0) + railties (>= 6.1) + dotenv_validator (1.3.0) fast_blank (~> 1.0.0) - erubi (1.11.0) - ethon (0.15.0) + drb (2.2.3) + dry-configurable (1.3.0) + dry-core (~> 1.1) + zeitwerk (~> 2.6) + dry-core (1.2.0) + concurrent-ruby (~> 1.0) + logger + zeitwerk (~> 2.6) + dry-inflector (1.3.1) + dry-initializer (3.2.0) + dry-logic (1.6.0) + bigdecimal + concurrent-ruby (~> 1.0) + dry-core (~> 1.1) + zeitwerk (~> 2.6) + dry-schema (1.16.0) + concurrent-ruby (~> 1.0) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.1) + dry-initializer (~> 3.2) + dry-logic (~> 1.6) + dry-types (~> 1.9, >= 1.9.1) + zeitwerk (~> 2.6) + dry-types (1.9.1) + bigdecimal (>= 3.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + erb (6.0.2) + erubi (1.13.1) + ethon (0.18.0) ffi (>= 1.15.0) - factory_bot (6.2.1) - activesupport (>= 5.0.0) - factory_bot_rails (6.2.0) - factory_bot (~> 6.2.0) - railties (>= 5.0.0) - faraday (2.7.6) - faraday-net_http (>= 2.0, < 3.1) - ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.2) + logger + event_stream_parser (1.0.0) + factory_bot (6.5.6) + activesupport (>= 6.1.0) + factory_bot_rails (6.5.1) + factory_bot (~> 6.5) + railties (>= 6.1.0) + faraday (2.14.1) + faraday-net_http (>= 2.0, < 3.5) + json + logger + faraday-multipart (1.2.0) + multipart-post (~> 2.0) + faraday-net_http (3.4.2) + net-http (~> 0.5) fast_blank (1.0.1) - ffi (1.15.5) - formatador (1.1.0) - globalid (1.0.0) - activesupport (>= 5.0) - guard (2.18.0) + ffi (1.17.4-aarch64-linux-gnu) + ffi (1.17.4-arm64-darwin) + ffi (1.17.4-x86_64-darwin) + ffi (1.17.4-x86_64-linux-gnu) + formatador (1.2.3) + reline + globalid (1.3.0) + activesupport (>= 6.1) + guard (2.20.1) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) + logger (~> 1.6) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) @@ -150,268 +203,341 @@ GEM guard (~> 2.1) guard-compat (~> 1.1) rspec (>= 2.99.0, < 4.0) - hashie (5.0.0) - http-cookie (1.0.5) + hashie (5.1.0) + logger + http-cookie (1.1.4) domain_name (~> 0.5) - httparty (0.20.0) - mime-types (~> 3.0) + httparty (0.24.2) + csv + mini_mime (>= 1.0.0) multi_xml (>= 0.5.2) - i18n (1.12.0) + i18n (1.14.8) concurrent-ruby (~> 1.0) iniparse (1.5.0) - io-console (0.5.11) - irb (1.4.2) - reline (>= 0.3.0) - jsbundling-rails (1.0.3) + io-console (0.8.2) + irb (1.17.0) + pp (>= 0.6.0) + prism (>= 1.3.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) + jsbundling-rails (1.3.1) railties (>= 6.0.0) - json (2.6.2) - jwt (2.7.1) - kwalify (0.7.2) - listen (3.7.1) + json (2.19.3) + jwt (3.1.2) + base64 + language_server-protocol (3.17.0.5) + lint_roller (1.1.0) + listen (3.10.0) + logger rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.19.0) + logger (1.7.0) + loofah (2.25.1) crass (~> 1.0.2) - nokogiri (>= 1.5.9) - lumberjack (1.2.8) - mail (2.7.1) + nokogiri (>= 1.12.0) + lumberjack (1.4.2) + mail (2.9.0) + logger mini_mime (>= 0.1.1) - marcel (1.0.2) - matrix (0.4.2) - mechanize (2.8.5) + net-imap + net-pop + net-smtp + marcel (1.1.0) + matrix (0.4.3) + mechanize (2.14.0) addressable (~> 2.8) + base64 domain_name (~> 0.5, >= 0.5.20190701) http-cookie (~> 1.0, >= 1.0.3) - mime-types (~> 3.0) + mime-types (~> 3.3) net-http-digest_auth (~> 1.4, >= 1.4.1) net-http-persistent (>= 2.5.2, < 5.0.dev) + nkf nokogiri (~> 1.11, >= 1.11.2) rubyntlm (~> 0.6, >= 0.6.3) webrick (~> 1.7) webrobots (~> 0.1.2) - method_source (1.0.0) - mime-types (3.4.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2022.0105) - mini_mime (1.1.2) - minitest (5.16.3) - msgpack (1.6.0) - multi_xml (0.6.0) + method_source (1.1.0) + mime-types (3.7.0) + logger + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2026.0414) + mini_mime (1.1.5) + minitest (6.0.4) + drb (~> 2.0) + prism (~> 1.5) + msgpack (1.8.0) + multi_xml (0.8.1) + bigdecimal (>= 3.1, < 5) + multipart-post (2.4.1) + mutex_m (0.3.0) nenv (0.3.0) + net-http (0.9.1) + uri (>= 0.11.1) net-http-digest_auth (1.4.1) - net-http-persistent (4.0.1) - connection_pool (~> 2.2) - net-imap (0.3.1) + net-http-persistent (4.0.8) + connection_pool (>= 2.2.4, < 4) + net-imap (0.6.3) + date net-protocol net-pop (0.1.2) net-protocol - net-protocol (0.1.3) + net-protocol (0.2.2) timeout - net-smtp (0.3.3) + net-smtp (0.5.1) net-protocol - next_rails (1.2.1) - colorize (>= 0.8.1) - nio4r (2.5.8) - nokogiri (1.13.9-aarch64-linux) + next_rails (1.5.0) + rainbow (>= 3) + nio4r (2.7.5) + nkf (0.2.0) + nokogiri (1.19.2-aarch64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.2-arm64-darwin) racc (~> 1.4) - nokogiri (1.13.9-x86_64-darwin) + nokogiri (1.19.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.13.9-x86_64-linux) + nokogiri (1.19.2-x86_64-linux-gnu) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (2.0.9) - faraday (>= 0.17.3, < 3.0) - jwt (>= 1.0, < 3.0) + oauth2 (2.0.18) + faraday (>= 0.17.3, < 4.0) + jwt (>= 1.0, < 4.0) + logger (~> 1.2) multi_xml (~> 0.5) rack (>= 1.2, < 4) - snaky_hash (~> 2.0) - version_gem (~> 1.1) - ombu_labs-auth (1.0.0) - devise (~> 4.8.1) + snaky_hash (~> 2.0, >= 2.0.3) + version_gem (~> 1.1, >= 1.1.9) + ombu_labs-auth (1.1.1) + devise (~> 4.9) omniauth (~> 2.1.0) omniauth-github (~> 2.0.0) omniauth-rails_csrf_protection - rails (>= 6.0) + rails (>= 6.0, < 8.1) ombu_labs-shortener (0.2.0) rebrandly - omniauth (2.1.1) + omniauth (2.1.4) hashie (>= 3.4.6) + logger rack (>= 2.2.3) rack-protection omniauth-github (2.0.1) omniauth (~> 2.0) omniauth-oauth2 (~> 1.8) - omniauth-oauth2 (1.8.0) - oauth2 (>= 1.4, < 3) + omniauth-oauth2 (1.9.0) + oauth2 (>= 2.0.2, < 3) omniauth (~> 2.0) - omniauth-rails_csrf_protection (1.0.1) + omniauth-rails_csrf_protection (2.0.1) actionpack (>= 4.2) omniauth (~> 2.0) orm_adapter (0.5.0) overcommit (0.57.0) childprocess (>= 0.6.3, < 5) iniparse (~> 1.4) - pagy (5.10.1) - activesupport - parallel (1.22.1) - parser (3.1.2.1) + pagy (43.4.4) + json + uri + yaml + parallel (1.28.0) + parser (3.3.11.1) ast (~> 2.4.1) - pg (1.4.3) - propshaft (0.6.4) + racc + pg (1.6.3-aarch64-linux) + pg (1.6.3-arm64-darwin) + pg (1.6.3-x86_64-darwin) + pg (1.6.3-x86_64-linux) + pp (0.6.3) + prettyprint + prettyprint (0.2.0) + prism (1.9.0) + propshaft (1.3.1) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack - railties (>= 7.0.0) - pry (0.14.1) + pry (0.16.0) coderay (~> 1.1) method_source (~> 1.0) - public_suffix (5.0.0) - puma (5.6.5) + reline (>= 0.6.0) + psych (5.3.1) + date + stringio + public_suffix (7.0.5) + puma (5.6.9) nio4r (~> 2.0) - racc (1.6.0) - rack (2.2.4) - rack-protection (3.0.6) - rack - rack-test (2.0.2) + racc (1.8.1) + rack (2.2.23) + rack-protection (3.2.0) + base64 (>= 0.1.0) + rack (~> 2.2, >= 2.2.4) + rack-test (2.2.0) rack (>= 1.3) - rails (7.0.4) - actioncable (= 7.0.4) - actionmailbox (= 7.0.4) - actionmailer (= 7.0.4) - actionpack (= 7.0.4) - actiontext (= 7.0.4) - actionview (= 7.0.4) - activejob (= 7.0.4) - activemodel (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + rails (7.0.10) + actioncable (= 7.0.10) + actionmailbox (= 7.0.10) + actionmailer (= 7.0.10) + actionpack (= 7.0.10) + actiontext (= 7.0.10) + actionview (= 7.0.10) + activejob (= 7.0.10) + activemodel (= 7.0.10) + activerecord (= 7.0.10) + activestorage (= 7.0.10) + activesupport (= 7.0.10) bundler (>= 1.15.0) - railties (= 7.0.4) + railties (= 7.0.10) 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.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.3.0) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.4.3) - loofah (~> 2.3) - railties (7.0.4) - actionpack (= 7.0.4) - activesupport (= 7.0.4) + rails-html-sanitizer (1.7.0) + loofah (~> 2.25) + 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 (7.0.10) + actionpack (= 7.0.10) + activesupport (= 7.0.10) method_source rake (>= 12.2) thor (~> 1.0) zeitwerk (~> 2.5) rainbow (3.1.1) - rake (13.0.6) + rake (13.4.1) rb-fsevent (0.11.2) - rb-inotify (0.10.1) + rb-inotify (0.11.1) ffi (~> 1.0) + rdoc (7.2.0) + erb + psych (>= 4.0.0) + tsort rebrandly (0.1.5) httparty (~> 0.14) - reek (6.1.1) - kwalify (~> 0.7.0) - parser (~> 3.1.0) + reek (6.5.0) + dry-schema (~> 1.13) + logger (~> 1.6) + parser (~> 3.3.0) rainbow (>= 2.0, < 4.0) - regexp_parser (2.6.0) - reline (0.3.1) + rexml (~> 3.1) + regexp_parser (2.12.0) + reline (0.6.3) io-console (~> 0.5) - responders (3.1.0) - actionpack (>= 5.2) - railties (>= 5.2) - rexml (3.2.5) - rspec (3.11.0) - rspec-core (~> 3.11.0) - rspec-expectations (~> 3.11.0) - rspec-mocks (~> 3.11.0) - rspec-core (3.11.0) - rspec-support (~> 3.11.0) - rspec-expectations (3.11.1) + responders (3.2.0) + actionpack (>= 7.0) + railties (>= 7.0) + rexml (3.4.4) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-mocks (3.11.1) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.11.0) - rspec-rails (5.1.2) - actionpack (>= 5.2) - activesupport (>= 5.2) - railties (>= 5.2) - rspec-core (~> 3.10) - rspec-expectations (~> 3.10) - rspec-mocks (~> 3.10) - rspec-support (~> 3.10) - rspec-support (3.11.1) - rubocop (1.35.1) + rspec-support (~> 3.13.0) + rspec-rails (7.1.1) + actionpack (>= 7.0) + activesupport (>= 7.0) + railties (>= 7.0) + rspec-core (~> 3.13) + rspec-expectations (~> 3.13) + rspec-mocks (~> 3.13) + rspec-support (~> 3.13) + rspec-support (3.13.7) + rubocop (1.84.2) json (~> 2.3) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.1.0) parallel (~> 1.10) - parser (>= 3.1.2.1) + parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.20.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.49.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) - parser (>= 3.1.1.0) - rubocop-performance (1.14.3) - rubocop (>= 1.7.0, < 2.0) - rubocop-ast (>= 0.4.0) - rubocop-rails (2.16.1) + unicode-display_width (>= 2.4.0, < 4.0) + rubocop-ast (1.49.1) + parser (>= 3.3.7.2) + prism (~> 1.7) + rubocop-performance (1.26.1) + lint_roller (~> 1.1) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) + rubocop-rails (2.34.3) activesupport (>= 4.2.0) + lint_roller (~> 1.1) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) - rubocop-rspec (2.13.2) - rubocop (~> 1.33) - ruby-openai (3.6.0) - httparty (>= 0.18.1) - ruby-progressbar (1.11.0) - ruby2_keywords (0.0.5) - rubyntlm (0.6.3) - rubyzip (2.3.2) - selenium-webdriver (4.5.0) - childprocess (>= 0.5, < 5.0) + rubocop (>= 1.75.0, < 2.0) + rubocop-ast (>= 1.44.0, < 2.0) + rubocop-rspec (3.9.0) + lint_roller (~> 1.1) + rubocop (~> 1.81) + ruby-openai (8.3.0) + event_stream_parser (>= 0.3.0, < 2.0.0) + faraday (>= 1) + faraday-multipart (>= 1) + ruby-progressbar (1.13.0) + rubyntlm (0.6.5) + base64 + rubyzip (3.2.2) + securerandom (0.4.1) + selenium-webdriver (4.43.0) + base64 (~> 0.2) + logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) - rubyzip (>= 1.2.2, < 3.0) + rubyzip (>= 1.2.2, < 4.0) websocket (~> 1.0) shellany (0.0.1) - simplecov (0.21.2) + simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) + simplecov-html (0.13.2) simplecov_json_formatter (0.1.4) - snaky_hash (2.0.1) - hashie - version_gem (~> 1.1, >= 1.1.1) - standard (1.16.1) - rubocop (= 1.35.1) - rubocop-performance (= 1.14.3) - stimulus-rails (1.1.0) - railties (>= 6.0.0) - tailwindcss-rails (2.0.16-aarch64-linux) - railties (>= 6.0.0) - tailwindcss-rails (2.0.16-x86_64-darwin) + snaky_hash (2.0.3) + hashie (>= 0.1.0, < 6) + version_gem (>= 1.1.8, < 3) + standard (1.54.0) + language_server-protocol (~> 3.17.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.84.0) + standard-custom (~> 1.0.0) + standard-performance (~> 1.8) + standard-custom (1.0.2) + lint_roller (~> 1.0) + rubocop (~> 1.50) + standard-performance (1.9.0) + lint_roller (~> 1.1) + rubocop-performance (~> 1.26.0) + stimulus-rails (1.3.4) railties (>= 6.0.0) - tailwindcss-rails (2.0.16-x86_64-linux) - railties (>= 6.0.0) - thor (1.2.1) - timeout (0.3.0) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (2.0.5) + stringio (3.2.0) + tailwindcss-rails (4.4.0) + railties (>= 7.0.0) + tailwindcss-ruby (~> 4.0) + tailwindcss-ruby (4.2.2-aarch64-linux-gnu) + tailwindcss-ruby (4.2.2-arm64-darwin) + tailwindcss-ruby (4.2.2-x86_64-darwin) + tailwindcss-ruby (4.2.2-x86_64-linux-gnu) + thor (1.5.0) + timeout (0.6.1) + tsort (0.2.0) + typhoeus (1.6.0) + ethon (>= 0.18.0) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.3.0) - version_gem (1.1.3) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.2.0) + uri (1.1.1) + version_gem (1.1.9) warden (1.2.9) rack (>= 2.0.9) - web-console (4.2.0) + web-console (4.2.1) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) @@ -420,18 +546,21 @@ GEM nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (~> 4.0) - webrick (1.7.0) + webrick (1.9.2) webrobots (0.1.2) - websocket (1.2.9) - websocket-driver (0.7.5) + websocket (1.2.11) + websocket-driver (0.8.0) + base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.4) + yaml (0.4.0) + zeitwerk (2.7.5) PLATFORMS aarch64-linux + arm64-darwin-24 x86_64-darwin-20 x86_64-darwin-21 x86_64-darwin-22 @@ -474,7 +603,7 @@ DEPENDENCIES webdrivers RUBY VERSION - ruby 3.1.1p18 + ruby 3.2.3p157 BUNDLED WITH 2.3.23 From 3d5e0d11941bf1710fc60a10bc281a205aa48674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20V=C3=A1squez?= Date: Thu, 16 Apr 2026 16:01:08 -0600 Subject: [PATCH 2/2] Upgrade Rails 7.0.10 to 7.1.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Gemfile: bump to rails ~> 7.1.6, keep next_rails for future hops - config/application.rb: load_defaults 7.1, add_autoload_paths_to_load_path = false - config/environments/{dev,test,prod}.rb: cache_classes -> enable_reloading - spec/rails_helper.rb: fixture_path -> fixture_paths (plural, 7.1 API) Process: dual-booted with next_rails, ran breaking-change detection against rails-upgrade skill's 7.1 patterns, fixed each with NextRails.next? branches under Gemfile.next, then consolidated once 7.1 went green. load_defaults 7.1 flags flipped via the rails-load-defaults skill. Not flipped: action_view.sanitizer_vendor, action_text.sanitizer_vendor. Rails::HTML constant isn't loaded at initializer time because config/application.rb uses selective railtie loading (no action_text, no active_storage). App doesn't use sanitize/strip_tags/Action Text, so harmless. load_defaults 7.1 applies the internal defaults via a different code path that doesn't fail. Tailwind: move app/assets/stylesheets/application.tailwind.css to app/assets/tailwind/application.css and rewrite for Tailwind v4 (@import "tailwindcss", @reference in component layer). Disclaimer: this was already broken before the Rails upgrade — tailwindcss-rails 4.4.0 (which ships Tailwind v4) was already in Gemfile.lock on the base branch, but the CSS file was still using v3 syntax and the v3 default path. The Rails upgrade did not cause this; it only surfaced during the smoke test. Tests: 5/5 passing on Rails 7.1.6. Only residual deprecation is Rails.application.secrets coming from a dependency's internals — flagged for the 7.1 -> 7.2 hop. --- Gemfile | 4 +- Gemfile.lock | 145 ++++++++++-------- .../application.css} | 6 +- config/application.rb | 5 +- config/environments/development.rb | 2 +- config/environments/production.rb | 2 +- config/environments/test.rb | 2 +- spec/rails_helper.rb | 2 +- 8 files changed, 93 insertions(+), 75 deletions(-) rename app/assets/{stylesheets/application.tailwind.css => tailwind/application.css} (83%) diff --git a/Gemfile b/Gemfile index e49b4b5..d7315b2 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" } ruby "3.2.3" # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" -gem "rails", "~> 7.0.4" +gem "rails", "~> 7.1.6" # Application Dependencies gem "dotenv-rails" @@ -85,8 +85,8 @@ group :development, :test do gem "rubocop-rails" gem "reek" gem "overcommit", "0.57.0" - gem "next_rails" end +gem "next_rails" gem "dotenv-rails" gem "dotenv_validator" gem "pagy" diff --git a/Gemfile.lock b/Gemfile.lock index 7db80ed..ab83fa1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -10,72 +10,78 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.0.10) - actionpack (= 7.0.10) - activesupport (= 7.0.10) + actioncable (7.1.6) + actionpack (= 7.1.6) + activesupport (= 7.1.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.10) - actionpack (= 7.0.10) - activejob (= 7.0.10) - activerecord (= 7.0.10) - activestorage (= 7.0.10) - activesupport (= 7.0.10) + zeitwerk (~> 2.6) + actionmailbox (7.1.6) + actionpack (= 7.1.6) + activejob (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.10) - actionpack (= 7.0.10) - actionview (= 7.0.10) - activejob (= 7.0.10) - activesupport (= 7.0.10) + actionmailer (7.1.6) + actionpack (= 7.1.6) + actionview (= 7.1.6) + activejob (= 7.1.6) + activesupport (= 7.1.6) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.10) - actionview (= 7.0.10) - activesupport (= 7.0.10) + rails-dom-testing (~> 2.2) + actionpack (7.1.6) + actionview (= 7.1.6) + activesupport (= 7.1.6) + cgi + nokogiri (>= 1.8.5) racc - rack (~> 2.0, >= 2.2.4) + rack (>= 2.2.4) + rack-session (>= 1.0.1) rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.10) - actionpack (= 7.0.10) - activerecord (= 7.0.10) - activestorage (= 7.0.10) - activesupport (= 7.0.10) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + actiontext (7.1.6) + actionpack (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.10) - activesupport (= 7.0.10) + actionview (7.1.6) + activesupport (= 7.1.6) builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.10) - activesupport (= 7.0.10) + cgi + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.1.6) + activesupport (= 7.1.6) globalid (>= 0.3.6) - activemodel (7.0.10) - activesupport (= 7.0.10) - activerecord (7.0.10) - activemodel (= 7.0.10) - activesupport (= 7.0.10) - activestorage (7.0.10) - actionpack (= 7.0.10) - activejob (= 7.0.10) - activerecord (= 7.0.10) - activesupport (= 7.0.10) + activemodel (7.1.6) + activesupport (= 7.1.6) + activerecord (7.1.6) + activemodel (= 7.1.6) + activesupport (= 7.1.6) + timeout (>= 0.4.0) + activestorage (7.1.6) + actionpack (= 7.1.6) + activejob (= 7.1.6) + activerecord (= 7.1.6) + activesupport (= 7.1.6) marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.10) + activesupport (7.1.6) base64 benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) logger (>= 1.4.2) @@ -103,6 +109,7 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) + cgi (0.5.1) childprocess (4.1.0) coderay (1.1.3) concurrent-ruby (1.3.6) @@ -370,22 +377,27 @@ GEM rack-protection (3.2.0) base64 (>= 0.1.0) rack (~> 2.2, >= 2.2.4) + rack-session (1.0.2) + rack (< 3) rack-test (2.2.0) rack (>= 1.3) - rails (7.0.10) - actioncable (= 7.0.10) - actionmailbox (= 7.0.10) - actionmailer (= 7.0.10) - actionpack (= 7.0.10) - actiontext (= 7.0.10) - actionview (= 7.0.10) - activejob (= 7.0.10) - activemodel (= 7.0.10) - activerecord (= 7.0.10) - activestorage (= 7.0.10) - activesupport (= 7.0.10) + rackup (1.0.1) + rack (< 3) + webrick + rails (7.1.6) + actioncable (= 7.1.6) + actionmailbox (= 7.1.6) + actionmailer (= 7.1.6) + actionpack (= 7.1.6) + actiontext (= 7.1.6) + actionview (= 7.1.6) + activejob (= 7.1.6) + activemodel (= 7.1.6) + activerecord (= 7.1.6) + activestorage (= 7.1.6) + activesupport (= 7.1.6) bundler (>= 1.15.0) - railties (= 7.0.10) + railties (= 7.1.6) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -397,13 +409,16 @@ GEM rails-html-sanitizer (1.7.0) loofah (~> 2.25) 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 (7.0.10) - actionpack (= 7.0.10) - activesupport (= 7.0.10) - method_source + railties (7.1.6) + actionpack (= 7.1.6) + activesupport (= 7.1.6) + cgi + irb + rackup (>= 1.0.0) rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) + thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) + zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.4.1) rb-fsevent (0.11.2) @@ -585,7 +600,7 @@ DEPENDENCIES pg (~> 1.1) propshaft puma (~> 5.0) - rails (~> 7.0.4) + rails (~> 7.1.6) rails-controller-testing reek rspec-rails diff --git a/app/assets/stylesheets/application.tailwind.css b/app/assets/tailwind/application.css similarity index 83% rename from app/assets/stylesheets/application.tailwind.css rename to app/assets/tailwind/application.css index eb85a81..72f157e 100644 --- a/app/assets/stylesheets/application.tailwind.css +++ b/app/assets/tailwind/application.css @@ -1,8 +1,8 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; @layer components { + @reference "tailwindcss"; + .btn-primary { @apply py-2 px-4 bg-blue-200; } diff --git a/config/application.rb b/config/application.rb index 2e31b7d..69fbde4 100644 --- a/config/application.rb +++ b/config/application.rb @@ -21,7 +21,10 @@ module Librarian class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 7.0 + config.load_defaults 7.1 + + # No autoloaded requires from app/ or lib/, safe to disable (Rails 7.1 new default) + config.add_autoload_paths_to_load_path = false # Configuration for the application, engines, and railties goes here. # diff --git a/config/environments/development.rb b/config/environments/development.rb index 22ed1b5..776444e 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -6,7 +6,7 @@ # In the development environment your application's code is reloaded any time # it changes. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. - config.cache_classes = false + config.enable_reloading = true # Do not eager load code on boot. config.eager_load = false diff --git a/config/environments/production.rb b/config/environments/production.rb index b09ea2c..5d483e0 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -4,7 +4,7 @@ # Settings specified here will take precedence over those in config/application.rb. # Code is not reloaded between requests. - config.cache_classes = true + config.enable_reloading = false # Eager load code on boot. This eager loads most of Rails and # your application in memory, allowing both threaded web servers diff --git a/config/environments/test.rb b/config/environments/test.rb index eb2f171..49320bf 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -9,7 +9,7 @@ # Settings specified here will take precedence over those in config/application.rb. # Turn false under Spring and add config.action_view.cache_template_loading = true. - config.cache_classes = true + config.enable_reloading = false # Eager loading loads your whole application. When running a single test locally, # this probably isn't necessary. It's a good idea to do in a continuous integration diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 8a7a5e4..369c215 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -32,7 +32,7 @@ end RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" + config.fixture_paths = ["#{::Rails.root}/spec/fixtures"] # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false