Created
May 11, 2023 14:55
-
-
Save blahutka/354cdbc25249f3f44b4cf81c4b8e24ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
source 'https://rubygems.org' | |
# add version numbers with the pessimistic constraint operator to all gems in your Gemfile | |
# https://github.com/joonty/pessimize | |
# change also in semaphore.yml and .ruby-version | |
# before upgrading check if SemaphoreCI supports it already: | |
# https://docs.semaphoreci.com/reference/semaphore-changelog/ | |
# To prevent forged authentication requests, we need to also include CSRF protection. If you're using OmniAuth with Rails, include: | |
# disabling for now - we would need to change facebook login to post, but there is client (JS) | |
# flow and server-side flow and there are differnces in hybrid apps... need to be tested well | |
# gem 'omniauth-rails_csrf_protection', '~> 0.1' | |
ruby '3.1.2' | |
## | |
# RAILS CORE | |
gem 'rails', '6.1.7' | |
gem 'bootsnap', '1.7.3', require: false | |
gem 'net-smtp', require: false # after Rails 7 wont be needed some? https://stackoverflow.com/questions/70500220/rails-7-ruby-3-1-loaderror-cannot-load-such-file-net-smtp | |
gem 'net-pop', require: false | |
gem 'net-imap', require: false | |
gem 'nokogiri', '1.13.10', group: [:web, :test] | |
gem 'prime', require: false # after ruby 3.1 upgrade https://bugs.ruby-lang.org/issues/18400 - resque need that? | |
## | |
# SERVERS | |
gem 'puma', '~> 5.6.5', group: [:web, :test] | |
gem 'sinatra', '2.2.3', require: false # background | |
gem "webrick", "~> 1.7", require: false # when running rake db:setup on semaphore LoadError: cannot load such file -- webrick: https://github.com/jekyll/jekyll/issues/8523 | |
gem 'pg', '~> 1.2.3' | |
gem 'pg_search' | |
gem 'redis', '4.7.1' | |
gem 'resque', '~> 1.27.0', require: 'resque/server' # after upgrade to version 2, remove monkey patch config/initializers/resque_patch.rb | |
gem 'resque-logger', '~> 0.2.0' | |
gem 'resque_mailer', '~> 2.4.2' | |
gem 'resque-retry', '~> 1.5.0' | |
gem 'resque-scheduler', '~> 4.4.0', group: [:resque] | |
gem 'resque-pool', '~> 0.7.1', group: [:resque] | |
gem 'rack-attack', '6.5.0' | |
gem 'rack-timeout', '~> 0.6.0' # heroku | |
gem 'rack-cors', '~> 1.1.0', require: 'rack/cors' | |
gem 'rack-www', github: 'hlidacky/rack-www' # need to bump rack dependency... | |
gem 'dalli', '~> 3.2.3' # Memcached client for ruby | |
## | |
# SERVICES | |
gem 'aws-sdk-kms' # AWS Key Management Service | |
gem 'aws-sdk-s3', '~> 1.91.0' # AWS S3 Storage | |
gem 'aws-sdk-sns', '~> 1.9.0' # AWS Simple Notification Service | |
gem 'rollbar', '~> 3.3.0' # Error catching | |
gem 'appsignal', '~> 3.4', '>= 3.4.2' # Monitoring | |
gem 'mixpanel-ruby', '~> 2.2.0' # analytics | |
gem 'staccato', '~> 0.5.1', require: false, group: [:resque] # Google Analytics Measurement | |
gem 'fcm', '~> 0.0.6', require: false, group: [:resque] # Firebase Cloud Messaging | |
gem 'pusher', '~> 1.3.0', group: [:resque] # pusher.com | |
gem 'venice', '~> 0.5.0', require: false, group: [:resque] # iTunes in App purchase receipt verification | |
gem 'monza', '~> 1.3.2', require: false, group: [:resque] # iTunes Validate iTunes purchase receipts | |
gem 'cloudflare-rails', group: [:production, :staging] # CloudFlare configure for request.ip and request.remote_ip | |
gem 'imgix-rails', '~> 4.2.0' # imgix.com optimize and delivers assets | |
gem 'facebookbusiness', '0.12.0.1', require: false # API SDK. When upgrading the cassette need change version in URL (fixtures/vcr_cassettes/fb_audience_upload.yml) or find propere way to re-record the cassette:) | |
gem 'koala', '~> 3.0.0' # SDK for Facebook. | |
gem 'whereby-ruby', require: false # Whereby's HTTP API to create video rooms and conferences | |
## | |
# PAYMENTS | |
gem 'gopay-ruby', require: 'gopay', github: 'petrsigut/gopay-ruby', branch: 'remove-deprecated-uri-escape' # we are rescuing the underlying rest-client exception in update_payment_state and void_recurrence | |
# | |
# AUTHENTICATION & AUTHORIZATION, ENCRYPTION | |
gem 'cancancan', '~> 3.2.1' # Authorization solution | |
gem 'omniauth-identity', '~> 2.0.0' # Traditional username/password authentication. need older rack? | |
gem 'omniauth-auth0', '~> 3.0.0' # Auth0 platform https://auth0.com/docs/quickstart/webapp/rails/01-login | |
gem 'omniauth-facebook', '~> 8.0.0'# Facebook platform | |
gem 'omniauth-google-oauth2', '~> 1.1.1' # Google platform | |
gem 'omniauth-mojeid', github: 'petrsigut/omniauth-mojeid' # MojeId platform | |
gem 'googleauth' | |
gem 'openid_connect', '~> 1.4.2' # OpenID Connect Server & Client Library | |
gem 'ruby-openid', github: 'petrsigut/ruby-openid', branch: '2022-logging-problematic-nil-values' | |
gem 'jwt' # JSON Web Token implementation. | |
gem 'kms_encrypted' # Lockbox secure key management for Lockbox and attr_encrypted | |
gem 'lockbox' # Lockbox - Moder encryption for ROR | |
## | |
# TRANSLATION, LOCALIZATION | |
gem 'translation', '1.23' # translation.ido service plus management | |
gem 'rails-i18n', '6.0.0' | |
gem 'route_translator', '12.1.0' # routes translations | |
gem 'i18n-tasks', group: [:development, :test] # task for managing *.yml files | |
## | |
# ASSETS, IMAGES, PDF, UPLOADS | |
# # group [:assets] Gems used only for assets and not required in production environments by default. | |
gem 'rails_12factor', '~> 0.0.3', group: [:production, :staging] # logging aggregation and static assets serving in production | |
gem 'sprockets', '~> 4.0' # https://blog.heroku.com/rails-asset-pipeline-vulnerability | |
gem 'importmap-rails', github: 'hlidacky/importmap-rails', branch: 'upgrade-shim-to-1-5-17' | |
gem 'sass', '~> 3.7.4', group: [:assets] | |
gem 'sass-rails', '~> 6.0.0', group: [:assets] | |
gem 'sassc', '~> 2.4.0', group: [:assets] # just to upgrade the sassc version, do not need this dependency directly. just to supress "warning: rb_safe_level will be removed in Ruby 3.0" | |
gem 'shrine', '~> 3.3.0' | |
gem 'image_processing', '~> 1.12.2', group: [:resque] # High-lever wrapper for processing images (ImageMagick, LibVips) | |
gem "ruby-vips", "~> 2.1" # Image processing | |
gem 'mini_magick', '~> 4.11.0', group: [:resque] # Image processing | |
gem 'fastimage', '~> 2.2.3' # Image info fast | |
gem 'wicked_pdf', '~> 2.6.3' | |
gem 'wkhtmltopdf-heroku', '~> 3.0.0.pre.rc0', group: [:production, :staging] # PDF wicked | |
gem 'wkhtmltopdf-binary-edge', '0.12.6.0', group: [:development, :test] # PDF wicked | |
## | |
# JAVASCRIPTS | |
gem 'execjs', '~> 2.8.1', group: [:assets] | |
gem 'babel-transpiler' | |
gem 'terser' # minifies JavaScript files by wrapping TerserJS | |
gem 'bootstrap', '~> 5.1.3', group: [:assets] | |
gem 'turbo-rails', github: 'hlidacky/turbo-rails', branch: 'turbo-7-2-0' ### Fallback to hlidacky turbo rails fork | |
gem 'requestjs-rails', group: [:web, :test] | |
gem 'stimulus-rails' | |
gem 'jquery-ui-rails', '~> 6.0.1' | |
gem 'jquery-rails', '~> 4.5.0' | |
gem 'jquery-timepicker-rails', github: 'hlidacky/jquery-timepicker-rails' | |
gem 'tinymce-rails', '6.1.0' # maybe smaller replacement? https://github.com/iamkun/dayjs/ | |
gem 'select2-rails', '~> 4.0.3' | |
gem 'momentjs-rails', '2.29.1.1' | |
gem 'rinku' # might be JS alternative: https://github.com/SoapBox/linkifyjs | |
gem 'icalendar', '2.7.0', require: false, group: [:web, :test] | |
gem 'js_cookie_rails', '~> 2.2.0', group: [:web, :test] | |
## | |
# VALIDATORS | |
gem "vatlayer", "~> 0.3.6" | |
gem 'auto_strip_attributes', '~> 2.6' # validations etc | |
gem 'valid_email2', '3.2.2' | |
gem 'date_validator', github: 'codegram/date_validator' # TODO in Rails 7 we may replace by https://www.bigbinary.com/blog/rails-7-adds-comparison-validator-to-active-record | |
gem 'ibandit', '1.11.0' | |
gem 'czech_bank_account' | |
gem 'phony_rails', '~> 0.14.4' # phone numbers | |
gem 'phone', '~> 1.2.3' | |
## | |
# MESSAGING EMAILS, SMS | |
gem 'mandrill-rails', '~> 1.5' # Mandrill webhook processing | |
gem 'sms_manager', '~> 0.3.2', group: [:resque] # smsmanager.cz provider | |
gem 'recipient_interceptor', '~> 0.3.0', group: [:staging] # Avoid emailing your users from non-production environments. | |
gem 'premailer-rails', group: [:resque] # Create HTML emails, include a CSS file as you do in a normal HTML | |
gem 'inky-rb', '1.4.2.0', require: 'inky' # HTML-based templating language. Foundation | |
gem 'foundation_emails' # Framework for responsive emails made by ZURB | |
gem 'ahoy_email', '2.0.2' # Email analytics | |
## | |
# OTHER | |
gem 'posix-spawn', '~> 0.3.13', group: [:resque] # for faster process spawning | |
gem 'jbuilder' # to build gdpr export in parent#gdpr_export and something in resque maybe needs it | |
gem 'geocoder', '~> 1.6.1' # Geocoding by IP or Address | |
gem 'pagy', '5.6.6' # Pagination for ActiveRecored, Arrays. Resque fail if in web group | |
gem 'counter_culture', '~> 1.7.0' # counter caches | |
gem 'aasm', '~> 4.11.1' # State machine | |
gem 'paper_trail', '~> 13.0.0' # Track changes to your models, for auditing or versioning | |
gem 'paranoia', '~> 2.5.0' # Active Record object that it didn't actually destroy | |
gem 'awesome_nested_set', '~> 3.4.0' | |
gem 'acts-as-taggable-on', '~> 8.1.0' | |
gem 'enumerize' | |
gem 'active_model_serializers', '~> 0.8.3' # mobile app | |
gem 'config', '~> 2.2.1' # manage multi-environment settings | |
gem 'addressable', '~> 2.8.0' # Uri parsing, alternative implementation to the URI but more flexible | |
gem 'responders', '3.0.0' # rails 4 upgrade - deprecated... only used for respond_to :json in API | |
gem 'lograge', '~> 0.11.2' # logging | |
gem 'browser', '~> 5.3.1' # browser detection with Ruby. | |
gem 'httpclient', '~> 2.8.3' # we are using for example HTTPClient::ReceiveTimeoutError in jobs... | |
gem 'memoist', '~> 0.16.2' # Ruby caching methods | |
gem 'sentencify', '~> 0.4.0' # create sentences with array of Active Record objects | |
gem 'sitemap_generator', '~> 6.3.0' | |
gem 'time_difference', '~> 0.5.0', github: 'badlamer/time_difference', branch: 'master' | |
gem 'field_test', '~> 0.5.4' # A/B testing for Rails monkey patching config/initializers/field_test.rb | |
gem 'country_select', require: 'country_select_without_sort_alphabetical' | |
gem 'groupdate', '5.0.0' # The simplest way to group temporal data. Might be interesting to check also: https://github.com/ankane/rollup | |
gem 'canonical-rails', '0.2.13' # To solve many search engine index problems | |
gem 'blind_index' # Securely search encrypted database fields | |
gem 'rexml' # XML toolkit https://stackoverflow.com/questions/65479863/rails-6-1-ruby-3-0-0-tests-error-as-they-cannot-load-rexml | |
gem "bootstrap_form", "~> 5.1" # Simplify Bootstrap forms with ruby | |
gem 'active_link_to', '~> 1.0.5', group: [:web, :test] # View helper to render currently active links | |
gem 'diffy', '~> 3.4.2', require: false, group: [:web, :test] # String diff | |
group :test do | |
gem 'vcr', '~> 6.1.0' | |
gem 'timecop', '0.9.5' | |
gem 'fakes3', '~> 2.0.0' | |
gem 'sorted_set' # needed by fakes3 | |
gem 'mocha', '~> 1.12.0', require: nil # http://14km.tumblr.com/post/636722885/mocha-doesnt-play-nice-with-rails-3-bundler | |
gem 'capybara', '~> 3.37.1' | |
gem 'minitest-rails', '6.1.0' | |
gem 'minitest-retry' | |
gem 'minitest-profile' | |
gem 'minitest-reporters' | |
gem 'webdrivers', '5.2.0' | |
gem 'capybara-email', '3.0.2' | |
gem 'webmock', '~> 3.12.2', require: false | |
gem 'show_me_the_cookies', '5.0.0' | |
gem 'resque_unit', '~> 0.4.8', require: false | |
gem 'rails-controller-testing', '~> 1.0.4' | |
end | |
group :development do | |
gem 'annotate', '~> 3.0.3' # Annotates ROR models, routes, fixtures | |
gem 'web-console' | |
gem "foreman" # For Rubymine debugging mode | |
gem 'listen' # Listen to file modifications | |
gem 'bullet', '6.1.4' # Help to kol N+1 queries and unused eager loading | |
end | |
group :development, :test do | |
gem 'figaro', '1.2.0', group: [:development, :test] # Simple ROR app configuration | |
gem 'letter_opener', '~> 1.8.1', group: [:development, :test] # Preview mail in browser | |
gem 'pry-rails', '~> 0.3.9', group: [:development, :test] | |
gem 'pry-byebug', '~> 3.10', '>= 3.10.1', group: [:development, :test] | |
gem 'awesome_print', '~> 1.9.2', group: [:development, :test] # Indentation and colors | |
gem 'knapsack_pro' # Knapsack service splits test across parallel CI nodes | |
# gem 'pronto' | |
# gem 'pronto-brakeman', require: false | |
end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment