From 14be84ca51bfc2c2d8dca9751e954ef8e9cf46b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20A=2E=20Matienzo?= Date: Tue, 19 Aug 2025 14:54:40 -0700 Subject: [PATCH 1/2] Update to Ruby 3.3+ and latest Rails 7.0 --- Dockerfile | 4 +- Gemfile | 10 +- Gemfile.lock | 362 ++++++++++++++++++++++++++----------------------- config/boot.rb | 1 + 4 files changed, 204 insertions(+), 173 deletions(-) diff --git a/Dockerfile b/Dockerfile index cbb87f1..96521e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ # The base stage scaffolds elements which are common to building and running # the application, such as installing ca-certificates, creating the app user, # and installing runtime system dependencies. -FROM ruby:3.0.3-slim AS base +FROM ruby:3.3-slim AS base # ------------------------------------------------------------ # Declarative metadata @@ -87,7 +87,7 @@ RUN apt-get install -y --no-install-recommends \ USER $APP_USER # Base image ships with an older version of bundler -RUN gem install bundler --version 2.2.33 +RUN gem install bundler --version 2.5.22 # Install gems. We don't enforce the validity of the Gemfile.lock until the # final (production) stage. diff --git a/Gemfile b/Gemfile index e4ec389..89bcf8a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,15 +1,17 @@ source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } -ruby '3.0.3' +ruby '~> 3.3' -gem 'berkeley_library-alma', '~> 0.0.7', '>= 0.0.7.1' -gem 'berkeley_library-logging', '~> 0.2', '>= 0.2.7' -gem 'berkeley_library-util', '~> 0.1.5' +gem 'berkeley_library-alma', '~> 0.1.1' +gem 'berkeley_library-logging', '~> 0.3' +gem 'berkeley_library-util', '~> 0.2.0' +gem 'drb' gem 'image_processing', '~> 1.12' gem 'jsonapi.rb', '~> 2.0' gem 'jsonapi-serializer', '~> 2.2' gem 'jwt', '~> 2.4' +gem 'mutex_m' gem 'omniauth', '~> 1.9', '>= 1.9.2' gem 'omniauth-cas', '~> 2.0' gem 'pg', '~> 1.4' diff --git a/Gemfile.lock b/Gemfile.lock index 3643260..eeae344 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,183 +1,197 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) + actioncable (7.0.8.7) + actionpack (= 7.0.8.7) + activesupport (= 7.0.8.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + actionmailbox (7.0.8.7) + actionpack (= 7.0.8.7) + activejob (= 7.0.8.7) + activerecord (= 7.0.8.7) + activestorage (= 7.0.8.7) + activesupport (= 7.0.8.7) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4.3) - actionpack (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activesupport (= 7.0.4.3) + actionmailer (7.0.8.7) + actionpack (= 7.0.8.7) + actionview (= 7.0.8.7) + activejob (= 7.0.8.7) + activesupport (= 7.0.8.7) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4.3) - actionview (= 7.0.4.3) - activesupport (= 7.0.4.3) - rack (~> 2.0, >= 2.2.0) + actionpack (7.0.8.7) + actionview (= 7.0.8.7) + activesupport (= 7.0.8.7) + 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.3) - actionpack (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + actiontext (7.0.8.7) + actionpack (= 7.0.8.7) + activerecord (= 7.0.8.7) + activestorage (= 7.0.8.7) + activesupport (= 7.0.8.7) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4.3) - activesupport (= 7.0.4.3) + actionview (7.0.8.7) + activesupport (= 7.0.8.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4.3) - activesupport (= 7.0.4.3) + activejob (7.0.8.7) + activesupport (= 7.0.8.7) globalid (>= 0.3.6) - activemodel (7.0.4.3) - activesupport (= 7.0.4.3) - activerecord (7.0.4.3) - activemodel (= 7.0.4.3) - activesupport (= 7.0.4.3) - activestorage (7.0.4.3) - actionpack (= 7.0.4.3) - activejob (= 7.0.4.3) - activerecord (= 7.0.4.3) - activesupport (= 7.0.4.3) + activemodel (7.0.8.7) + activesupport (= 7.0.8.7) + activerecord (7.0.8.7) + activemodel (= 7.0.8.7) + activesupport (= 7.0.8.7) + activestorage (7.0.8.7) + actionpack (= 7.0.8.7) + activejob (= 7.0.8.7) + activerecord (= 7.0.8.7) + activesupport (= 7.0.8.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4.3) + activesupport (7.0.8.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) - amazing_print (1.4.0) - ast (2.4.2) - berkeley_library-alma (0.0.7.1) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) + amazing_print (1.8.1) + ast (2.4.3) + base64 (0.3.0) + berkeley_library-alma (0.1.1) berkeley_library-logging (~> 0.2) berkeley_library-marc (~> 0.3.1) berkeley_library-util (~> 0.1, >= 0.1.2) nokogiri (~> 1.13, >= 1.13.6) - berkeley_library-logging (0.2.7) - activesupport (>= 6) + berkeley_library-logging (0.3.0) + activesupport (>= 7) amazing_print (~> 1.1) - colorize (~> 0.8.1) + colorize (~> 1.0) lograge (~> 0.11) - ougai (~> 1.8) - berkeley_library-marc (0.3.1) + ougai (~> 2.0) + berkeley_library-marc (0.3.2) marc (~> 1.0) parslet (~> 2.0) ruby-marc-spec (~> 0.1) - berkeley_library-util (0.1.6) - berkeley_library-logging (~> 0.2) + berkeley_library-util (0.2.0) + berkeley_library-logging (~> 0.3) rest-client (~> 2.1) typesafe_enum (~> 0.3) - brakeman (5.4.1) - builder (3.2.4) + bigdecimal (3.2.2) + brakeman (7.1.0) + racc + builder (3.3.0) bundle-audit (0.1.0) bundler-audit - bundler-audit (0.9.1) + bundler-audit (0.9.2) bundler (>= 1.2.0, < 3) thor (~> 1.0) - colorize (0.8.1) - concurrent-ruby (1.2.2) - crack (0.4.5) + colorize (1.1.0) + concurrent-ruby (1.3.5) + crack (1.0.0) + bigdecimal rexml crass (1.0.6) - database_cleaner-active_record (2.1.0) + database_cleaner-active_record (2.2.2) activerecord (>= 5.a) - database_cleaner-core (~> 2.0.0) + database_cleaner-core (~> 2.0) database_cleaner-core (2.0.1) - date (3.3.3) - diff-lcs (1.5.0) - docile (1.4.0) - domain_name (0.5.20190701) - unf (>= 0.0.5, < 1.0.0) - erubi (1.12.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) - ffi (1.15.5) - globalid (1.1.0) - activesupport (>= 5.0) + date (3.4.1) + diff-lcs (1.6.2) + docile (1.4.1) + domain_name (0.6.20240107) + drb (2.2.3) + erubi (1.13.1) + factory_bot (6.5.5) + activesupport (>= 6.1.0) + factory_bot_rails (6.5.0) + factory_bot (~> 6.5) + railties (>= 6.1.0) + ffi (1.17.2) + ffi (1.17.2-aarch64-linux-gnu) + ffi (1.17.2-x86_64-linux-gnu) + globalid (1.2.1) + activesupport (>= 6.1) hashdiff (1.0.1) hashie (5.0.0) http-accept (1.7.0) - http-cookie (1.0.5) + http-cookie (1.0.8) domain_name (~> 0.5) - i18n (1.12.0) + i18n (1.14.7) concurrent-ruby (~> 1.0) - image_processing (1.12.2) - mini_magick (>= 4.9.5, < 5) + image_processing (1.14.0) + mini_magick (>= 4.9.5, < 6) ruby-vips (>= 2.0.17, < 3) jsonapi-serializer (2.2.0) activesupport (>= 4.2) - jsonapi.rb (2.0.1) + jsonapi.rb (2.1.1) jsonapi-serializer rack - jwt (2.7.0) - lograge (0.12.0) + jwt (2.10.2) + base64 + logger (1.7.0) + lograge (0.14.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.1) + loofah (2.24.1) crass (~> 1.0.2) - nokogiri (>= 1.5.9) + nokogiri (>= 1.12.0) mail (2.8.1) mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marc (1.2.0) + marc (1.3.0) + nokogiri (~> 1.0) rexml - scrub_rb (>= 1.0.1, < 2) - unf - marcel (1.0.2) - method_source (1.0.0) - mime-types (3.4.1) - mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) - mini_magick (4.12.0) - mini_mime (1.1.2) - minitest (5.18.0) - net-imap (0.3.4) + marcel (1.0.4) + method_source (1.1.0) + mime-types (3.7.0) + logger + mime-types-data (~> 3.2025, >= 3.2025.0507) + mime-types-data (3.2025.0819) + mini_magick (5.3.1) + logger + mini_mime (1.1.5) + mini_portile2 (2.8.9) + minitest (5.25.5) + mutex_m (0.3.0) + net-imap (0.5.9) date net-protocol net-pop (0.1.2) net-protocol - net-protocol (0.2.1) + net-protocol (0.2.2) timeout - net-smtp (0.3.3) + net-smtp (0.5.1) net-protocol netrc (0.11.0) - nio4r (2.5.8) - nokogiri (1.14.3-aarch64-linux) + nio4r (2.7.4) + nokogiri (1.18.9) + mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.14.3-arm64-darwin) + nokogiri (1.18.9-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.14.3-x86_64-linux) + nokogiri (1.18.9-x86_64-linux-gnu) racc (~> 1.4) - oj (3.14.2) + oj (3.16.11) + bigdecimal (>= 3.0) + ostruct (>= 0.2) omniauth (1.9.2) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) @@ -185,38 +199,44 @@ GEM addressable (~> 2.3) nokogiri (~> 1.5) omniauth (~> 1.2) - ougai (1.9.1) + ostruct (0.6.3) + ougai (2.0.0) oj (~> 3.10) - parallel (1.22.1) - parser (3.2.1.1) + parallel (1.27.0) + parser (3.3.9.0) ast (~> 2.4.1) + racc parslet (2.0.0) - pg (1.4.6) - pg_search (2.3.6) - activerecord (>= 5.2) - activesupport (>= 5.2) - public_suffix (5.0.1) - puma (5.6.5) + pg (1.6.1) + pg (1.6.1-aarch64-linux) + pg (1.6.1-x86_64-linux) + pg_search (2.3.7) + activerecord (>= 6.1) + activesupport (>= 6.1) + prism (1.4.0) + public_suffix (6.0.2) + puma (5.6.9) nio4r (~> 2.0) - racc (1.6.2) - rack (2.2.6.4) - rack-cors (2.0.0) + racc (1.8.1) + rack (2.2.17) + rack-cors (2.0.2) rack (>= 2.0.0) - rack-test (2.1.0) + rack-test (2.2.0) rack (>= 1.3) - rails (7.0.4.3) - actioncable (= 7.0.4.3) - actionmailbox (= 7.0.4.3) - actionmailer (= 7.0.4.3) - actionpack (= 7.0.4.3) - actiontext (= 7.0.4.3) - actionview (= 7.0.4.3) - activejob (= 7.0.4.3) - activemodel (= 7.0.4.3) - activerecord (= 7.0.4.3) - activestorage (= 7.0.4.3) - activesupport (= 7.0.4.3) + rails (7.0.8.7) + actioncable (= 7.0.8.7) + actionmailbox (= 7.0.8.7) + actionmailer (= 7.0.8.7) + actionpack (= 7.0.8.7) + actiontext (= 7.0.8.7) + actionview (= 7.0.8.7) + activejob (= 7.0.8.7) + activemodel (= 7.0.8.7) + activerecord (= 7.0.8.7) + activestorage (= 7.0.8.7) + activesupport (= 7.0.8.7) bundler (>= 1.15.0) +<<<<<<< HEAD railties (= 7.0.4.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) @@ -224,43 +244,50 @@ GEM activesupport (>= 5.0.1.rc1) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) +======= + railties (= 7.0.8.7) + rails-dom-testing (2.3.0) + activesupport (>= 5.0.0) + minitest +>>>>>>> e02b7af (Update to Ruby 3.3+ and latest Rails 7.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.3) - actionpack (= 7.0.4.3) - activesupport (= 7.0.4.3) + 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) + railties (7.0.8.7) + actionpack (= 7.0.8.7) + activesupport (= 7.0.8.7) method_source rake (>= 12.2) thor (~> 1.0) zeitwerk (~> 2.5) rainbow (3.1.1) - rake (13.0.6) + rake (13.3.0) ransack (2.6.0) activerecord (>= 6.0.4) activesupport (>= 6.0.4) i18n - regexp_parser (2.7.0) - request_store (1.5.1) + regexp_parser (2.11.2) + request_store (1.7.0) rack (>= 1.4) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) - rexml (3.2.5) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-core (3.12.1) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.2) + rexml (3.4.1) + rspec (3.13.1) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.5) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.3) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) + rspec-support (~> 3.13.0) rspec-rails (5.1.2) actionpack (>= 5.2) activesupport (>= 5.2) @@ -269,7 +296,7 @@ GEM rspec-expectations (~> 3.10) rspec-mocks (~> 3.10) rspec-support (~> 3.10) - rspec-support (3.12.0) + rspec-support (3.13.5) rspec_junit_formatter (0.6.0) rspec-core (>= 2, < 4, != 2.12.0) rubocop (1.26.1) @@ -281,8 +308,9 @@ GEM rubocop-ast (>= 1.16.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.27.0) - parser (>= 3.2.1.0) + rubocop-ast (1.46.0) + parser (>= 3.3.7.2) + prism (~> 1.4) rubocop-rails (2.13.2) activesupport (>= 4.2.0) rack (>= 1.1) @@ -295,55 +323,55 @@ GEM parslet (~> 2.0) typesafe_enum (~> 0.3) ruby-progressbar (1.13.0) - ruby-vips (2.1.4) + ruby-vips (2.2.4) ffi (~> 1.12) - scrub_rb (1.0.1) + logger simplecov (0.22.0) docile (~> 1.1) simplecov-html (~> 0.11) simplecov_json_formatter (~> 0.1) - simplecov-html (0.12.3) - simplecov-rcov (0.3.1) + simplecov-html (0.13.2) + simplecov-rcov (0.3.7) simplecov (>= 0.4.1) simplecov_json_formatter (0.1.4) - thor (1.2.1) - timeout (0.3.2) + thor (1.4.0) + timeout (0.4.3) typesafe_enum (0.3.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (2.4.2) - webmock (3.18.1) + unicode-display_width (2.6.0) + webmock (3.25.1) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - websocket-driver (0.7.5) + websocket-driver (0.8.0) + base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zaru (0.3.0) - zeitwerk (2.6.7) + zeitwerk (2.7.3) PLATFORMS - aarch64-linux - arm64-darwin-21 + aarch64-linux-gnu x86_64-linux + x86_64-unknown DEPENDENCIES - berkeley_library-alma (~> 0.0.7, >= 0.0.7.1) - berkeley_library-logging (~> 0.2, >= 0.2.7) - berkeley_library-util (~> 0.1.5) + berkeley_library-alma (~> 0.1.1) + berkeley_library-logging (~> 0.3) + berkeley_library-util (~> 0.2.0) brakeman bundle-audit colorize database_cleaner-active_record (~> 2.0) + drb factory_bot_rails hashdiff (~> 1.0.1) image_processing (~> 1.12) jsonapi-serializer (~> 2.2) jsonapi.rb (~> 2.0) jwt (~> 2.4) + mutex_m omniauth (~> 1.9, >= 1.9.2) omniauth-cas (~> 2.0) pg (~> 1.4) @@ -365,7 +393,7 @@ DEPENDENCIES zaru (~> 0.3.0) RUBY VERSION - ruby 3.0.3p157 + ruby 3.3.9p170 BUNDLED WITH - 2.2.33 + 2.5.22 diff --git a/config/boot.rb b/config/boot.rb index 30f5120..8546952 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,3 +1,4 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. +require 'logger' # Fix concurrent-ruby removing logger dependency which Rails itself does not have From 607f4014b8df83428ad2dec10574db511d23e796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20A=2E=20Matienzo?= Date: Wed, 17 Sep 2025 11:00:51 -0700 Subject: [PATCH 2/2] Gemfile.lock: fix accidentally commited merge conflicts --- Gemfile.lock | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eeae344..43f2cc8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -236,20 +236,14 @@ GEM activestorage (= 7.0.8.7) activesupport (= 7.0.8.7) bundler (>= 1.15.0) -<<<<<<< HEAD - railties (= 7.0.4.3) + railties (= 7.0.8.7) 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) -======= - railties (= 7.0.8.7) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest ->>>>>>> e02b7af (Update to Ruby 3.3+ and latest Rails 7.0) nokogiri (>= 1.6) rails-html-sanitizer (1.6.2) loofah (~> 2.21)