From 8dfa4e5572a92e5689d52d12ad201735b64294ad Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:43:25 -0400 Subject: [PATCH 1/7] update ruby --- .ruby-version | 2 +- .tools-versions | 2 +- Dockerfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.ruby-version b/.ruby-version index 9c25013d..1454f6ed 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.3.6 +4.0.1 diff --git a/.tools-versions b/.tools-versions index 29ecc4a2..60748972 100644 --- a/.tools-versions +++ b/.tools-versions @@ -1,4 +1,4 @@ -ruby 3.3.6 +ruby 4.0.1 nodejs 18.19.0 bundler 2.5.9 yarn 1.22.19 diff --git a/Dockerfile b/Dockerfile index 41d9e26b..6a507831 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # syntax = docker/dockerfile:1 # Make sure RUBY_VERSION matches the Ruby version in .ruby-version and Gemfile -ARG RUBY_VERSION=3.3.0 +ARG RUBY_VERSION=4.0.1 FROM registry.docker.com/library/ruby:$RUBY_VERSION-slim as base # Rails app lives here From 1987f192a1b70b620d3c642457aef3249da2194b Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:43:48 -0400 Subject: [PATCH 2/7] update rails and other gems --- Gemfile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index cbb4f7fd..1752983a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,9 @@ source "https://rubygems.org" -ruby "3.3.6" +ruby "4.0.1" # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" -gem "rails", "~> 7.2.3", ">= 7.2.3.1" +gem "rails", "~> 8.1.3" # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] gem "sprockets-rails" @@ -57,9 +57,9 @@ gem 'ldap_lookup', '~> 2.1.0' gem "pundit" # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] -gem "image_processing", "~> 1.2" - +gem "image_processing", "~> 2.0" gem "chartkick" +gem 'csv', '~> 3.3', '>= 3.3.5' group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem @@ -84,7 +84,7 @@ end group :development do # Use console on exceptions pages [https://github.com/rails/web-console] gem "web-console" - gem 'annotate', '~> 3.2' + gem 'annotaterb', '~> 4.22' # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler] # gem "rack-mini-profiler" From 92b2ba014112b338bedf135899a5bd76d0df99fb Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:44:29 -0400 Subject: [PATCH 3/7] update gems --- Gemfile.lock | 158 +++++++++++++++++-------------------- config/application.rb | 4 +- lib/tasks/annotate_rb.rake | 10 +++ 3 files changed, 85 insertions(+), 87 deletions(-) create mode 100644 lib/tasks/annotate_rb.rake diff --git a/Gemfile.lock b/Gemfile.lock index b0a998c8..c6c0ec2f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,84 +1,85 @@ GEM remote: https://rubygems.org/ specs: - actioncable (7.2.3.1) - actionpack (= 7.2.3.1) - activesupport (= 7.2.3.1) + action_text-trix (2.1.19) + railties + actioncable (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.2.3.1) - actionpack (= 7.2.3.1) - activejob (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + actionmailbox (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) mail (>= 2.8.0) - actionmailer (7.2.3.1) - actionpack (= 7.2.3.1) - actionview (= 7.2.3.1) - activejob (= 7.2.3.1) - activesupport (= 7.2.3.1) + actionmailer (8.1.3) + actionpack (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activesupport (= 8.1.3) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.2.3.1) - actionview (= 7.2.3.1) - activesupport (= 7.2.3.1) - cgi + actionpack (8.1.3) + actionview (= 8.1.3) + activesupport (= 8.1.3) nokogiri (>= 1.8.5) - racc - rack (>= 2.2.4, < 3.3) + 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 (7.2.3.1) - actionpack (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + actiontext (8.1.3) + action_text-trix (~> 2.1.15) + actionpack (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.2.3.1) - activesupport (= 7.2.3.1) + actionview (8.1.3) + activesupport (= 8.1.3) builder (~> 3.1) - cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.2.3.1) - activesupport (= 7.2.3.1) + activejob (8.1.3) + activesupport (= 8.1.3) globalid (>= 0.3.6) - activemodel (7.2.3.1) - activesupport (= 7.2.3.1) - activerecord (7.2.3.1) - activemodel (= 7.2.3.1) - activesupport (= 7.2.3.1) + activemodel (8.1.3) + activesupport (= 8.1.3) + activerecord (8.1.3) + activemodel (= 8.1.3) + activesupport (= 8.1.3) timeout (>= 0.4.0) - activestorage (7.2.3.1) - actionpack (= 7.2.3.1) - activejob (= 7.2.3.1) - activerecord (= 7.2.3.1) - activesupport (= 7.2.3.1) + activestorage (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activesupport (= 8.1.3) marcel (~> 1.0) - activesupport (7.2.3.1) + activesupport (8.1.3) base64 - benchmark (>= 0.3) 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, < 6) + minitest (>= 5.1) securerandom (>= 0.3) tzinfo (~> 2.0, >= 2.0.5) + uri (>= 0.13.1) addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) - annotate (3.2.0) - activerecord (>= 3.2, < 8.0) - rake (>= 10.4, < 14.0) + annotaterb (4.22.0) + activerecord (>= 6.0.0) + activesupport (>= 6.0.0) axe-core-api (4.11.1) dumb_delegator ostruct @@ -92,7 +93,6 @@ GEM thread_safe (~> 0.3, >= 0.3.1) base64 (0.3.0) bcrypt (3.1.22) - benchmark (0.5.0) bigdecimal (4.1.2) bindex (0.8.1) bootsnap (1.18.4) @@ -109,7 +109,6 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - cgi (0.5.1) chartkick (5.1.2) childprocess (5.1.0) logger (~> 1.5) @@ -121,6 +120,7 @@ GEM crass (1.0.6) cssbundling-rails (1.4.1) railties (>= 6.0.0) + csv (3.3.5) date (3.5.1) debug (1.9.2) irb (~> 1.10) @@ -149,21 +149,13 @@ GEM railties (>= 5.0.0) faker (3.5.1) i18n (>= 1.8.11, < 2) - ffi (1.17.0-aarch64-linux-gnu) - ffi (1.17.0-arm-linux-gnu) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86-linux-gnu) - ffi (1.17.0-x86_64-darwin) - ffi (1.17.0-x86_64-linux-gnu) globalid (1.2.1) activesupport (>= 6.1) hashie (5.0.0) i18n (1.14.8) concurrent-ruby (~> 1.0) ice_nine (0.11.2) - image_processing (1.13.0) - mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.17, < 3) + image_processing (2.0.2) io-console (0.8.2) irb (1.18.0) pp (>= 0.6.0) @@ -175,6 +167,7 @@ GEM activesupport (>= 5.0.0) jsbundling-rails (1.3.1) railties (>= 6.0.0) + json (2.19.9) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -208,10 +201,9 @@ GEM net-imap net-pop net-smtp - marcel (1.1.0) + marcel (1.2.1) matrix (0.4.2) method_source (1.1.0) - mini_magick (4.13.2) mini_mime (1.1.5) mini_portile2 (2.8.9) minitest (5.27.0) @@ -286,20 +278,20 @@ GEM rack (>= 1.3) rackup (2.3.1) rack (>= 3) - rails (7.2.3.1) - actioncable (= 7.2.3.1) - actionmailbox (= 7.2.3.1) - actionmailer (= 7.2.3.1) - actionpack (= 7.2.3.1) - actiontext (= 7.2.3.1) - actionview (= 7.2.3.1) - activejob (= 7.2.3.1) - activemodel (= 7.2.3.1) - activerecord (= 7.2.3.1) - activestorage (= 7.2.3.1) - activesupport (= 7.2.3.1) + rails (8.1.3) + actioncable (= 8.1.3) + actionmailbox (= 8.1.3) + actionmailer (= 8.1.3) + actionpack (= 8.1.3) + actiontext (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activemodel (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) bundler (>= 1.15.0) - railties (= 7.2.3.1) + railties (= 8.1.3) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -310,10 +302,9 @@ GEM rails_accessibility_testing (1.6.0) axe-core-capybara (~> 4.0) nokogiri (>= 1.10) - railties (7.2.3.1) - actionpack (= 7.2.3.1) - activesupport (= 7.2.3.1) - cgi + railties (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) @@ -357,9 +348,6 @@ GEM ruby-saml (1.18.1) nokogiri (>= 1.13.10) rexml - ruby-vips (2.2.2) - ffi (~> 1.12) - logger rubyzip (2.3.2) securerandom (0.4.1) selenium-webdriver (4.10.0) @@ -387,6 +375,7 @@ GEM railties (>= 6.0.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) + uri (1.1.1) useragent (0.16.11) virtus (2.0.0) axiom-types (~> 0.1) @@ -404,7 +393,7 @@ GEM rubyzip (>= 1.3.0) selenium-webdriver (~> 4.0, < 4.11) websocket (1.2.11) - websocket-driver (0.8.0) + websocket-driver (0.8.1) base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -421,19 +410,20 @@ PLATFORMS x86_64-linux DEPENDENCIES - annotate (~> 3.2) + annotaterb (~> 4.22) axe-core-capybara (~> 4.0) bootsnap brakeman capybara (~> 3.40) chartkick cssbundling-rails + csv (~> 3.3, >= 3.3.5) debug devise (~> 5.0) dotenv-rails factory_bot_rails faker - image_processing (~> 1.2) + image_processing (~> 2.0) jbuilder jsbundling-rails kaminari @@ -446,7 +436,7 @@ DEPENDENCIES puma (>= 5.0) pundit pundit-matchers (~> 3.1, >= 3.1.2) - rails (~> 7.2.3, >= 7.2.3.1) + rails (~> 8.1.3) rails_accessibility_testing (~> 1.6) redis (>= 4.0.1) repost @@ -460,7 +450,7 @@ DEPENDENCIES webdrivers (= 5.3.0) RUBY VERSION - ruby 3.3.6p108 + ruby 4.0.1p0 BUNDLED WITH 2.5.3 diff --git a/config/application.rb b/config/application.rb index b163e261..eef2a12c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -12,8 +12,6 @@ require "action_text/engine" require "action_view/railtie" require "action_cable/engine" -require "csv" -# require "rails/test_unit/railtie" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. @@ -22,7 +20,7 @@ module SpaceReady class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 7.1 + config.load_defaults 8.1 # Please, add to the `ignore` list any other `lib` subdirectories that do # not contain `.rb` files, or that should not be reloaded or eager loaded. diff --git a/lib/tasks/annotate_rb.rake b/lib/tasks/annotate_rb.rake new file mode 100644 index 00000000..c4d4f2d5 --- /dev/null +++ b/lib/tasks/annotate_rb.rake @@ -0,0 +1,10 @@ +# This rake task was added by annotate_rb gem. + +# Can set `ANNOTATERB_SKIP_ON_DB_TASKS` to be anything to skip this +if Rails.env.development? && ENV["ANNOTATERB_SKIP_ON_DB_TASKS"].nil? + require "annotate_rb" + + # Can modify the config path here if needed - by default, it's .annotaterb.yml in the root of the project + # AnnotateRb::ConfigFinder.config_path = "" + AnnotateRb::Core.load_rake_tasks +end From 45c030c280359d39e0b4c384c3b7206dd5d953c4 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:44:39 -0400 Subject: [PATCH 4/7] fix routes --- config/routes.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index 66c8bf3f..3c0dabfc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -47,7 +47,6 @@ resources :rooms do resources :specific_attributes, module: :rooms, except: [:show] resources :room_states, module: :rooms, except: [:destroy] - resources :room_tickets, module: :rooms, only: [:send_email_for_tdx_ticket] end post 'archive_room/:id', to: 'rooms#archive', as: :archive_room post 'unarchive_room/:id', to: 'rooms#unarchive', as: :unarchive_room From 67025b940c55a407a074a4e9ad45a8a8fa20b7dc Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:49:10 -0400 Subject: [PATCH 5/7] fix rspec --- Gemfile.lock | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c6c0ec2f..bbbed29f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,7 +115,7 @@ GEM coderay (1.1.3) coercible (1.0.0) descendants_tracker (~> 0.0.1) - concurrent-ruby (1.3.6) + concurrent-ruby (1.3.7) connection_pool (3.0.2) crass (1.0.6) cssbundling-rails (1.4.1) @@ -133,7 +133,7 @@ GEM railties (>= 7.0) responders warden (~> 1.2.3) - diff-lcs (1.5.1) + diff-lcs (1.6.2) dotenv (3.2.0) dotenv-rails (3.2.0) dotenv (= 3.2.0) @@ -152,7 +152,7 @@ GEM globalid (1.2.1) activesupport (>= 6.1) hashie (5.0.0) - i18n (1.14.8) + i18n (1.15.1) concurrent-ruby (~> 1.0) ice_nine (0.11.2) image_processing (2.0.2) @@ -206,7 +206,9 @@ GEM method_source (1.1.0) mini_mime (1.1.5) mini_portile2 (2.8.9) - minitest (5.27.0) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) msgpack (1.7.5) net-imap (0.5.15) date @@ -219,18 +221,18 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.5) - nokogiri (1.19.3) + nokogiri (1.19.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) - nokogiri (1.19.3-aarch64-linux-gnu) + nokogiri (1.19.4-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.3-arm-linux-gnu) + nokogiri (1.19.4-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.19.3-arm64-darwin) + nokogiri (1.19.4-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.3-x86_64-darwin) + nokogiri (1.19.4-x86_64-darwin) racc (~> 1.4) - nokogiri (1.19.3-x86_64-linux-gnu) + nokogiri (1.19.4-x86_64-linux-gnu) racc (~> 1.4) omniauth (2.1.3) hashie (>= 3.4.6) @@ -252,7 +254,7 @@ GEM pry (0.15.0) coderay (~> 1.1) method_source (~> 1.0) - psych (5.3.1) + psych (5.4.0) date stringio public_suffix (7.0.5) @@ -328,23 +330,23 @@ GEM actionpack (>= 7.0) railties (>= 7.0) rexml (3.4.4) - rspec-core (3.13.2) + rspec-core (3.13.6) rspec-support (~> 3.13.0) - rspec-expectations (3.13.3) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.2) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (7.1.0) - 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.1) + rspec-rails (8.0.4) + actionpack (>= 7.2) + activesupport (>= 7.2) + railties (>= 7.2) + rspec-core (>= 3.13.0, < 5.0.0) + rspec-expectations (>= 3.13.0, < 5.0.0) + rspec-mocks (>= 3.13.0, < 5.0.0) + rspec-support (>= 3.13.0, < 5.0.0) + rspec-support (3.13.7) ruby-saml (1.18.1) nokogiri (>= 1.13.10) rexml @@ -399,7 +401,7 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.7.5) + zeitwerk (2.8.2) PLATFORMS aarch64-linux From 70c4b4810edd2b6a2482efac368b777da74862f0 Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 13:53:27 -0400 Subject: [PATCH 6/7] fix version --- .tools-versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tools-versions b/.tools-versions index 60748972..98b63036 100644 --- a/.tools-versions +++ b/.tools-versions @@ -1,4 +1,4 @@ ruby 4.0.1 nodejs 18.19.0 -bundler 2.5.9 +bundler 2.5.3 yarn 1.22.19 From 0f67bd1a99ceb21c5c54b81432cd916c6390a47b Mon Sep 17 00:00:00 2001 From: Margarita Barvinok Date: Thu, 18 Jun 2026 14:15:30 -0400 Subject: [PATCH 7/7] add ostruct --- Gemfile | 1 + Gemfile.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/Gemfile b/Gemfile index 1752983a..a8e2dbdb 100644 --- a/Gemfile +++ b/Gemfile @@ -60,6 +60,7 @@ gem "pundit" gem "image_processing", "~> 2.0" gem "chartkick" gem 'csv', '~> 3.3', '>= 3.3.5' +gem 'ostruct', '~> 0.6.3' group :development, :test do # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem diff --git a/Gemfile.lock b/Gemfile.lock index bbbed29f..8b2069a3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -433,6 +433,7 @@ DEPENDENCIES letter_opener_web omniauth-rails_csrf_protection (~> 1.0) omniauth-saml (~> 2.2) + ostruct (~> 0.6.3) pg (~> 1.1) pry puma (>= 5.0)