Merge pull request #330634 from r-ryantm/auto-update/circumflex
[NixPkgs.git] / pkgs / servers / web-apps / discourse / rubyEnv / Gemfile
blobbae9d8b9852dfac576a5d5d097f89bd213e397f6
1 # frozen_string_literal: true
3 source "https://rubygems.org"
4 # if there is a super emergency and rubygems is playing up, try
5 #source 'http://production.cf.rubygems.org'
7 gem "bootsnap", require: false, platform: :mri
9 gem "actionmailer", "< 7.1"
10 gem "actionpack", "< 7.1"
11 gem "actionview", "< 7.1"
12 gem "activemodel", "< 7.1"
13 gem "activerecord", "< 7.1"
14 gem "activesupport", "< 7.1"
15 gem "railties", "< 7.1"
16 gem "sprockets-rails"
18 gem "json"
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
22 gem "sprockets", git: "https://github.com/rails/sprockets", branch: "3.x"
24 # this will eventually be added to rails,
25 # allows us to precompile all our templates in the unicorn master
26 gem "actionview_precompiler", require: false
28 gem "discourse-seed-fu"
30 gem "mail"
31 gem "mini_mime"
32 gem "mini_suffix"
34 gem "redis"
36 # This is explicitly used by Sidekiq and is an optional dependency.
37 # We tell Sidekiq to use the namespace "sidekiq" which triggers this
38 # gem to be used. There is no explicit dependency in sidekiq cause
39 # redis namespace support is optional
40 # We already namespace stuff in DiscourseRedis, so we should consider
41 # just using a single implementation in core vs having 2 namespace implementations
42 gem "redis-namespace"
44 # NOTE: AM serializer gets a lot slower with recent updates
45 # we used an old branch which is the fastest one out there
46 # are long term goal here is to fork this gem so we have a
47 # better maintained living fork
48 gem "active_model_serializers", "~> 0.8.3"
50 gem "http_accept_language", require: false
52 gem "discourse-fonts", require: "discourse_fonts"
54 gem "message_bus"
56 gem "rails_multisite"
58 gem "fastimage"
60 gem "aws-sdk-s3", require: false
61 gem "aws-sdk-sns", require: false
62 gem "excon", require: false
63 gem "unf", require: false
65 gem "email_reply_trimmer"
67 gem "image_optim"
68 gem "multi_json"
69 gem "mustache"
70 gem "nokogiri"
71 gem "loofah"
72 gem "css_parser", require: false
74 gem "omniauth"
75 gem "omniauth-facebook"
76 gem "omniauth-twitter"
77 gem "omniauth-github"
79 gem "omniauth-oauth2", require: false
81 gem "omniauth-google-oauth2"
83 gem "oj"
85 gem "pg"
86 gem "mini_sql"
87 gem "pry-rails", require: false
88 gem "pry-byebug", require: false
89 gem "rtlcss", require: false
90 gem "rake"
92 gem "thor", require: false
93 gem "diffy", require: false
94 gem "rinku"
95 gem "sidekiq"
96 gem "mini_scheduler"
98 gem "execjs", require: false
99 gem "mini_racer"
101 gem "highline", require: false
103 gem "rack"
105 gem "rack-protection" # security
106 gem "cbor", require: false
107 gem "cose", require: false
108 gem "addressable"
109 gem "json_schemer"
111 gem "net-smtp", require: false
112 gem "net-imap", require: false
113 gem "net-pop", require: false
114 gem "digest", require: false
116 # Gems used only for assets and not required in production environments by default.
117 # Allow everywhere for now cause we are allowing asset debugging in production
118 group :assets do
119   gem "uglifier"
122 group :test do
123   gem "capybara", require: false
124   gem "webmock", require: false
125   gem "fakeweb", require: false
126   gem "minitest", require: false
127   gem "simplecov", require: false
128   gem "selenium-webdriver", "~> 4.14", require: false
129   gem "selenium-devtools", require: false
130   gem "test-prof"
131   gem "rails-dom-testing", require: false
132   gem "minio_runner", require: false
135 group :test, :development do
136   gem "rspec"
137   gem "listen", require: false
138   gem "certified", require: false
139   gem "fabrication", require: false
140   gem "mocha", require: false
142   gem "rb-fsevent", require: RUBY_PLATFORM =~ /darwin/i ? "rb-fsevent" : false
144   gem "rspec-rails"
146   gem "shoulda-matchers", require: false
147   gem "rspec-html-matchers"
148   gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
149   gem "rubocop-discourse", require: false
150   gem "parallel_tests"
152   gem "rswag-specs"
154   gem "annotate"
156   gem "syntax_tree"
157   gem "syntax_tree-disable_ternary"
160 group :development do
161   gem "ruby-prof", require: false, platform: :mri
162   gem "bullet", require: !!ENV["BULLET"]
163   gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"]
164   gem "binding_of_caller"
165   gem "yaml-lint"
166   gem "yard"
169 if ENV["ALLOW_DEV_POPULATE"] == "1"
170   gem "discourse_dev_assets"
171   gem "faker", "~> 2.16"
172 else
173   group :development, :test do
174     gem "discourse_dev_assets"
175     gem "faker", "~> 2.16"
176   end
179 # this is an optional gem, it provides a high performance replacement
180 # to String#blank? a method that is called quite frequently in current
181 # ActiveRecord, this may change in the future
182 gem "fast_blank", platform: :ruby
184 # this provides a very efficient lru cache
185 gem "lru_redux"
187 gem "htmlentities", require: false
189 # IMPORTANT: mini profiler monkey patches, so it better be required last
190 #  If you want to amend mini profiler to do the monkey patches in the railties
191 #  we are open to it. by deferring require to the initializer we can configure discourse installs without it
193 gem "rack-mini-profiler", require: ["enable_rails_patches"]
195 gem "unicorn", require: false, platform: :ruby
196 gem "puma", require: false
198 gem "rbtrace", require: false, platform: :mri
200 # required for feed importing and embedding
201 gem "ruby-readability", require: false
203 # rss gem is a bundled gem from Ruby 3 onwards
204 gem "rss", require: false
206 gem "stackprof", require: false, platform: :mri
207 gem "memory_profiler", require: false, platform: :mri
209 gem "cppjieba_rb", require: false
211 gem "lograge", require: false
212 gem "logstash-event", require: false
213 gem "logstash-logger", require: false
214 gem "logster"
216 # A fork of sassc with dart-sass support
217 gem "sassc-embedded"
219 gem "rotp", require: false
221 gem "rqrcode"
223 gem "rubyzip", require: false
225 gem "sshkey", require: false
227 gem "rchardet", require: false
228 gem "lz4-ruby", require: false, platform: :ruby
230 gem "sanitize"
232 if ENV["IMPORT"] == "1"
233   gem "mysql2"
234   gem "redcarpet"
236   # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
237   gem "sqlite3", "~> 1.3", ">= 1.3.13"
238   gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md"
239   gem "reverse_markdown"
240   gem "tiny_tds"
241   gem "csv"
243   gem "parallel", require: false
246 group :generic_import, optional: true do
247   gem "sqlite3"
248   gem "redcarpet"
251 gem "web-push"
252 gem "colored2", require: false
253 gem "maxminddb"
255 gem "rails_failover", require: false
257 gem "faraday"
258 gem "faraday-retry"
260 # workaround for faraday-net_http, see
261 # https://github.com/ruby/net-imap/issues/16#issuecomment-803086765
262 gem "net-http"
264 # Workaround until Ruby ships with cgi version 0.3.6 or higher.
265 gem "cgi", ">= 0.3.6", require: false
267 gem "tzinfo-data"
268 gem "csv", require: false
270 # TODO: Can be removed once we upgrade to Rails 7.1
271 gem "mutex_m"
272 gem "drb"