at master 7.2 kB view raw
1# frozen_string_literal: true 2 3source "https://rubygems.org" 4# if there is a super emergency and rubygems is playing up, try 5#source 'http://production.cf.rubygems.org' 6 7gem "bootsnap", require: false, platform: :mri 8 9gem "actionmailer", "~> 7.2.0" 10gem "actionpack", "~> 7.2.0" 11gem "actionview", "~> 7.2.0" 12gem "activemodel", "~> 7.2.0" 13gem "activerecord", "~> 7.2.0" 14gem "activesupport", "~> 7.2.0" 15gem "railties", "~> 7.2.0" 16gem "sprockets-rails" 17 18gem "json" 19 20# TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals 21# We intend to drop sprockets rather than upgrade to 4.x 22gem "sprockets", "~> 3.7.3" 23 24# this will eventually be added to rails, 25# allows us to precompile all our templates in the unicorn master 26gem "actionview_precompiler", require: false 27 28gem "discourse-seed-fu" 29 30gem "mail" 31gem "mini_mime" 32gem "mini_suffix" 33 34# config/initializers/006-mini_profiler.rb depends upon the RedisClient#call. 35# Rework this when upgrading to redis client 5.0 and above. 36gem "redis", "< 5.0" 37 38# This is explicitly used by Sidekiq and is an optional dependency. 39# We tell Sidekiq to use the namespace "sidekiq" which triggers this 40# gem to be used. There is no explicit dependency in sidekiq cause 41# redis namespace support is optional 42# We already namespace stuff in DiscourseRedis, so we should consider 43# just using a single implementation in core vs having 2 namespace implementations 44gem "redis-namespace" 45 46# NOTE: AM serializer gets a lot slower with recent updates 47# we used an old branch which is the fastest one out there 48# are long term goal here is to fork this gem so we have a 49# better maintained living fork 50gem "active_model_serializers", "~> 0.8.3" 51 52gem "http_accept_language", require: false 53 54gem "discourse-fonts", require: "discourse_fonts" 55 56gem "message_bus" 57 58gem "rails_multisite" 59 60gem "fastimage" 61 62gem "aws-sdk-s3", require: false 63gem "aws-sdk-sns", require: false 64gem "excon", require: false 65gem "unf", require: false 66 67gem "email_reply_trimmer" 68 69gem "image_optim" 70gem "multi_json" 71gem "mustache" 72gem "nokogiri" 73gem "loofah" 74gem "css_parser", require: false 75 76gem "omniauth" 77gem "omniauth-facebook" 78gem "omniauth-twitter" 79gem "omniauth-github" 80 81gem "omniauth-oauth2", require: false 82 83gem "omniauth-google-oauth2" 84 85gem "oj" 86 87gem "pg" 88gem "mini_sql" 89gem "pry-rails", require: false 90gem "pry-byebug", require: false 91gem "rtlcss", require: false 92gem "messageformat-wrapper", require: false 93gem "rake" 94 95gem "thor", require: false 96gem "diffy", require: false 97gem "rinku" 98gem "sidekiq" 99gem "mini_scheduler" 100 101gem "execjs", require: false 102gem "mini_racer", "0.17.pre13" 103 104gem "highline", require: false 105 106gem "rack" 107 108gem "rack-protection" # security 109gem "cbor", require: false 110gem "cose", require: false 111gem "addressable" 112gem "json_schemer" 113 114gem "net-smtp", require: false 115gem "net-imap", require: false 116gem "net-pop", require: false 117gem "digest", require: false 118 119# Gems used only for assets and not required in production environments by default. 120# Allow everywhere for now cause we are allowing asset debugging in production 121group :assets do 122 gem "uglifier" 123end 124 125group :test do 126 gem "capybara", require: false 127 gem "webmock", require: false 128 gem "fakeweb", require: false 129 gem "simplecov", require: false 130 gem "selenium-webdriver", "~> 4.14", require: false 131 gem "selenium-devtools", require: false 132 gem "test-prof" 133 gem "rails-dom-testing", require: false 134 gem "minio_runner", require: false 135end 136 137group :test, :development do 138 gem "rspec" 139 gem "listen", require: false 140 gem "certified", require: false 141 gem "fabrication", require: false 142 gem "mocha", require: false 143 144 gem "rb-fsevent", require: RUBY_PLATFORM =~ /darwin/i ? "rb-fsevent" : false 145 146 gem "rspec-rails" 147 148 gem "shoulda-matchers", require: false 149 gem "rspec-html-matchers" 150 gem "pry-stack_explorer", require: false 151 gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri 152 gem "rubocop-discourse", require: false 153 gem "parallel_tests" 154 155 gem "rswag-specs" 156 157 gem "annotate" 158 159 gem "syntax_tree" 160 gem "syntax_tree-disable_ternary" 161 162 gem "rspec-multi-mock" 163end 164 165group :development do 166 gem "ruby-prof", require: false, platform: :mri 167 gem "bullet", require: !!ENV["BULLET"] 168 gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"] 169 gem "binding_of_caller" 170 gem "yaml-lint" 171 gem "yard" 172end 173 174if ENV["ALLOW_DEV_POPULATE"] == "1" 175 gem "discourse_dev_assets" 176 gem "faker", "~> 2.16" 177else 178 group :development, :test do 179 gem "discourse_dev_assets" 180 gem "faker", "~> 2.16" 181 end 182end 183 184# this is an optional gem, it provides a high performance replacement 185# to String#blank? a method that is called quite frequently in current 186# ActiveRecord, this may change in the future 187gem "fast_blank", platform: :ruby 188 189# this provides a very efficient lru cache 190gem "lru_redux" 191 192gem "htmlentities", require: false 193 194# IMPORTANT: mini profiler monkey patches, so it better be required last 195# If you want to amend mini profiler to do the monkey patches in the railties 196# we are open to it. by deferring require to the initializer we can configure discourse installs without it 197 198gem "rack-mini-profiler", require: ["enable_rails_patches"] 199 200gem "unicorn", require: false, platform: :ruby 201gem "puma", require: false 202 203gem "rbtrace", require: false, platform: :mri 204 205# required for feed importing and embedding 206gem "ruby-readability", require: false 207 208# rss gem is a bundled gem from Ruby 3 onwards 209gem "rss", require: false 210 211gem "stackprof", require: false, platform: :mri 212gem "memory_profiler", require: false, platform: :mri 213 214gem "cppjieba_rb", require: false 215 216gem "lograge", require: false 217gem "logstash-event", require: false 218gem "logster" 219 220# A fork of sassc with dart-sass support 221gem "sassc-embedded" 222 223gem "rotp", require: false 224 225gem "rqrcode" 226 227gem "rubyzip", require: false 228 229gem "sshkey", require: false 230 231gem "rchardet", require: false 232gem "lz4-ruby", require: false, platform: :ruby 233 234gem "sanitize" 235 236if ENV["IMPORT"] == "1" 237 gem "mysql2" 238 gem "redcarpet" 239 240 # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one 241 gem "sqlite3", "~> 1.3", ">= 1.3.13" 242 gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md" 243 gem "reverse_markdown" 244 gem "tiny_tds" 245 gem "csv" 246end 247 248group :generic_import, optional: true do 249 gem "sqlite3" 250 gem "redcarpet" 251end 252 253gem "web-push" 254gem "colored2", require: false 255gem "maxminddb" 256 257gem "rails_failover", require: false 258 259gem "faraday" 260gem "faraday-retry" 261 262# workaround for faraday-net_http, see 263# https://github.com/ruby/net-imap/issues/16#issuecomment-803086765 264gem "net-http" 265 266# Workaround until Ruby ships with cgi version 0.3.6 or higher. 267gem "cgi", ">= 0.3.6", require: false 268 269gem "tzinfo-data" 270gem "csv", require: false 271 272# dependencies for the automation plugin 273gem "iso8601" 274gem "rrule" 275 276group :migrations, optional: true do 277 gem "extralite-bundle", require: "extralite" 278 279 # auto-loading 280 gem "zeitwerk" 281 282 # databases 283 gem "trilogy" 284 285 # CLI 286 gem "ruby-progressbar" 287 288 # non-cryptographic hashing algorithm for generating placeholder IDs 289 gem "digest-xxhash" 290end 291 292gem "dry-initializer", "~> 3.1" 293 294gem "parallel"