Files
discourse/Gemfile
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

279 lines
6.9 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
source "https://rubygems.org"
2014-08-22 11:38:31 +10:00
# if there is a super emergency and rubygems is playing up, try
#source 'http://production.cf.rubygems.org'
2017-04-25 14:55:18 -07:00
2018-02-26 10:29:25 +11:00
gem "bootsnap", require: false, platform: :mri
2013-02-05 14:16:51 -05:00
2015-04-24 16:24:07 -04:00
def rails_master?
ENV["RAILS_MASTER"] == "1"
end
2014-02-17 17:44:28 +01:00
if rails_master?
2014-11-13 08:51:06 +11:00
gem "arel", git: "https://github.com/rails/arel.git"
2014-02-17 17:44:28 +01:00
gem "rails", git: "https://github.com/rails/rails.git"
else
# NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
# this allows us to include the bits of rails we use without pieces we do not.
#
# To issue a rails update bump the version number here
2023-06-27 23:18:49 +00:00
rails_version = "7.0.5.1"
2021-08-20 10:20:08 +08:00
gem "actionmailer", rails_version
gem "actionpack", rails_version
gem "actionview", rails_version
gem "activemodel", rails_version
gem "activerecord", rails_version
gem "activesupport", rails_version
gem "railties", rails_version
2017-08-23 11:58:25 +09:00
gem "sprockets-rails"
end
gem "json"
# TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals
# We intend to drop sprockets rather than upgrade to 4.x
gem "sprockets", git: "https://github.com/rails/sprockets", branch: "3.x"
2019-10-07 00:33:37 -04:00
# this will eventually be added to rails,
# allows us to precompile all our templates in the unicorn master
gem "actionview_precompiler", require: false
gem "discourse-seed-fu"
2019-02-06 17:33:36 +11:00
2023-03-24 20:10:28 +01:00
gem "mail"
gem "mini_mime"
gem "mini_suffix"
2014-08-24 00:43:08 -07:00
gem "redis"
2019-12-12 13:35:43 +11:00
# This is explicitly used by Sidekiq and is an optional dependency.
# We tell Sidekiq to use the namespace "sidekiq" which triggers this
# gem to be used. There is no explicit dependency in sidekiq cause
# redis namespace support is optional
# We already namespace stuff in DiscourseRedis, so we should consider
# just using a single implementation in core vs having 2 namespace implementations
2016-01-01 15:40:12 +11:00
gem "redis-namespace"
# NOTE: AM serializer gets a lot slower with recent updates
# we used an old branch which is the fastest one out there
# are long term goal here is to fork this gem so we have a
# better maintained living fork
gem "active_model_serializers", "~> 0.8.3"
gem "http_accept_language", require: false
2016-02-06 11:49:39 -08:00
2022-03-21 15:28:52 +01:00
gem "discourse-fonts", require: "discourse_fonts"
gem "message_bus"
2015-10-12 17:26:20 +11:00
2017-11-09 15:40:34 +11:00
gem "rails_multisite"
gem "fast_xs", platform: :ruby
2018-01-04 09:53:53 +01:00
gem "fastimage"
2017-08-07 10:32:35 +02:00
gem "aws-sdk-s3", require: false
gem "aws-sdk-sns", require: false
2015-05-25 17:57:06 +10:00
gem "excon", require: false
2013-11-21 17:33:09 +01:00
gem "unf", require: false
2013-02-28 14:31:39 -05:00
gem "email_reply_trimmer"
2015-12-10 13:28:52 +05:30
gem "image_optim"
gem "multi_json"
gem "mustache"
2016-06-07 16:51:39 +10:00
gem "nokogiri"
gem "loofah"
gem "css_parser", require: false
2017-06-08 18:02:30 -04:00
gem "omniauth"
gem "omniauth-facebook"
gem "omniauth-twitter"
2017-08-07 10:43:54 +02:00
gem "omniauth-github"
gem "omniauth-oauth2", require: false
2016-01-11 18:17:13 +11:00
2019-06-03 19:17:00 +01:00
gem "omniauth-google-oauth2"
gem "oj"
2021-09-02 11:01:54 +08:00
gem "pg"
gem "mini_sql"
2014-05-16 11:16:33 -07:00
gem "pry-rails", require: false
gem "pry-byebug", require: false
gem "rtlcss", require: false
2013-02-05 14:16:51 -05:00
gem "rake"
2017-03-03 10:14:35 +08:00
gem "thor", require: false
gem "diffy", require: false
gem "rinku"
2014-02-24 10:00:25 +11:00
gem "sidekiq"
gem "mini_scheduler"
gem "execjs", require: false
gem "mini_racer"
gem "highline", require: false
2020-07-08 16:42:31 +10:00
gem "rack"
gem "rack-protection" # security
gem "cbor", require: false
gem "cose", require: false
2019-12-17 10:33:51 +10:00
gem "addressable"
2021-03-10 21:32:23 -05:00
gem "json_schemer"
2013-02-05 14:16:51 -05:00
gem "net-smtp", require: false
gem "net-imap", require: false
gem "net-pop", require: false
gem "digest", require: false
2017-08-07 10:32:35 +02:00
# Gems used only for assets and not required in production environments by default.
# Allow everywhere for now cause we are allowing asset debugging in production
2013-02-05 14:16:51 -05:00
group :assets do
gem "uglifier"
2013-02-05 14:16:51 -05:00
end
2013-02-13 11:32:18 +01:00
group :test do
gem "capybara", require: false
2017-04-15 12:11:02 +08:00
gem "webmock", require: false
gem "fakeweb", require: false
gem "minitest", require: false
gem "simplecov", require: false
gem "selenium-webdriver", require: false
2019-04-19 08:52:31 +00:00
gem "test-prof"
gem "webdrivers", require: false
2023-06-20 11:49:22 +10:00
gem "rails-dom-testing", require: false
2013-02-13 11:32:18 +01:00
end
2013-02-05 14:16:51 -05:00
group :test, :development do
gem "rspec"
2017-04-13 10:26:07 -04:00
gem "listen", require: false
gem "certified", require: false
2018-05-28 15:09:02 +08:00
gem "fabrication", require: false
2020-04-21 18:32:42 +02:00
gem "mocha", require: false
2019-12-11 12:43:07 +11:00
gem "rb-fsevent", require: RUBY_PLATFORM =~ /darwin/i ? "rb-fsevent" : false
2020-05-04 15:20:30 +10:00
gem "rspec-rails"
gem "shoulda-matchers", require: false
gem "rspec-html-matchers"
2020-02-18 11:03:57 +11:00
gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
gem "rubocop-discourse", require: false
2019-04-01 09:27:49 +01:00
gem "parallel_tests"
gem "rswag-specs"
gem "annotate"
gem "syntax_tree"
gem "syntax_tree-disable_ternary"
2013-02-05 14:16:51 -05:00
end
2013-04-02 09:28:26 +11:00
group :development do
2020-02-18 11:03:57 +11:00
gem "ruby-prof", require: false, platform: :mri
2016-07-05 11:10:42 +10:00
gem "bullet", require: !!ENV["BULLET"]
2020-06-12 09:22:40 +08:00
gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"]
gem "binding_of_caller"
gem "yaml-lint"
gem "yard"
end
if ENV["ALLOW_DEV_POPULATE"] == "1"
gem "discourse_dev_assets"
gem "faker", "~> 2.16"
else
2022-03-21 15:28:52 +01:00
group :development, :test do
gem "discourse_dev_assets"
gem "faker", "~> 2.16"
end
2013-02-05 14:16:51 -05:00
end
2013-04-02 09:28:26 +11:00
# this is an optional gem, it provides a high performance replacement
# to String#blank? a method that is called quite frequently in current
# ActiveRecord, this may change in the future
gem "fast_blank", platform: :ruby
2013-04-02 09:24:59 +11:00
2013-04-24 11:59:59 +10:00
# this provides a very efficient lru cache
gem "lru_redux"
gem "htmlentities", require: false
# IMPORTANT: mini profiler monkey patches, so it better be required last
2014-12-27 14:03:48 +01:00
# If you want to amend mini profiler to do the monkey patches in the railties
2014-03-01 18:27:44 -05:00
# we are open to it. by deferring require to the initializer we can configure discourse installs without it
2013-08-30 16:44:03 +10:00
gem "rack-mini-profiler", require: ["enable_rails_patches"]
gem "unicorn", require: false, platform: :ruby
gem "puma", require: false
2014-01-03 12:29:47 +11:00
gem "rbtrace", require: false, platform: :mri
gem "gc_tracer", require: false, platform: :mri
# required for feed importing and embedding
gem "ruby-readability", require: false
2014-12-29 13:30:54 +11:00
# rss gem is a bundled gem from Ruby 3 onwards
gem "rss", require: false
2016-12-29 16:32:23 +11:00
gem "stackprof", require: false, platform: :mri
gem "memory_profiler", require: false, platform: :mri
2014-05-05 12:50:46 -04:00
gem "cppjieba_rb", require: false
2014-06-24 17:10:56 +10:00
gem "lograge", require: false
gem "logstash-event", require: false
gem "logstash-logger", require: false
gem "logster"
2017-04-12 10:52:52 -04:00
# These are forks of sassc and sassc-rails with dart-sass support
gem "dartsass-ruby"
gem "dartsass-sprockets"
2017-04-24 22:32:27 +02:00
gem "rotp", require: false
2020-07-14 17:05:01 +10:00
2017-12-21 17:18:12 -08:00
gem "rqrcode"
2019-07-18 09:34:48 -03:00
gem "rubyzip", require: false
gem "sshkey", require: false
2018-07-31 12:02:18 +02:00
gem "rchardet", require: false
gem "lz4-ruby", require: false, platform: :ruby
2018-07-27 19:41:53 +02:00
2021-05-26 15:11:35 +05:30
gem "sanitize"
2017-04-24 22:32:27 +02:00
if ENV["IMPORT"] == "1"
gem "mysql2"
gem "redcarpet"
# NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
2019-02-28 21:59:36 +01:00
gem "sqlite3", "~> 1.3", ">= 1.3.13"
2018-10-19 16:03:22 +02:00
gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
2018-03-01 09:43:32 +01:00
gem "reverse_markdown"
2018-06-04 16:57:12 +02:00
gem "tiny_tds"
gem "csv"
2022-11-28 16:30:19 -03:00
gem "parallel", require: false
2017-04-24 22:32:27 +02:00
end
2023-01-12 12:12:19 -03:00
gem "web-push"
gem "colored2", require: false
gem "maxminddb"
gem "rails_failover", require: false
2022-03-21 15:28:52 +01:00
gem "faraday"
gem "faraday-retry"
2022-03-21 15:28:52 +01:00
# workaround for faraday-net_http, see
# https://github.com/ruby/net-imap/issues/16#issuecomment-803086765
gem "net-http"
# Workaround until Ruby ships with cgi version 0.3.6 or higher.
gem "cgi", ">= 0.3.6", require: false
gem "tzinfo-data"