From 536c59592253eb0f3031b162c2b656b6172d5911 Mon Sep 17 00:00:00 2001 From: Linda Goldstein Date: Fri, 13 Feb 2026 08:07:01 -0800 Subject: [PATCH 1/3] Gemfile updates --- Gemfile | 31 +++++++++++++++---------------- Gemfile.lock | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/Gemfile b/Gemfile index bfba58b670..67159e5494 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,6 @@ gem "delayed_job_active_record" gem "devise" # for authentication gem "devise_invitable" gem "draper" # adds decorators for cleaner presentation logic -gem "faker" # creates realistic seed data, valuable for staging and demos gem "filterrific" # filtering and sorting of models gem "friendly_id", "~> 5.5.1" # allows us to use a slug instead of casa case ids in their URLs gem "groupdate" # Group Data @@ -27,26 +26,27 @@ gem "image_processing", "~> 1.14" # Set of higher-level helper methods for image gem "jbuilder" # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem "jsbundling-rails" gem "lograge" # log less so heroku papertrail quits rate limiting our logs -gem "net-imap" # needed for ruby upgrade to 3.1.0 https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/ -gem "net-pop" # needed for ruby upgrade to 3.1.0 https://www.ruby-lang.org/en/news/2021/12/25/ruby-3-1-0-released/ -gem "net-smtp", require: false # needed for ruby upgrade to 3.1.0 for some dang reason +gem "net-imap" # Ruby 3.1+ requires explicit inclusion of standard library gems +gem "net-pop" # Ruby 3.1+ requires explicit inclusion of standard library gems +gem "net-smtp", require: false # Ruby 3.1+ requires explicit inclusion of standard library gems gem "noticed" # Notifications gem "oj" # faster JSON parsing 🍊 -gem "pagy" # pagination -gem "paranoia" # For soft-deleting database objects +gem "pagy" # Fast and lightweight pagination +gem "paranoia" # Soft-delete support for Active Record models gem "pdf-forms" # filling in fund request PDFs with user input gem "pg" # Use postgresql as the database for Active Record -gem "pretender" -gem "puma", "7.0.4" # 6.2.2 fails to install on m1 # Use Puma as the app server +gem "pretender" # Allows admins to impersonate users +gem "puma", "~> 7.0" # Use Puma as the app server gem "pundit" # for authorization management - based on user.role field gem "rack-attack" # for blocking & throttling abusive requests gem "rack-cors" # for allowing cross-origin resource sharing -gem "request_store" +gem "request_store" # Per-request global storage for thread-safe data gem "rexml" # pdf-forms needs this to deploy to heroku apparently gem "rswag-api" gem "rswag-ui" gem "sablon" # Word document templating tool for Case Court Reports -gem "scout_apm" +gem "scout_apm" # Application performance monitoring +gem "scout_apm_logging", "~> 2.1" # Scout APM logging integration gem "sprockets-rails" # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] gem "stimulus-rails" gem "strong_migrations" @@ -54,7 +54,7 @@ gem "turbo-rails", "~> 2.0" gem "twilio-ruby" # twilio helper functions gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby] # Windows does not include zoneinfo files, so bundle the tzinfo-data gem gem "view_component" # View components for reusability -gem "wicked" +gem "wicked" # Multi-step form wizard for Rails # flipper for feature flag management gem "flipper" @@ -63,10 +63,12 @@ gem "flipper-ui" gem "pghero" gem "pg_query" group :development, :test do + gem "brakeman" # security inspection gem "bullet" # Detect and fix N+1 queries gem "byebug", platforms: %i[mri mingw x64_mingw] # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem "dotenv-rails" gem "factory_bot_rails" + gem "faker" # creates realistic seed data, valuable for staging and demos gem "parallel_tests" gem "pry" gem "pry-byebug" @@ -97,18 +99,15 @@ group :development do end group :test do - gem "brakeman" # security inspection gem "capybara" - gem "rspec-retry" # for retrying flaky tests gem "capybara-screenshot" gem "database_cleaner-active_record" - gem "docx" + gem "docx" # for testing Word document generation gem "email_spec" gem "rails-controller-testing" gem "rake" + gem "rspec-retry" # for retrying flaky tests gem "selenium-webdriver" gem "simplecov", require: false gem "webmock" # HTTP request stubber end - -gem "scout_apm_logging", "~> 2.1" diff --git a/Gemfile.lock b/Gemfile.lock index d68bfdd08a..a76c8276a4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -755,7 +755,7 @@ DEPENDENCIES pretender pry pry-byebug - puma (= 7.0.4) + puma (~> 7.0) pundit rack-attack rack-cors From 9289c11033dc3d2516c10e3c85c7a1c0741ffc81 Mon Sep 17 00:00:00 2001 From: Linda Goldstein Date: Fri, 13 Feb 2026 08:10:13 -0800 Subject: [PATCH 2/3] gem comments --- Gemfile | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 67159e5494..a784006184 100644 --- a/Gemfile +++ b/Gemfile @@ -56,12 +56,11 @@ gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby] # Windows does not gem "view_component" # View components for reusability gem "wicked" # Multi-step form wizard for Rails -# flipper for feature flag management -gem "flipper" -gem "flipper-active_record" -gem "flipper-ui" -gem "pghero" -gem "pg_query" +gem "flipper" # Feature flag management +gem "flipper-active_record" # Active Record adapter for Flipper +gem "flipper-ui" # Web UI for managing feature flags +gem "pghero" # PostgreSQL performance monitoring and query insights +gem "pg_query" # PostgreSQL query parser group :development, :test do gem "brakeman" # security inspection gem "bullet" # Detect and fix N+1 queries From dca752dc3b41584309cb0ecb4a0ecf75324225b3 Mon Sep 17 00:00:00 2001 From: Linda Goldstein Date: Fri, 13 Feb 2026 08:15:06 -0800 Subject: [PATCH 3/3] Improve Gemfile organization and documentation Reorganize and standardize Gemfile for better maintainability: alphabetize gems within sections, standardize comment formatting, move gems to appropriate groups (faker and brakeman to dev/test), and update version constraints (puma and web-console). Remove redundant rake dependency and add descriptive comments to previously undocumented gems. Co-Authored-By: Claude Sonnet 4.5 (1M context) --- Gemfile | 150 +++++++++++++++++++++++++-------------------------- Gemfile.lock | 3 +- 2 files changed, 75 insertions(+), 78 deletions(-) diff --git a/Gemfile b/Gemfile index a784006184..76c1c1f3f9 100644 --- a/Gemfile +++ b/Gemfile @@ -5,108 +5,106 @@ source "https://rubygems.org" ruby "3.3.8" gem "rails", "~> 7.2" -gem "after_party" # post-deployment tasks -gem "amazing_print" # easier console reading +gem "after_party" # Post-deployment tasks +gem "amazing_print" # Easier console reading gem "authtrail" # Track Devise login activity gem "azure-storage-blob", require: false -gem "blueprinter" # for JSON serialization -gem "bugsnag" # tracking errors in prod -gem "caxlsx", "~> 4.2" # excel spreadsheets - TODO can we remove this version restriction? -gem "caxlsx_rails", "~> 0.6.4" # excel spreadsheets - TODO can we remove this version restriction? -gem "cssbundling-rails", "~> 1.4" # compiles css -gem "delayed_job_active_record" -gem "devise" # for authentication -gem "devise_invitable" -gem "draper" # adds decorators for cleaner presentation logic -gem "filterrific" # filtering and sorting of models -gem "friendly_id", "~> 5.5.1" # allows us to use a slug instead of casa case ids in their URLs -gem "groupdate" # Group Data -gem "httparty" # for making HTTP network requests 🥳 -gem "image_processing", "~> 1.14" # Set of higher-level helper methods for image processing. -gem "jbuilder" # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder -gem "jsbundling-rails" -gem "lograge" # log less so heroku papertrail quits rate limiting our logs +gem "blueprinter" # JSON serialization +gem "bugsnag" # Error tracking in production +gem "caxlsx", "~> 4.2" # Excel spreadsheets - TODO can we remove this version restriction? +gem "caxlsx_rails", "~> 0.6.4" # Excel spreadsheets - TODO can we remove this version restriction? +gem "cssbundling-rails", "~> 1.4" # CSS compilation +gem "delayed_job_active_record" # Background job processing +gem "devise" # Authentication +gem "devise_invitable" # User invitation system for Devise +gem "draper" # Decorators for cleaner presentation logic +gem "filterrific" # Filtering and sorting of models +gem "flipper" # Feature flag management +gem "flipper-active_record" # Active Record adapter for Flipper +gem "flipper-ui" # Web UI for managing feature flags +gem "friendly_id", "~> 5.5.1" # Allows us to use a slug instead of CASA case IDs in their URLs +gem "groupdate" # Group data by time periods +gem "httparty" # HTTP network requests +gem "image_processing", "~> 1.14" # Image processing helpers +gem "jbuilder" # JSON API builder +gem "jsbundling-rails" # JavaScript bundling +gem "lograge" # Log less so Heroku Papertrail quits rate limiting our logs gem "net-imap" # Ruby 3.1+ requires explicit inclusion of standard library gems gem "net-pop" # Ruby 3.1+ requires explicit inclusion of standard library gems gem "net-smtp", require: false # Ruby 3.1+ requires explicit inclusion of standard library gems gem "noticed" # Notifications -gem "oj" # faster JSON parsing 🍊 +gem "oj" # Faster JSON parsing gem "pagy" # Fast and lightweight pagination gem "paranoia" # Soft-delete support for Active Record models -gem "pdf-forms" # filling in fund request PDFs with user input -gem "pg" # Use postgresql as the database for Active Record +gem "pdf-forms" # Filling in fund request PDFs with user input +gem "pg" # Use PostgreSQL as the database for Active Record +gem "pghero" # PostgreSQL performance monitoring and query insights +gem "pg_query" # PostgreSQL query parser gem "pretender" # Allows admins to impersonate users gem "puma", "~> 7.0" # Use Puma as the app server -gem "pundit" # for authorization management - based on user.role field -gem "rack-attack" # for blocking & throttling abusive requests -gem "rack-cors" # for allowing cross-origin resource sharing +gem "pundit" # Authorization management based on user.role field +gem "rack-attack" # Blocking & throttling abusive requests +gem "rack-cors" # Cross-origin resource sharing gem "request_store" # Per-request global storage for thread-safe data -gem "rexml" # pdf-forms needs this to deploy to heroku apparently -gem "rswag-api" -gem "rswag-ui" +gem "rexml" # PDF-forms needs this to deploy to Heroku +gem "rswag-api" # Swagger API documentation +gem "rswag-ui" # Swagger UI gem "sablon" # Word document templating tool for Case Court Reports gem "scout_apm" # Application performance monitoring gem "scout_apm_logging", "~> 2.1" # Scout APM logging integration -gem "sprockets-rails" # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails] -gem "stimulus-rails" -gem "strong_migrations" -gem "turbo-rails", "~> 2.0" -gem "twilio-ruby" # twilio helper functions -gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby] # Windows does not include zoneinfo files, so bundle the tzinfo-data gem +gem "sprockets-rails" # Asset pipeline for Rails +gem "stimulus-rails" # Stimulus JavaScript framework +gem "strong_migrations" # Catch unsafe database migrations +gem "turbo-rails", "~> 2.0" # Turbo framework for Rails +gem "twilio-ruby" # Twilio helper functions +gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby] # Windows does not include zoneinfo files gem "view_component" # View components for reusability gem "wicked" # Multi-step form wizard for Rails -gem "flipper" # Feature flag management -gem "flipper-active_record" # Active Record adapter for Flipper -gem "flipper-ui" # Web UI for managing feature flags -gem "pghero" # PostgreSQL performance monitoring and query insights -gem "pg_query" # PostgreSQL query parser group :development, :test do - gem "brakeman" # security inspection + gem "brakeman" # Security inspection gem "bullet" # Detect and fix N+1 queries - gem "byebug", platforms: %i[mri mingw x64_mingw] # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem "dotenv-rails" - gem "factory_bot_rails" - gem "faker" # creates realistic seed data, valuable for staging and demos - gem "parallel_tests" - gem "pry" - gem "pry-byebug" - gem "rspec_junit_formatter" - gem "rspec-rails" - gem "rswag-specs" - gem "shoulda-matchers" - # linters - gem "erb_lint", require: false - gem "rubocop-capybara", require: false - gem "rubocop-factory_bot", require: false - gem "rubocop-performance", require: false - gem "rubocop-rspec", require: false - gem "rubocop-rspec_rails", require: false - gem "standard", require: false - gem "standard-rails", require: false + gem "byebug", platforms: %i[mri mingw x64_mingw] # Debugger console + gem "dotenv-rails" # Environment variable management + gem "erb_lint", require: false # ERB linter + gem "factory_bot_rails" # Test data factories + gem "faker" # Creates realistic seed data, valuable for staging and demos + gem "parallel_tests" # Run tests in parallel + gem "pry" # Enhanced Ruby console + gem "pry-byebug" # Pry debugger integration + gem "rspec_junit_formatter" # JUnit XML formatter for RSpec + gem "rspec-rails" # RSpec testing framework + gem "rubocop-capybara", require: false # Capybara linting rules + gem "rubocop-factory_bot", require: false # FactoryBot linting rules + gem "rubocop-performance", require: false # Performance linting rules + gem "rubocop-rspec", require: false # RSpec linting rules + gem "rubocop-rspec_rails", require: false # RSpec Rails linting rules + gem "rswag-specs" # Swagger spec generation + gem "shoulda-matchers" # RSpec matchers for common Rails functionality + gem "standard", require: false # Ruby style guide + gem "standard-rails", require: false # Rails-specific style guide end group :development do - gem "annotate" # for adding db field listings to models as comments - gem "bundler-audit" # for checking for security issues in gems + gem "annotate" # Adds database field listings to models as comments + gem "bundler-audit" # Checks for security issues in gems gem "letter_opener" # Opens emails in new tab for easier testing gem "simplecov-mcp" # SimpleCov MCP integration - gem "spring" # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring - gem "spring-commands-rspec" - gem "traceroute" # for finding unused routes - gem "web-console", ">= 3.3.0" # Access an interactive console on exception pages or by calling 'console' anywhere in the code. + gem "spring" # Speeds up development by keeping your application running in the background + gem "spring-commands-rspec" # Spring integration for RSpec + gem "traceroute" # Finds unused routes + gem "web-console", "~> 4.0" # Interactive console on exception pages end group :test do - gem "capybara" - gem "capybara-screenshot" - gem "database_cleaner-active_record" - gem "docx" # for testing Word document generation - gem "email_spec" - gem "rails-controller-testing" - gem "rake" - gem "rspec-retry" # for retrying flaky tests - gem "selenium-webdriver" - gem "simplecov", require: false + gem "capybara" # Integration testing framework + gem "capybara-screenshot" # Automatic screenshot on test failure + gem "database_cleaner-active_record" # Database cleaning strategies for tests + gem "docx" # For testing Word document generation + gem "email_spec" # Email testing helpers + gem "rails-controller-testing" # Controller testing helpers + gem "rspec-retry" # Retries flaky tests + gem "selenium-webdriver" # Browser automation for system tests + gem "simplecov", require: false # Code coverage analysis gem "webmock" # HTTP request stubber end diff --git a/Gemfile.lock b/Gemfile.lock index a76c8276a4..bf6584b4fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -761,7 +761,6 @@ DEPENDENCIES rack-cors rails (~> 7.2) rails-controller-testing - rake request_store rexml rspec-rails @@ -794,7 +793,7 @@ DEPENDENCIES twilio-ruby tzinfo-data view_component - web-console (>= 3.3.0) + web-console (~> 4.0) webmock wicked