-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGemfile
149 lines (119 loc) · 3.7 KB
/
Gemfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# frozen_string_literal: true
source "https://rubygems.org"
ruby File.read(File.join(__dir__, ".ruby-version")).strip
gem "rails", File.read(File.join(__dir__, ".rails-version"))
# == Core ==
gem "pg"
gem "puma", "~> 5.2", ">= 5.2.2"
gem "redis"
gem "sidekiq"
# == Configuration ==
# Multi-source configuration
# https://github.com/palkan/anyway_config
gem "anyway_config"
# Template language for views
# http://slim-lang.com
gem "slim-rails"
# == Active Storage ==
# GCS SDK
gem "google-cloud-storage", require: false
# Rufus-scheduler wrapper to run recurring jobs
gem "schked"
# == Performance ==
# Speed up application code loading
# https://github.com/Shopify/bootsnap
# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", ">= 1.4.2", require: false
# == Security ==
# Rack middleware for blocking & throttling abusive requests
# https://github.com/kickstarter/rack-attack
gem "rack-attack"
# Taming Rails' Default Request Logging
# https://github.com/roidrage/lograge
gem "lograge"
# PostgreSQL database performance insights.
# Locks, index usage, buffer cache hit ratios, vacuum stats and more.
# https://github.com/pawurb/rails-pg-extras
gem "rails-pg-extras"
# Catch unsafe migrations
# https://github.com/ankane/strong_migrations
gem "strong_migrations"
group :production, :staging do
# Sentry.io agent
gem "sentry-raven"
# https://rpm.newrelic.com/accounts/2645801
gem "newrelic_rpm"
# == Monitoring ==
gem "yabeda"
# Sidekiq worker metrics
gem "yabeda-sidekiq"
# Per-query and per-field GraphQL monitoring
gem "yabeda-graphql"
# Prometheus support and metrics exporter
gem "yabeda-prometheus-mmap"
# Puma internal metrics and app metrics exporter
gem "yabeda-puma-plugin", "~> 0.4"
# Basic Rails built-in metrics and Yabeda autoconfiguration
gem "yabeda-rails"
# Schked recurring jobs metrics
gem "yabeda-schked"
# Collect performance metrics for AnyCable RPC server
gem "yabeda-anycable"
end
group :development, :test do
# Add rspec-rails to both development and test
# to be able to use generators
gem "rspec-rails", require: ["rspec", "rspec-rails"]
# == Security/Audit
# Check for known CVE in gems
gem "bundler-audit", require: false
# Linter to enforce boundaries
gem "packwerk", require: false
end
group :development do
# Debugger
gem "debug", "~> 1.1"
path "gems" do
# Shared RuboCop configuration
gem "common-rubocop", require: false
end
gem "rubocop", "= 1.20.0" # The Lint/Env Exlude option doesn't work in higher versions
gem "standard", "= 1.3.0" # The Lint/Env Exlude option doesn't work in higher versions
# Used by reloader to watch files changes
gem "listen"
# Used by danger to authenticate GitHub app
gem "jwt", require: false
# == Linters
# Check for consistency between validations and db constraints
# https://github.com/djezzzl/database_consistency
gem "database_consistency", require: false
# Takes two GraphQL schemas and outputs a list of changes between versions
# e.g.:
# rails r 'puts CoreBy::ApplicationSchema.to_definition' > tmp/gql_schema_new
# bundle exec schema_comparator compare tmp/gql_schema_old tmp/gql_schema_new
gem "graphql-schema_comparator"
end
group :test do
path "gems" do
# Shared RSpec configuration
gem "common-testing", require: false
end
end
# == Engines ==
def engine(name)
Dir.chdir(__dir__) do
group name.to_sym do
group :default do
# Add engine as a dependency
gem name, path: "engines/#{name}"
end
# Add development deps to development and test groups
gem "#{name}-dev", path: "engines/#{name}"
end
end
end
path "engines" do
engine "core_by"
engine "auth_by"
engine "interests"
end