Created
June 24, 2020 22:23
-
-
Save dhh/782fb925b57450da28c1e15656779556 to your computer and use it in GitHub Desktop.
HEY's Gemfile
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
ruby '2.7.1' | |
gem 'rails', github: 'rails/rails' | |
gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data | |
# Action Text | |
gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra' | |
gem 'okra', github: 'basecamp/okra' | |
# Drivers | |
gem 'mysql2' | |
gem 'sqlite3' # Used for asset generation in BK | |
gem 'redis', '~> 4.0' | |
gem 'redis_connectable', github: 'basecamp/redis_connectable' | |
gem 'redis-namespace' | |
gem 'connection_pool' | |
gem 'image_processing', '~> 1.2' | |
gem 'puma', '>= 4.3.3', github: 'puma/puma' | |
# JavaScript and assets | |
gem 'webpacker', '~> 5.1.1' | |
gem 'sprockets', github: 'rails/sprockets' | |
gem 'sprockets-rails', github: 'rails/sprockets-rails' | |
gem 'jbuilder', '~> 2.9', '>= 2.9.1', github: 'rails/jbuilder' | |
gem 'sassc-rails', '~> 2.1' | |
gem 'sassc', '<= 2.1' | |
gem 'local_time', '~> 2.0' | |
gem 'turbo', github: 'basecamp/turbo' | |
# Security | |
gem 'bcrypt', '~> 3.1.7' | |
gem 'pwned', '~> 2.0' | |
gem 'rotp' | |
gem 'webauthn' | |
gem 'rack-ratelimit', github: 'jeremy/rack-ratelimit' | |
# Jobs | |
gem 'resque', '~> 2.0.0' | |
gem 'resque-multi-job-forks', '~> 0.5' | |
gem 'resque-pool', github: 'nevans/resque-pool' | |
gem 'resque-scheduler', github: 'resque/resque-scheduler' | |
gem 'resque-pause', github: 'basecamp/resque-pause' | |
gem 'resque-web', require: 'resque_web' | |
gem 'resque-scheduler-web', github: 'mattgibson/resque-scheduler-web' | |
gem 'sinatra', github: 'sinatra/sinatra' | |
# Storage | |
gem 'aws-sdk-s3', '~> 1.48.0' | |
gem 'activestorage-redundancy', github: 'basecamp/activestorage-redundancy' | |
gem 'activestorage-office-previewer', '~> 0.1' | |
# Search | |
gem 'elasticsearch-model', github: 'elastic/elasticsearch-rails', branch: '6.x' | |
gem 'elasticsearch-rails', github: 'elastic/elasticsearch-rails', branch: '6.x' | |
gem 'html_scrubber', github: 'basecamp/html_scrubber' | |
# Push notifications | |
gem 'aws-sdk-pinpoint' | |
# Monitoring | |
gem 'easymon', '~> 1.4.2' | |
gem 'sentry-raven' | |
# Logging/instrumentation | |
gem 'rails_structured_logging', github: 'basecamp/rails-structured-logging' | |
gem 'full_request_logger', github: 'basecamp/full_request_logger' | |
gem 'critter', '~> 0.3.0', github: 'basecamp/critter', require: false | |
gem 'activejob-stats', github: 'basecamp/activejob-stats' | |
# Profiling/troubleshooting | |
gem 'rbtrace' | |
gem 'stackprof' | |
gem 'rack-mini-profiler' | |
gem 'flamegraph' | |
# Queenbee | |
gem 'queenbee', github: 'basecamp/queenbee-plugin' | |
gem 'actionpack-xml_parser' | |
gem 'countries' | |
# vCard parsing | |
gem 'pdi', github: 'basecamp/pdi', branch: 'utf-8-default' | |
# Supervised rails console in production environments | |
gem 'console1984', github: 'basecamp/console1984' | |
# Other | |
gem 'rake', github: 'ruby/rake' | |
gem 'platform_agent' | |
gem 'useragent', github: 'basecamp/useragent' | |
gem 'geared_pagination', '>= 1.0.0' | |
gem 'rqrcode' | |
gem 'base32' | |
gem 'httparty' | |
gem 'bootsnap', '>= 1.4.2', require: false # Reduces boot times through caching; required in config/boot.rb | |
gem 'rspamd', github: 'basecamp/rspamd-ruby' | |
gem 'redis_object', github: 'basecamp/redis_object' | |
gem 'ruby-progressbar', require: false | |
gem 'rinku', require: 'rails_rinku' | |
gem 'active_record_encryption', github: 'basecamp/active_record_encryption' | |
gem 'simpleidn' | |
group :development, :test do | |
gem 'byebug' | |
gem 'break' | |
gem 'spring' | |
# Code critics | |
gem 'rubocop', '>= 0.72', require: false | |
gem 'rubocop-performance', require: false | |
gem 'rubocop-rails', require: false | |
gem 'scss_lint', '~> 0.50', require: false | |
gem 'bundler-audit', '~> 0.4', github: 'basecamp/bundler-audit', branch: 'thor-bump', require: false | |
gem 'brakeman', '>= 4.0', require: false | |
gem 'benchmark-ips', require: false | |
end | |
group :development do | |
gem 'web-console' | |
gem 'listen', '>= 3.0.5', '< 3.2' | |
gem 'faker', require: false | |
# Deploys, local CI | |
gem 'haybales', github: 'basecamp/haybales' | |
end | |
group :test do | |
gem 'mocha' | |
gem 'capybara', '>= 2.15', github: 'teamcapybara/capybara' | |
gem 'selenium-webdriver' | |
gem 'webmock', github: 'bblimke/webmock' | |
gem 'vcr' | |
end |
@dhh any chance of an update to this? would be interesting to see how it's evolved
what are you using for API (generation), e.g. what serialization approach? render json, or jbuilder?
Thanks for posting. What does "BK" mean?
gem 'sqlite3' # Used for asset generation in BK
BuildKite I assume, but they're using GitHub Actions now.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@misner I do not think he added Sinatra for the sake of adding Sinatra to the project. It's used by other gems such as Resque (check their repo here: https://github.com/resque/resque). You will notice that they are using it to offer you a "nice dashboard".