-
-
Notifications
You must be signed in to change notification settings - Fork 51
/
Gemfile
241 lines (187 loc) · 5.81 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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
# frozen_string_literal: true
source "https://rubygems.org"
gem "bootsnap", require: false
gem "rails", "~> 7.1.0"
gem "rake"
gem "pg"
# Supports postgis so we can magically do spatial queries
gem "activerecord-postgis-adapter"
# API
gem "dalli"
# For throttling API requests
gem "rack-attack"
# Admin interface
gem "administrate", "~> 0.20.0"
# Logging in and such things
gem "devise", "~> 4.2" # Pin to a particular major version to get deprecation warnings
gem "pundit", "~> 2.2"
gem "rolify"
# Extra validation
gem "validates_email_format_of"
gem "validate_url"
# Background queue uses sidekiq
gem "sidekiq", "~> 7.0"
# Run cron jobs alongside sidekiq. Only use this for jobs that need
# to run once across a cluster. We're still using "regular" cron
# for jobs that need to run on every machine
gem "sidekiq-cron"
# For accessing external urls
# TODO: Just pick one and use it for everything
gem "httparty"
gem "rest-client"
# Pagination
gem "kaminari"
# Geocoding and location stuff
gem "geokit"
# rexml is used by geokit but is no longer by default in ruby 3.1
gem "rexml"
# CSS related stuff
gem "autoprefixer-rails"
gem "tailwindcss-rails", "~> 2.0"
# Sanitizing and manipulating user input
gem "rails_autolink"
gem "sanitize"
# Startup setup and environment
gem "dotenv-rails"
gem "foreman"
# Figure out who is likely to be human
gem "recaptcha", require: "recaptcha/rails"
# Site search
gem "searchkick"
# Used to parse different external application feeds
gem "nokogiri"
# Speed up json parsing
# TODO: Double check where this is being used
gem "oj"
# For logging API calls to elasticsearch
# We can't upgrade elasticsearch gem until we've upgraded the server
# TODO: Fix this
gem "elasticsearch", "~> 7"
# Elasticsearch doesn't seem to include this dependency even though it's necessary
# with faraday 2 which is needed by the gem. Weird.
gem "faraday-net_http_persistent"
# For conditional counter caches (used to count visible comments)
gem "counter_culture"
# Make it easier for people using the API by setting CORS headers
gem "rack-cors"
# For type checking
gem "sorbet-runtime"
# For automatic creation of github issues when scrapers are broken
gem "octokit"
# Just including faraday-multipart and faraday-retry to keep octokit quiet
gem "faraday-multipart"
gem "faraday-retry"
# For rendering json output
gem "jb"
# For sending notifications to Slack about bounced emails to authorities
gem "slack-notifier"
# Provide a url endpoint that checks the health of the app
# (used by load balancer)
gem "health_check"
# For accessing the Github GraphQL API which we're using for accessing projects
# which we're using for managing the list of broken scrapers
gem "graphql-client"
# For feature flags
gem "flipper"
gem "flipper-redis"
gem "flipper-ui"
# Testing this out for application performance monitoring
gem "skylight"
# For making more reusable and testable components
gem "view_component"
# For uploading sitemaps to S3 and uploading attachments to S3 using active storage
gem "aws-sdk-s3"
# For generating sitemaps for search engines
gem "sitemap_generator"
# For accessing wikidata
gem "sparql-client"
gem "wikidata"
# For reading in authority boundary data
gem "rgeo-shapefile"
gem "rubyzip"
# Using this webserver for development and production
gem "puma"
# Locking sprockets version
gem "sprockets"
# Needed for getting boundary data into maps
gem "rgeo-geojson"
# For compressing javascript
gem "terser"
# For versioning changes in the admin panel
# Using forked version so we can get access to
# https://github.com/IrvanFza/administrate-field-paper_trail/pull/1/files
# TODO: Move to upstream once this gets merged
gem "administrate-field-paper_trail", github: "DaanVanVugt/administrate-field-paper_trail",
branch: "feature/link-to-whodunnit"
gem "paper_trail"
# A/B testing
gem "split", require: "split/dashboard"
# For some reason this now needs to be available in development (as well as test) for the mailer previews to work
gem "rspec-rails"
group :test do
gem "capybara"
gem "email_spec"
gem "factory_bot"
gem "factory_bot_rails"
gem "rails-controller-testing"
gem "selenium-webdriver"
gem "simplecov", require: false
gem "timecop"
gem "vcr"
gem "webdrivers"
gem "webmock"
# FIXME: stop using `mock_model` and remove this
gem "rspec-activemodel-mocks"
# For automated accessibility testing
gem "axe-core-capybara"
gem "axe-core-rspec"
# For visual differencing using percy.io
gem "percy-capybara"
end
group :development do
# To profile code in development
gem "rack-mini-profiler"
# For static type checking
gem "sorbet"
gem "spoom"
gem "tapioca"
# For guard and associated bits
gem "growl"
gem "guard"
gem "guard-rspec"
gem "guard-rubocop"
gem "rb-fsevent"
gem "rb-inotify", require: false
gem "rails_live_reload"
# For a better error page in development
gem "better_errors"
gem "binding_of_caller"
# For deployment
gem "capistrano", require: false
# For puma 6 support we're using the "beta" version
gem "capistrano3-puma", ">= 6.0.0.beta.1", require: false
gem "capistrano-aws"
gem "capistrano-bundler", require: false
gem "capistrano-rails", require: false
gem "capistrano-rvm", require: false
# Help with code quality
gem "brakeman"
gem "erb_lint", require: false
gem "rubocop", require: false
gem "rubocop-capybara", require: false
gem "rubocop-factory_bot", require: false
gem "rubocop-rails", require: false
gem "rubocop-rake", require: false
gem "rubocop-rspec", require: false
gem "rubocop-rspec_rails", require: false
gem "rubocop-sorbet", require: false
# To help identify database issues
gem "active_record_doctor"
end
group :production do
# Reporting exceptions
gem "honeybadger"
# Javascript runtime (required for precompiling assets in production)
gem "mini_racer"
gem "uglifier"
end