openstreetmap-website/Gemfile
Andy Allan 14b33b9433 Restrict version of dry-schema for ruby 3.1.2 compatibility
https://bugs.ruby-lang.org/issues/18673 affects some methods using
anonymous blocks, and was fixed in ruby 3.1.3. However, debian/bookworm
ruby 3.1 package is based on 3.1.2 and does not yet contain this fix.

Since bookworm is used in our Docker build, and also used in production
by OSMF, then we can restrict dry-schema to a version that does not
use anonymous blocks.

Fixes #5482
2025-01-08 18:50:05 +00:00

192 lines
4.3 KiB
Ruby

source "https://rubygems.org"
# Require rails
gem "rails", "~> 7.2.0"
gem "turbo-rails"
# Require json for multi_json
gem "json"
# Use postgres as the database
gem "pg"
# Use SCSS for stylesheets
gem "dartsass-sprockets"
# Pin the dependentent sass-embedded to avoid deprecation warnings in bootstrap
gem "sass-embedded", "~> 1.64.0"
# Use Terser as compressor for JavaScript assets
gem "terser"
# Use jquery as the JavaScript library
gem "jquery-rails"
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem "jbuilder", "~> 2.7"
# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", ">= 1.4.2", :require => false
# Use rtlcss for RTL conversion
gem "mini_racer", "~> 0.9.0"
gem "rtlcss"
# Use autoprefixer to generate CSS prefixes
gem "autoprefixer-rails"
# Use image_optim to optimise images
gem "image_optim_rails"
# Use argon2 for password hashing
gem "argon2"
# Support brotli compression for assets
gem "sprockets-exporters_pack"
# Restore File.exists? for oauth gem
gem "file_exists"
# Load rails plugins
gem "actionpack-page_caching", ">= 1.2.0"
gem "activerecord-import"
gem "active_record_union"
gem "bootstrap", "~> 5.3.2"
gem "bootstrap_form", "~> 5.0"
gem "cancancan"
gem "config"
gem "delayed_job_active_record"
gem "dry-schema", "< 1.14.0" # see https://github.com/openstreetmap/openstreetmap-website/issues/5482
gem "dry-validation"
gem "frozen_record"
gem "http_accept_language", "~> 2.1.1"
gem "i18n-js", "~> 3.9.2"
gem "openstreetmap-deadlock_retry", ">= 1.3.1", :require => "deadlock_retry"
gem "rack-cors"
gem "rails-i18n", "~> 7.0.0"
gem "rails_param"
gem "rinku", ">= 2.0.6", :require => "rails_rinku"
gem "strong_migrations", "< 2.0.0"
gem "validates_email_format_of", ">= 1.5.1"
# Native OSM extensions
gem "quad_tile", "~> 1.0.1"
# Sanitise URIs
gem "addressable", "~> 2.8"
gem "rack-uri_sanitizer"
# Omniauth for authentication
gem "multi_json"
gem "omniauth", "~> 2.0.2"
gem "omniauth-facebook"
gem "omniauth-github"
gem "omniauth-google-oauth2", ">= 0.6.0"
gem "omniauth-mediawiki", ">= 0.0.4"
gem "omniauth-microsoft_graph"
gem "omniauth-openid"
gem "omniauth-rails_csrf_protection", "~> 1.0"
# Doorkeeper for OAuth2
gem "doorkeeper"
gem "doorkeeper-i18n"
gem "doorkeeper-openid_connect"
# Markdown formatting support
gem "kramdown"
# For status transitions of Issues
gem "aasm"
# Load libxml support for XML parsing and generation
gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
# Use for HTML sanitisation
gem "htmlentities"
gem "sanitize"
# Load faraday for mockable HTTP client
gem "faraday"
# Load maxminddb for querying Maxmind GeoIP database
gem "maxminddb"
# Load rotp to generate TOTP tokens
gem "rotp"
# Load memcache client in case we are using it
gem "connection_pool"
gem "dalli"
gem "kgio"
# Load canonical-rails to generate canonical URLs
gem "canonical-rails"
# Used to generate logstash friendly log files
gem "logstasher"
# Used to generate images for traces
gem "bzip2-ffi"
gem "ffi-libarchive"
gem "gd2-ffij", ">= 0.4.0"
gem "marcel"
# Used for browser detection
gem "browser", "< 6" # for ruby 3.1 support
# Used for S3 object storage
gem "aws-sdk-s3"
# Used to resize user images
gem "image_processing"
# Used to validate widths
gem "unicode-display_width"
# Lock some modules to old versions for ruby 3.1 support
gem "zeitwerk", "< 2.7"
# Gems useful for development
group :development do
gem "better_errors"
gem "binding_of_caller"
gem "danger"
gem "danger-auto_label"
gem "debug_inspector"
gem "i18n-tasks"
gem "listen"
gem "overcommit"
gem "vendorer"
end
# Gems needed for running tests
group :test do
gem "brakeman"
gem "capybara", ">= 2.15"
gem "erb_lint", :require => false
gem "factory_bot_rails"
gem "jwt"
gem "minitest", "~> 5.1"
gem "minitest-focus", :require => false
gem "puma", "~> 5.6"
gem "rails-controller-testing"
gem "rubocop"
gem "rubocop-capybara"
gem "rubocop-factory_bot"
gem "rubocop-minitest"
gem "rubocop-performance"
gem "rubocop-rails"
gem "rubocop-rake"
gem "selenium-webdriver"
gem "simplecov", :require => false
gem "simplecov-lcov", :require => false
gem "webmock"
end
group :development, :test do
gem "annotate"
gem "teaspoon"
gem "teaspoon-mocha", "~> 2.3.3"
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
gem "debug", :require => "debug/prelude"
end