diff --git a/.streerc b/.streerc index c385bd0b7c7..615e88d6e24 100644 --- a/.streerc +++ b/.streerc @@ -1,6 +1,5 @@ --print-width=100 --plugins=plugin/trailing_comma,disable_ternary ---ignore-files=Gemfile --ignore-files=app/* --ignore-files=db/* --ignore-files=lib/* diff --git a/Gemfile b/Gemfile index 1069509ac60..ef77228f747 100644 --- a/Gemfile +++ b/Gemfile @@ -1,51 +1,51 @@ # frozen_string_literal: true -source 'https://rubygems.org' +source "https://rubygems.org" # if there is a super emergency and rubygems is playing up, try #source 'http://production.cf.rubygems.org' -gem 'bootsnap', require: false, platform: :mri +gem "bootsnap", require: false, platform: :mri def rails_master? - ENV["RAILS_MASTER"] == '1' + ENV["RAILS_MASTER"] == "1" end if rails_master? - gem 'arel', git: 'https://github.com/rails/arel.git' - gem 'rails', git: 'https://github.com/rails/rails.git' + gem "arel", git: "https://github.com/rails/arel.git" + 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 - rails_version = '7.0.3.1' - 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 - gem 'sprockets-rails' + rails_version = "7.0.3.1" + 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 + gem "sprockets-rails" end -gem 'json' +gem "json" # TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals # This is a desired upgrade we should get to. -gem 'sprockets', '3.7.2' +gem "sprockets", "3.7.2" # this will eventually be added to rails, # allows us to precompile all our templates in the unicorn master -gem 'actionview_precompiler', require: false +gem "actionview_precompiler", require: false -gem 'discourse-seed-fu' +gem "discourse-seed-fu" -gem 'mail', git: 'https://github.com/discourse/mail.git' -gem 'mini_mime' -gem 'mini_suffix' +gem "mail", git: "https://github.com/discourse/mail.git" +gem "mini_mime" +gem "mini_suffix" -gem 'redis' +gem "redis" # This is explicitly used by Sidekiq and is an optional dependency. # We tell Sidekiq to use the namespace "sidekiq" which triggers this @@ -53,79 +53,79 @@ gem 'redis' # 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 -gem 'redis-namespace' +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 "active_model_serializers", "~> 0.8.3" -gem 'http_accept_language', require: false +gem "http_accept_language", require: false -gem 'discourse-fonts', require: 'discourse_fonts' +gem "discourse-fonts", require: "discourse_fonts" -gem 'message_bus' +gem "message_bus" -gem 'rails_multisite' +gem "rails_multisite" -gem 'fast_xs', platform: :ruby +gem "fast_xs", platform: :ruby -gem 'xorcist' +gem "xorcist" -gem 'fastimage' +gem "fastimage" -gem 'aws-sdk-s3', require: false -gem 'aws-sdk-sns', require: false -gem 'excon', require: false -gem 'unf', require: false +gem "aws-sdk-s3", require: false +gem "aws-sdk-sns", require: false +gem "excon", require: false +gem "unf", require: false -gem 'email_reply_trimmer' +gem "email_reply_trimmer" -gem 'image_optim' -gem 'multi_json' -gem 'mustache' -gem 'nokogiri' -gem 'loofah' -gem 'css_parser', require: false +gem "image_optim" +gem "multi_json" +gem "mustache" +gem "nokogiri" +gem "loofah" +gem "css_parser", require: false -gem 'omniauth' -gem 'omniauth-facebook' -gem 'omniauth-twitter' -gem 'omniauth-github' +gem "omniauth" +gem "omniauth-facebook" +gem "omniauth-twitter" +gem "omniauth-github" -gem 'omniauth-oauth2', require: false +gem "omniauth-oauth2", require: false -gem 'omniauth-google-oauth2' +gem "omniauth-google-oauth2" # pending: https://github.com/ohler55/oj/issues/789 -gem 'oj', '3.13.14' +gem "oj", "3.13.14" -gem 'pg' -gem 'mini_sql' -gem 'pry-rails', require: false -gem 'pry-byebug', require: false -gem 'r2', require: false -gem 'rake' +gem "pg" +gem "mini_sql" +gem "pry-rails", require: false +gem "pry-byebug", require: false +gem "r2", require: false +gem "rake" -gem 'thor', require: false -gem 'diffy', require: false -gem 'rinku' -gem 'sidekiq' -gem 'mini_scheduler' +gem "thor", require: false +gem "diffy", require: false +gem "rinku" +gem "sidekiq" +gem "mini_scheduler" -gem 'execjs', require: false -gem 'mini_racer' +gem "execjs", require: false +gem "mini_racer" -gem 'highline', require: false +gem "highline", require: false -gem 'rack' +gem "rack" -gem 'rack-protection' # security -gem 'cbor', require: false -gem 'cose', require: false -gem 'addressable' -gem 'json_schemer' +gem "rack-protection" # security +gem "cbor", require: false +gem "cose", require: false +gem "addressable" +gem "json_schemer" gem "net-smtp", require: false gem "net-imap", require: false @@ -135,149 +135,152 @@ gem "digest", require: false # 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 group :assets do - gem 'uglifier' + gem "uglifier" end group :test do - gem 'capybara', require: false - gem 'webmock', require: false - gem 'fakeweb', require: false - gem 'minitest', require: false - gem 'simplecov', require: false - gem 'selenium-webdriver', require: false + gem "capybara", require: false + gem "webmock", require: false + gem "fakeweb", require: false + gem "minitest", require: false + gem "simplecov", require: false + gem "selenium-webdriver", require: false gem "test-prof" - gem 'webdrivers', require: false + gem "webdrivers", require: false end group :test, :development do - gem 'rspec' - gem 'listen', require: false - gem 'certified', require: false - gem 'fabrication', require: false - gem 'mocha', require: false + gem "rspec" + gem "listen", require: false + gem "certified", require: false + gem "fabrication", require: false + gem "mocha", require: false - gem 'rb-fsevent', require: RUBY_PLATFORM =~ /darwin/i ? 'rb-fsevent' : false + gem "rb-fsevent", require: RUBY_PLATFORM =~ /darwin/i ? "rb-fsevent" : false - gem 'rspec-rails' + gem "rspec-rails" - gem 'shoulda-matchers', require: false - gem 'rspec-html-matchers' - gem 'byebug', require: ENV['RM_INFO'].nil?, platform: :mri - gem 'rubocop-discourse', require: false - gem 'parallel_tests' + gem "shoulda-matchers", require: false + gem "rspec-html-matchers" + gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri + gem "rubocop-discourse", require: false + gem "parallel_tests" - gem 'rswag-specs' + gem "rswag-specs" - gem 'annotate' + gem "annotate" gem "syntax_tree" - gem 'syntax_tree-disable_ternary' + gem "syntax_tree-disable_ternary" end group :development do - gem 'ruby-prof', require: false, platform: :mri - gem 'bullet', require: !!ENV['BULLET'] - gem 'better_errors', platform: :mri, require: !!ENV['BETTER_ERRORS'] - gem 'binding_of_caller' - gem 'yaml-lint' + gem "ruby-prof", require: false, platform: :mri + gem "bullet", require: !!ENV["BULLET"] + gem "better_errors", platform: :mri, require: !!ENV["BETTER_ERRORS"] + gem "binding_of_caller" + gem "yaml-lint" end if ENV["ALLOW_DEV_POPULATE"] == "1" - gem 'discourse_dev_assets' - gem 'faker', "~> 2.16" + gem "discourse_dev_assets" + gem "faker", "~> 2.16" else group :development, :test do - gem 'discourse_dev_assets' - gem 'faker', "~> 2.16" + gem "discourse_dev_assets" + gem "faker", "~> 2.16" end end # 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 +gem "fast_blank", platform: :ruby # this provides a very efficient lru cache -gem 'lru_redux' +gem "lru_redux" -gem 'htmlentities', require: false +gem "htmlentities", require: false # IMPORTANT: mini profiler monkey patches, so it better be required last # If you want to amend mini profiler to do the monkey patches in the railties # we are open to it. by deferring require to the initializer we can configure discourse installs without it -gem 'rack-mini-profiler', require: ['enable_rails_patches'] +gem "rack-mini-profiler", require: ["enable_rails_patches"] -gem 'unicorn', require: false, platform: :ruby -gem 'puma', require: false -gem 'rbtrace', require: false, platform: :mri -gem 'gc_tracer', require: false, platform: :mri +gem "unicorn", require: false, platform: :ruby +gem "puma", require: false +gem "rbtrace", require: false, platform: :mri +gem "gc_tracer", require: false, platform: :mri # required for feed importing and embedding -gem 'ruby-readability', require: false +gem "ruby-readability", require: false # rss gem is a bundled gem from Ruby 3 onwards -gem 'rss', require: false +gem "rss", require: false -gem 'stackprof', require: false, platform: :mri -gem 'memory_profiler', require: false, platform: :mri +gem "stackprof", require: false, platform: :mri +gem "memory_profiler", require: false, platform: :mri -gem 'cppjieba_rb', require: false +gem "cppjieba_rb", require: false -gem 'lograge', require: false -gem 'logstash-event', require: false -gem 'logstash-logger', require: false -gem 'logster' +gem "lograge", require: false +gem "logstash-event", require: false +gem "logstash-logger", require: false +gem "logster" # NOTE: later versions of sassc are causing a segfault, possibly dependent on processer architecture # and until resolved should be locked at 2.0.1 -gem 'sassc', '2.0.1', require: false +gem "sassc", "2.0.1", require: false gem "sassc-rails" -gem 'rotp', require: false +gem "rotp", require: false -gem 'rqrcode' +gem "rqrcode" -gem 'rubyzip', require: false +gem "rubyzip", require: false -gem 'sshkey', require: false +gem "sshkey", require: false -gem 'rchardet', require: false -gem 'lz4-ruby', require: false, platform: :ruby +gem "rchardet", require: false +gem "lz4-ruby", require: false, platform: :ruby -gem 'sanitize' +gem "sanitize" if ENV["IMPORT"] == "1" - gem 'mysql2' - gem 'redcarpet' + gem "mysql2" + gem "redcarpet" # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one - gem 'sqlite3', '~> 1.3', '>= 1.3.13' - gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md' - gem 'reverse_markdown' - gem 'tiny_tds' - gem 'csv' + gem "sqlite3", "~> 1.3", ">= 1.3.13" + gem "ruby-bbcode-to-md", git: "https://github.com/nlalonde/ruby-bbcode-to-md" + gem "reverse_markdown" + gem "tiny_tds" + gem "csv" - gem 'parallel', require: false + gem "parallel", require: false end # workaround for openssl 3.0, see # https://github.com/pushpad/web-push/pull/2 -gem 'web-push', require: false, git: 'https://github.com/xfalcox/web-push', branch: 'openssl-3-compat' -gem 'colored2', require: false -gem 'maxminddb' +gem "web-push", + require: false, + git: "https://github.com/xfalcox/web-push", + branch: "openssl-3-compat" +gem "colored2", require: false +gem "maxminddb" -gem 'rails_failover', require: false +gem "rails_failover", require: false -gem 'faraday' -gem 'faraday-retry' +gem "faraday" +gem "faraday-retry" # workaround for faraday-net_http, see # https://github.com/ruby/net-imap/issues/16#issuecomment-803086765 -gem 'net-http' +gem "net-http" # workaround for prometheus-client -gem 'webrick', require: false +gem "webrick", require: false # Workaround until Ruby ships with cgi version 0.3.6 or higher. gem "cgi", ">= 0.3.6", require: false