diff --git a/Gemfile b/Gemfile index bfba58b670..76c1c1f3f9 100644 --- a/Gemfile +++ b/Gemfile @@ -5,110 +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 "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 -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 "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 "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 "pagy" # pagination -gem "paranoia" # For soft-deleting database objects -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 "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 "rexml" # pdf-forms needs this to deploy to heroku apparently -gem "rswag-api" -gem "rswag-ui" +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 "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" # 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 +gem "rswag-api" # Swagger API documentation +gem "rswag-ui" # Swagger UI gem "sablon" # Word document templating tool for Case Court Reports -gem "scout_apm" -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 "scout_apm" # Application performance monitoring +gem "scout_apm_logging", "~> 2.1" # Scout APM logging integration +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" +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" 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 "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 "brakeman" # security inspection - gem "capybara" - gem "rspec-retry" # for retrying flaky tests - gem "capybara-screenshot" - gem "database_cleaner-active_record" - gem "docx" - gem "email_spec" - gem "rails-controller-testing" - gem "rake" - 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 - -gem "scout_apm_logging", "~> 2.1" diff --git a/Gemfile.lock b/Gemfile.lock index d68bfdd08a..bf6584b4fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -755,13 +755,12 @@ DEPENDENCIES pretender pry pry-byebug - puma (= 7.0.4) + puma (~> 7.0) pundit rack-attack 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