bulldozer 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +12 -0
  5. data/CONTRIBUTING.md +59 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +21 -0
  8. data/NEWS.md +638 -0
  9. data/README.md +225 -0
  10. data/RELEASING.md +18 -0
  11. data/Rakefile +8 -0
  12. data/USAGE +13 -0
  13. data/bin/bulldozer +23 -0
  14. data/bin/rake +16 -0
  15. data/bin/rspec +16 -0
  16. data/bin/setup +13 -0
  17. data/bulldozer.gemspec +35 -0
  18. data/docker-compose.yml +8 -0
  19. data/dockerfile +11 -0
  20. data/lib/bulldozer.rb +24 -0
  21. data/lib/bulldozer/actions.rb +85 -0
  22. data/lib/bulldozer/adapters/heroku.rb +123 -0
  23. data/lib/bulldozer/app_builder.rb +321 -0
  24. data/lib/bulldozer/generators/analytics_generator.rb +24 -0
  25. data/lib/bulldozer/generators/app_generator.rb +231 -0
  26. data/lib/bulldozer/generators/base.rb +20 -0
  27. data/lib/bulldozer/generators/ci_generator.rb +22 -0
  28. data/lib/bulldozer/generators/db_optimizations_generator.rb +30 -0
  29. data/lib/bulldozer/generators/factories_generator.rb +22 -0
  30. data/lib/bulldozer/generators/forms_generator.rb +18 -0
  31. data/lib/bulldozer/generators/jobs_generator.rb +38 -0
  32. data/lib/bulldozer/generators/js_driver_generator.rb +15 -0
  33. data/lib/bulldozer/generators/json_generator.rb +10 -0
  34. data/lib/bulldozer/generators/lint_generator.rb +9 -0
  35. data/lib/bulldozer/generators/production/deployment_generator.rb +27 -0
  36. data/lib/bulldozer/generators/production/email_generator.rb +37 -0
  37. data/lib/bulldozer/generators/production/force_tls_generator.rb +11 -0
  38. data/lib/bulldozer/generators/production/manifest_generator.rb +24 -0
  39. data/lib/bulldozer/generators/production/timeout_generator.rb +21 -0
  40. data/lib/bulldozer/generators/staging/pull_requests_generator.rb +33 -0
  41. data/lib/bulldozer/generators/static_generator.rb +10 -0
  42. data/lib/bulldozer/generators/stylesheet_base_generator.rb +31 -0
  43. data/lib/bulldozer/generators/testing_generator.rb +55 -0
  44. data/lib/bulldozer/generators/views_generator.rb +30 -0
  45. data/lib/bulldozer/version.rb +8 -0
  46. data/spec/adapters/heroku_spec.rb +72 -0
  47. data/spec/fakes/bin/heroku +5 -0
  48. data/spec/fakes/bin/hub +5 -0
  49. data/spec/features/api_spec.rb +18 -0
  50. data/spec/features/cli_help_spec.rb +36 -0
  51. data/spec/features/github_spec.rb +16 -0
  52. data/spec/features/heroku_spec.rb +71 -0
  53. data/spec/features/json_spec.rb +15 -0
  54. data/spec/features/new_project_spec.rb +341 -0
  55. data/spec/features/production/deployment_spec.rb +22 -0
  56. data/spec/features/production/email_spec.rb +47 -0
  57. data/spec/features/production/manifest_spec.rb +35 -0
  58. data/spec/features/staging/pull_requests_spec.rb +22 -0
  59. data/spec/spec_helper.rb +21 -0
  60. data/spec/support/be_executable_matcher.rb +7 -0
  61. data/spec/support/bulldozer.rb +182 -0
  62. data/spec/support/contain_json_matcher.rb +24 -0
  63. data/spec/support/exist_as_a_file_matcher.rb +7 -0
  64. data/spec/support/fake_github.rb +21 -0
  65. data/spec/support/fake_heroku.rb +53 -0
  66. data/spec/support/generators.rb +5 -0
  67. data/spec/support/match_contents_matcher.rb +6 -0
  68. data/spec/support/project_files.rb +13 -0
  69. data/templates/Gemfile.erb +51 -0
  70. data/templates/Procfile +2 -0
  71. data/templates/README.md.erb +28 -0
  72. data/templates/_analytics.html.erb +8 -0
  73. data/templates/_css_overrides.html.erb +7 -0
  74. data/templates/_flashes.html.erb +7 -0
  75. data/templates/_javascript.html.erb +3 -0
  76. data/templates/action_mailer.rb +5 -0
  77. data/templates/active_job.rb +13 -0
  78. data/templates/application.scss +8 -0
  79. data/templates/bin_deploy +12 -0
  80. data/templates/bin_setup +28 -0
  81. data/templates/bin_setup_review_app.erb +22 -0
  82. data/templates/browserslist +3 -0
  83. data/templates/bulldozer_gitignore +18 -0
  84. data/templates/bulldozer_layout.html.erb.erb +21 -0
  85. data/templates/bundler_audit.rake +4 -0
  86. data/templates/chromedriver.rb +17 -0
  87. data/templates/circle.yml.erb +6 -0
  88. data/templates/config_locales_en.yml.erb +19 -0
  89. data/templates/dev.rake +12 -0
  90. data/templates/dotfiles/.ctags +2 -0
  91. data/templates/dotfiles/.env +13 -0
  92. data/templates/email.rb +3 -0
  93. data/templates/errors.rb +34 -0
  94. data/templates/factories.rb +2 -0
  95. data/templates/factory_bot_rspec.rb +5 -0
  96. data/templates/flashes_helper.rb +5 -0
  97. data/templates/hound.yml +14 -0
  98. data/templates/i18n.rb +3 -0
  99. data/templates/json_encoding.rb +1 -0
  100. data/templates/postgresql_database.yml.erb +19 -0
  101. data/templates/puma.rb +28 -0
  102. data/templates/rack_mini_profiler.rb +5 -0
  103. data/templates/rails_helper.rb +22 -0
  104. data/templates/secrets.yml +8 -0
  105. data/templates/shoulda_matchers_config_rspec.rb +6 -0
  106. data/templates/smtp.rb +9 -0
  107. data/templates/spec_helper.rb +28 -0
  108. metadata +197 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 454d52670ea7c516c49d5202447deaab249dd3e6df59d5c257525b1b34a5f4af
4
+ data.tar.gz: dcf1e6219f32673b3fa9fda7464ad8a9f02b945ac67890aa28a3eb0d5903bfcf
5
+ SHA512:
6
+ metadata.gz: b21054a99e8b21b6cee1e55a2811b576fbc46be89db5072be8a62202eb46d1eb4bd394cdcc4f5f18d88263cad36304706e3712e81ad31f2f9d0c92d99db0a26e
7
+ data.tar.gz: e77f8076dd8ce0c640e01758cd425fd7fc12829b1ab1337eb6a0c6b24780147744ce47d54e90de95d13dcbe57811868dee34dada3d12d644a74839e106437288
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ *.swp
3
+ Gemfile.lock
4
+ /.bundle
5
+ /tmp
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.5.3
data/.travis.yml ADDED
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ rvm: 2.5.3
3
+ cache: bundler
4
+ sudo: false
5
+ before_install:
6
+ - git config --global user.name 'Travis CI'
7
+ - git config --global user.email 'travis-ci@example.com'
8
+ - gem update --system
9
+ - gem install bundler -v '< 2'
10
+ install: bundle install
11
+ notifications:
12
+ email: false
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,59 @@
1
+ # Contributing
2
+
3
+ We love pull requests from everyone. By participating in this project, you agree
4
+ to abide by the seasoned [code of conduct].
5
+
6
+ [code of conduct]: https://seasoned.cc/open-source-code-of-conduct
7
+
8
+ Fork the repo:
9
+
10
+ git clone git@github.com:seasoned/bulldozer.git
11
+
12
+ Set up your machine:
13
+
14
+ ./bin/setup
15
+
16
+ Make sure the tests pass:
17
+
18
+ rake
19
+
20
+ Make your change.
21
+ Write tests.
22
+ Follow our [style guide][style].
23
+ Make the tests pass:
24
+
25
+ [style]: https://github.com/SeasonedSoftware/guides/tree/master/style
26
+
27
+ rake
28
+
29
+ Mention how your changes affect the project to other developers and users in the
30
+ `NEWS.md` file.
31
+
32
+ Write a [good commit message][commit].
33
+ Push to your fork.
34
+ [Submit a pull request][pr].
35
+
36
+ [commit]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
37
+ [pr]: https://github.com/SeasonedSoftware/bulldozer/compare/
38
+
39
+ If [Hound] catches style violations,
40
+ fix them.
41
+
42
+ [hound]: https://houndci.com
43
+
44
+ Wait for us.
45
+ We try to at least comment on pull requests within one business day.
46
+ We may suggest changes.
47
+
48
+ ## Versions
49
+
50
+ To update the Ruby version,
51
+ change `.ruby-version` and `.travis.yml`.
52
+
53
+ If you see this error while running tests:
54
+
55
+ ```
56
+ Your Ruby version is XXX, but your Gemfile specified YYY (Bundler::RubyVersionMismatch)
57
+ ```
58
+
59
+ Try removing the `tmp/` directory and re-running the tests.
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2018-2019 seasoned, inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/NEWS.md ADDED
@@ -0,0 +1,638 @@
1
+ 1.6.0 (March 01, 2019)
2
+
3
+ * Rename Project to bulldozer
4
+ * All commands now will change from `suspenders` to `bulldozer`
5
+
6
+ 1.50.0 (December 28, 2018)
7
+
8
+ * Removed: jquery-rails.
9
+ * Changed: default FactoryBot to `use_parent_strategy = true`.
10
+ * Upgraded: Ruby 2.5.3.
11
+ * Fixed: set `ASSET_HOST` and `APPLICATION_HOST` at top of `production.rb`.
12
+ * Fixed: `tzinfo-data` gem for Windows.
13
+ * New generator: `suspenders:json` for JSON parsing.
14
+ * New generator: `suspenders:staging:pull_requests` for Heroku app per PR.
15
+
16
+ 1.49.0 (October 19, 2018)
17
+
18
+ * Removed: NOODP robots meta tags
19
+ * Removed: flutie gem and body class in application layout
20
+ * Upgraded: remove version constraint for pg gem
21
+ * Fixed: install JavaScript dependencies in bin/setup
22
+ * Fixed: include action_mailer SMTP settings in production config
23
+
24
+ 1.48.0 (August 10, 2018)
25
+
26
+ * Bug fix: change production timeouts generator to use working configuration
27
+ method with latest version of Rack::Timeout
28
+ * Bug fix: Only add email environment requirements if configuring for email
29
+ * Breaking: Replace capybara-webkit with chromedriver
30
+
31
+ 1.47.0 (May 25, 2018)
32
+
33
+ * Bug fix: normalize.css Sass import is concatenated with other styles now
34
+ * Bug fix: the suspenders gem itself is not needed in production
35
+ * Bug fix: bundle install after adding a gem
36
+ * Breaking: remove Refills
37
+ * Breaking: rename suspenders:enforce_ssl to suspenders:production:force_tls
38
+ * Upgrade: update to Ruby 2.5.1
39
+ * Upgrade: update to Rails 5.2.0
40
+ * New generator: production email
41
+ * New generator: production timeouts
42
+
43
+ 1.46.0 (January 26, 2018)
44
+
45
+ * Bug fix: Fix for action mailer asset_host
46
+ * Bug fix: Lock pg to ~> 0.18
47
+ * Breaking: Remove Database Cleaner
48
+ * Upgrade: Update to Rails 5.1.4
49
+ * Upgrade: Update to Ruby 2.5.0
50
+ * Upgrade: Update bourbon from 5.0.0.beta.8 to 5.0.0
51
+ * Upgrade: Update FactoryGirl to FactoryBot
52
+ * Generators: Analytics generator
53
+ * Generators: CI generator
54
+ * Generators: DB optimization generator
55
+ * Generators: Factories generator
56
+ * Generators: Forms generator
57
+ * Generators: Javascript driver generator
58
+ * Generators: Jobs generator
59
+ * Generators: Lint generator
60
+ * Generators: Testing driver generator
61
+ * Generators: Views generator
62
+
63
+ 1.45.0 (September 8, 2017)
64
+
65
+ * Bump Rails to 5.1.3 (#857)
66
+ * Configure HONEYBADGER_ENV for staging, production (#861)
67
+ * Remove vestigial `staging` references (#860)
68
+ * Prevent memory bloat in ActiveJob children (#856)
69
+ * .git/safe is opt-in (#837)
70
+ * Enforce SSL in production environment (#855)
71
+ * Configures action mailer asset host (#853)
72
+ * Install normalize.css via yarn (#851)
73
+ * Update Rails to 5.1 (#847)
74
+ * Update bourbon from 5.0.0.beta.7 to 5.0.0.beta.8 (#848)
75
+ * Update Neat to 2.1 (#849)
76
+ * Update Bitters to 1.7 (#850)
77
+ * Fix incorrect Timecop link (#845)
78
+ * Update Ruby to 2.4.1 (#841)
79
+ * Update rspec-rails to 3.6 (#842)
80
+ * Configure TimeCop safe mode (#840)
81
+ * Pull normalize.css through Rails Assets (#839)
82
+ * Fix fatal git failures in tests (#832)
83
+ * Schedule Heroku Backups and Capture backup of existing staging database for
84
+ Review Apps (#826)
85
+ * Use bundle-audit rake task from the gem (#831)
86
+ * Update Thughtbot logo (#829)
87
+ * Change terminal symbol in README's deploying section (#828)
88
+ * Update Segment snippet to 4.0.0 (#822)
89
+
90
+ 1.44.0 (January 25, 2017)
91
+
92
+ * Improve readability of `bin/setup-review-app` (#819)
93
+ * Update scripts to be `sh`-compatible (#820)
94
+ * Remove `rails_stdout_logging` gem (#818)
95
+ * Remove `12factor` gem (#817)
96
+ * Update Ruby to 2.4.0 (#814)
97
+
98
+ 1.43.0 (November 8, 2016)
99
+
100
+ * Update Bourbon to 5.0.0.beta.7
101
+ * Update Neat to 2.0.0.beta.1
102
+ * Update Bitters to 1.5.0
103
+ * Drop sprockets-es6
104
+ * Bugfix: doesn’t generate unused `test/` directory
105
+
106
+ 1.42.0 (July 23, 2016)
107
+
108
+ * [#784] Require refills once
109
+ * [#790] Ensure stylesheet_base generator runs with a clean bundle
110
+ * [#791] Use Rails' 5 syntax for `public_file_server.headers`
111
+ * [#792] Remove turbolinks from application.js file
112
+
113
+ 1.41.0 (July 1, 2016)
114
+
115
+ * Update to Rails 5
116
+ * Drop quiet_assets
117
+ * Drop unneeded `suspenders` aliases: `--skip-test-unit`, `--skip-turbolinks`,
118
+ `--skip-bundle`. Drops `-G` that clashes with Rails’ `--skip-git` alias.
119
+
120
+ 1.40.0 (June 25, 2016)
121
+
122
+ * Upgrade bourbon to 5.0.0.beta.6
123
+ * Update Neat to 1.8.0
124
+ * `APPLICATION_HOST` bug fix in production environment (was used before it was
125
+ defined)
126
+ * Update comment around Pipelines: it is now a Heroku core plugin
127
+ * Drop unneeded `WEB_CONCURRENCY` from `app.json` file
128
+ * Introduce a `suspenders:stylesheet_base` generator. The `application.scss`
129
+ must list the imports in a specific order. This removes the `application.css`.
130
+
131
+ 1.39.0 (May 25, 2016)
132
+
133
+ * Update to Ruby 2.3.1
134
+ * Make new apps "deployable to Heroku" by default.
135
+ * Make the help text returned when running `suspenders -h` suspenders specific
136
+ * Bugfix: Configure `static_cache_control` in production environment
137
+ * Replace NewRelic with Skylight
138
+ * Drop initializer for disabling XML parser
139
+ * Start moving suspenders features into different Rails Generators
140
+ * Set default `application_host` in Heroku
141
+ * Update the viewport meta tag
142
+
143
+ 1.38.1 (April 20, 2016)
144
+
145
+ * Bugfix: add bitters as suspenders’ dependency back.
146
+
147
+ 1.38.0 (April 15, 2016)
148
+
149
+ * Update bourbon to `v5.0.0.beta.5`
150
+ * Drops staging environment in favor of configuration through env variables
151
+ * Bugfix: failing migrations were not making Heroku deploys fail
152
+
153
+ 1.37.0 (March 13, 2016)
154
+
155
+ * Remove `RAILS_ENV` definitions
156
+ * Set development `action_mailer.delivery_method` to `:file`
157
+ so that mails are copied to `./tmp/mails/` directory for easy development
158
+ access.
159
+ * Update Bourbon to v5.0.0.beta.3
160
+ * Update Bitters to v1.3
161
+ * Update Autoprefixer config, drop support for IE 9, IE 10 and iOS 7
162
+ * Better db support in linux environments
163
+ * Replaces coffeescript with babel
164
+ * Update CSS tests to ignore transitions
165
+
166
+ 1.36.0 (February 26, 2016)
167
+
168
+ * Update Bitters to v1.2
169
+ * Remove deprecated `fix_i18n_deprecation_warning` method
170
+ * Switch from Airbrake to Honeybadger
171
+ * Generate applications with `rack_mini_profiler` (disabled by default, enabled
172
+ by setting `RACK_MINI_PROFILER=1`)
173
+ * Heroku Pipelines bug fixes
174
+
175
+ 1.35.0 (December 30, 2015)
176
+
177
+ * Introduce Heroku Pipelines support
178
+ * Update to Ruby 2.3.0
179
+ * Heroku commands run on staging by default
180
+ * Git ignore `.env.local` instead of `.env`
181
+ * Add ability to use byebug navigation commands inside of Pry using the
182
+ `pry-byebug` gem
183
+ * Remove `i18n-tasks` from generated Gemfile
184
+ * Accessibility: Add `lang` attribute to `html` element in layout
185
+
186
+ 1.34.0 (November 15, 2015)
187
+
188
+ * Fix `block_unknown_urls` deprecation warning with capybara_webkit when running
189
+ Javascript tests
190
+ * Inherit staging's `action_mailer_host` config from production
191
+ * suspenders command line responds to `-v` and `--version` options
192
+ * Clean up `bin/rake`
193
+ * Remove `email_validator` gem from generated Gemfile
194
+ * Fix Circle deploys by removing redundant remote
195
+ * Add `bullet` as development dependency
196
+ * Use Heroku Local (Forego) instead of Foreman
197
+ * Raise on missing Sprockets assets in test environment
198
+
199
+ 1.33.0 (October 23, 2015)
200
+
201
+ * Add `quiet_assets` as development dependency
202
+ * Reduce number of Puma processes and threads to reduce memory usage
203
+ * Move non-runtime-dependency i18n-tasks to development and test Gemfile groups
204
+ * Move non-runtime-dependency refills to the development Gemfile group
205
+ * Generate empty `spec/factories.rb` file in accordance with Thughtbot’s
206
+ styleguide
207
+ * Shoulda Matchers 3.0 configuration
208
+
209
+ 1.32.0 (October 9, 2015)
210
+
211
+ * Install Foreman automatically during setup script
212
+ * Port always defaults to 3000
213
+ * Provide shoulda-matchers config
214
+ * Set CI auto-deploy for Heroku suspended apps
215
+ * Configure capybara-webkit to block unknown URLs
216
+ * Add mandatory environment variables to .sample.env
217
+ * Other bugfixes
218
+
219
+ 1.31.0 (September 3, 2015)
220
+
221
+ * Update to Ruby 2.2.3
222
+ * Add ctags configuration dotfile
223
+ * Rename `$HOST` to `$APPLICATION_HOST` for zsh compatibility
224
+ * Update Bitters to 1.1
225
+ * Remove comments and newlines in config files
226
+ * Abort tests run if `DATABASE_URL` env variable is set
227
+
228
+ 1.30.0 (July 30, 2015)
229
+
230
+ * Update to RSpec 3.3
231
+ * Replace TravisCI with CircleCI
232
+ * Rename development data concept to avoid confusion with db/seeds
233
+ * Remove Unicorn in favor of Puma, as [recommended by Heroku]
234
+
235
+ [recommended by Heroku]: https://devcenter.heroku.com/changelog-items/594
236
+
237
+ 1.29.0 (June 16, 2015)
238
+
239
+ * Generate rake, rails and rspec binstubs with Spring
240
+ * Remove Capybara and use RSpec 3.2 for development
241
+ * Improves suspenders' test suite speed
242
+ * Refills `flashes.scss` bugfix
243
+
244
+ 1.28.0 (May 9, 2015)
245
+
246
+ * Require spec/support files in a certain order
247
+ * Use rack-canonical-host
248
+ * Swap `id="flash"` for `class="flashes"` in `_flashes.html.erb`
249
+ * Provide EXECJS_RUNTIME env variable (Node, as in Heroku)
250
+ * Removes .css file suffix from application stylesheet
251
+ * Add mention of Autoprefixer Rails gem to readme
252
+ * Use ruby 2.2.2
253
+ * Update gems
254
+
255
+ 1.27.0 (April 10, 2015)
256
+
257
+ * Add Autoprefixer and browserslist config file
258
+ * Only display user-facing flashes
259
+ * Add code of conduct to CONTRIBUTING document
260
+ * Only use rack-timeout in staging and production
261
+ * Add SimpleCov
262
+ * Avoid generation of extra _flashes view
263
+ * Fix Travis CI install step
264
+ * Cache bundle in Travis CI runs
265
+
266
+ 1.26.0 (March 23, 2015)
267
+
268
+ * Update Rails to 4.2.1
269
+ * Update Bitters to 1.0
270
+ * Fix .ruby-version (should have been 2.1.1)
271
+ * Enable `verify_partial_doubles`
272
+ * Renames Segment.io to Segment
273
+ * Removes New Relic unnecessary configuration setting
274
+
275
+ 1.25.0 (March 7, 2015)
276
+
277
+ * Configure Active Job queue adapter for test env
278
+ * Use Ruby 2.2.1 (bug: `.ruby-version` wasn’t updated in the package)
279
+ * Dasherize heroku app names
280
+ * Update Bourbon to 4.2.0
281
+ * Add ASSET_HOST to sample.env (defaults to HOST)
282
+ * Set bin/deploy script as executable
283
+ * Set email deliver method to :test for development
284
+ * Include missing word in the Flutie description in README.
285
+ * Remove unused dev gems: aruba & cucumber
286
+ * Use skip_bundle class_option (rather than defining an empty run_bundle method)
287
+
288
+ 1.24.0 (February 3, 2015)
289
+
290
+ * Remove things in suspenders that Rails does for us now.
291
+ * Document how to use the `title` view helper.
292
+ * Improve speed of bundling in `bin/setup` script.
293
+ * Set ENV variable to make out-of-the-box Heroku static asset experience better.
294
+
295
+ 1.23.0 (January 19, 2015)
296
+
297
+ * Use Bourbon 4.1.0.
298
+ * Use Neat 1.7.0.
299
+ * Remove [parameter wrapping] for every format, including JSON.
300
+ * Turn off TravisCI email notifications for Suspended apps.
301
+ * Run `rake dev:prime` on CI in order to test
302
+ whether `bin/setup` has any regressions.
303
+ * Fix `config.action_mailer.default_url_options`'s value.
304
+ It now correctly uses `ENV.fetch("HOST")` in staging
305
+ and production.
306
+
307
+ [parameter wrapping]: http://api.rubyonrails.org/classes/ActionController/ParamsWrapper.html
308
+
309
+ 1.22.0 (January 11, 2015)
310
+
311
+ * Allow additional
312
+ [Heroku flags](https://github.com/ThughtbotSoftware/suspenders#heroku)
313
+ such as `--addons` and `--region`.
314
+ * Use RSpec 3.1.0.
315
+ * Use Travis' new Docker container infrastructure
316
+ for builds that start sooner and run faster.
317
+ * Improve SMTP and ActionMailer default settings.
318
+
319
+ 1.21.0 (January 4, 2015)
320
+
321
+ * Use Ruby 2.2.0.
322
+ * Use Rails 4.2.0.
323
+ * Install [Refills] and Refills' "flashes" component.
324
+ * Add `bin/deploy` script.
325
+
326
+ [Refills]: http://refills.bourbon.io/components/#flashes
327
+
328
+ 1.20.0 (November 25, 2014)
329
+
330
+ * Use Ruby 2.1.5.
331
+ * Use bin/setup from TravisCI to test executable documentation.
332
+ * Default JSON time format to use ISO8601 to match Heroku API Design Guide.
333
+ * Add Bundler Audit to scan Gemfile for insecure dependencies per CVEs.
334
+
335
+ 1.19.0 (November 23, 2014)
336
+
337
+ * Use Ruby 2.1.4.
338
+ * Use Rails 4.1.8.
339
+ * Add Bundler Audit gem for scanning the Gemfile
340
+ for insecure dependencies based on published CVEs.
341
+ * Use Heroku-recommended timeout numbers.
342
+ * [Improve memory] of app on Heroku with New Relic.
343
+ * Turn off RSpec verbose mode by default.
344
+
345
+ [Improve memory]: http://forum.upcase.com/t/how-to-free-up-swap-space-heroku/3017/13?u=croaky
346
+
347
+ 1.18.0 (October 23, 2014)
348
+
349
+ * Use Ruby 2.1.3.
350
+ * Move New Relic to all gem groups to more easily
351
+ [debug Rails performance in development][debug-performance].
352
+ * Make `bin/setup` idempotent, failing fast with install messages.
353
+ * Fix unevaluated app name in generated `en.yml` locale file.
354
+ * Change `File.exists?` to `File.exist?` to fix Ruby warning.
355
+ * Don't include port 6000 as an option for Foreman; Chome considers it unsafe.
356
+ * Git ignore the entire /tmp directory.
357
+
358
+ [debug-performance]: https://upcase.com/improving-rails-performance
359
+
360
+ 1.17.0 (September 30, 2014)
361
+
362
+ * Use Rails 4.1.6.
363
+ * Generate a `spec/rails_helper.rb` and `spec/spec_helper.rb` following
364
+ RSpec 3.x's example, but using our defaults.
365
+ * Raise on missing i18n translations in test environment.
366
+ * Raise on unpermitted parameters in test environment.
367
+ * Provide example for using Title gem for internationalizing page title text.
368
+
369
+ 1.16.0 (August 16, 2014)
370
+
371
+ * Use the 3.x series of RSpec.
372
+ * Use the 0.10.x series of Bitters.
373
+ * Improve documentation in generated README for machine setup via `bin/setup`
374
+ and https://github.com/ThughtbotSoftware/laptop script.
375
+ * Remove Foreman from `Gemfile`.
376
+ * Use i18n-tasks for missing or unused translations.
377
+ * Raise on missing translations in development environment. Fail fast!
378
+ * Prevent empty div when there are no flashes.
379
+ * Pick random port when generating Rails app so multiple apps can be run via
380
+ Foreman on a development machine at the same time.
381
+ * Add `normalize-rails` gem for resetting browser styles.
382
+
383
+ 1.15.0 (July 9, 2014)
384
+
385
+ * Use Rails 4.1.4.
386
+ * Use latest Thughtbot style guidelines in generated code so that
387
+ https://houndci.com will approve the initial commit.
388
+ * Remove Campfire in favor of Slack.
389
+ * Remove Pow in bin/setup.
390
+ * Upgrade Capybara Webkit to support Capybara 2.3 API.
391
+ * Add byebug.
392
+
393
+ 1.14.0 (June 11, 2014)
394
+
395
+ * Set up Bitters during suspenders setup. http://bitters.bourbon.io/
396
+ * Remove SimpleCov.
397
+ * Force suspenders to use a particular Rails version (4.1.1).
398
+ * Use RSpec 2.x until Travis/Capybara issues resolve.
399
+ * Set `viewport` to `initial-scale=1`.
400
+
401
+ 1.13.0 (May 29, 2014)
402
+
403
+ * Remove `FactoryGirl.lint` in `before(:suite)` in order to avoid paying and
404
+ estimated extra ~300ms load time on a typical Thughtbot app.
405
+ * Automatically join Heroku app in `bin/setup` if using Heroku organizations.
406
+
407
+ 1.12.0 (May 26, 2014)
408
+
409
+ * Fix `rake dev:prime` now that suspenders-generated apps require some `ENV`
410
+ variables to be set.
411
+ * Ensure `EMAIL_RECIPIENTS` is set on staging.
412
+ * Clear `ActionMailer` deliveries before every test.
413
+ * Include New Relic configuration file.
414
+ * Add Formulaic gem for integration testing HTML forms.
415
+ * Set up the Segment.io adapter for analytics and event tracking through
416
+ services such as Google Analytics and Intercom.
417
+ * Prepare staging and production environments to serve static assets through a
418
+ CDN.
419
+
420
+ 1.11.0 (May 17, 2014)
421
+
422
+ * Generate a Rails 4.1.1 app and implement fixes for compatibility.
423
+ * Escape ERb in secrets.yml
424
+ * Maintain ActiveRecord test schema.
425
+ * Make Shoulda Matchers work with Spring.
426
+ * Unify Ruby version for gem and suspended apps.
427
+ * Move SMTP variable settings out of initializer.
428
+ * Connect to Postgres on localhost.
429
+ * Add `bin/setup` for contributors.
430
+ * Improve and document TravisCI configuration.
431
+
432
+ 1.10.2 (April 28, 2014)
433
+
434
+ * Fix bundling Bourbon and Neat.
435
+
436
+ 1.10.1 (April 25, 2014)
437
+
438
+ * Fix bundling sass-rails.
439
+
440
+ 1.10.0 (April 21, 2014)
441
+
442
+ * Generate a Rails 4.1 app.
443
+ * Generate a working .ruby-version for Ruby >= 2.1.0.
444
+ * Update Unicorn template to version now preferred by Heroku.
445
+
446
+ 1.9.3 (April 13, 2014)
447
+
448
+ * Use FactoryGirl.lint instead of custom-generated factory-testing code.
449
+ * Fix Delayed::Job <-> Rails 4.1 dependency conflict.
450
+
451
+ 1.9.2 (April 10, 2014)
452
+
453
+ * Join Heroku apps in bin/setup.
454
+ * Enable SMTP/TLS in SMTP settings.
455
+ * Silence an RSpec warning.
456
+
457
+ 1.9.1 (April 7, 2014)
458
+
459
+ * Fix sass-rails environment NilClass error.
460
+
461
+ 1.9.0 (March 24, 2014)
462
+
463
+ * Add `awesome_print` gem.
464
+ * Add `dev:prime` task placeholder for bootstrapping local dev data.
465
+ * Add fix for I18n deprecation warning from `enforce_available_locales`.
466
+ * Add generated `.travis.yml`.
467
+ * Remove `better_errors` because of issues with Unicorn.
468
+ * Remove fast-failing for RSpec; respect user's `~/.rspec` instead.
469
+ * Update New Relic agent.
470
+ * Update Rails to 4.0.3.
471
+
472
+ 1.8.1 (February 19, 2014)
473
+
474
+ * Don't distribute rspec binstub with gem.
475
+
476
+ 1.8.0 (February 18, 2014)
477
+
478
+ * Make the .git/safe directory in bin/setup.
479
+ * Require `rails_12factor` gem only on Heroku.
480
+ * Require mailer config on staging and production.
481
+ * Add rspec binstub.
482
+ * Fix .ruby-version on Ruby 2.1.0.
483
+ * Replace Flutie's `page_title` with `title` gem.
484
+ * Don't run factory specs twice.
485
+ * Inherit staging config from production.
486
+ * Internal: convert tests from Cucumber to RSpec.
487
+ * Don't include `prefilled_input.js`.
488
+ * Fix Rack class name - Deflater instead of Timeout.
489
+ * Add Pry Rails.
490
+ * Add Spring.
491
+ * Add Dotenv to development and test environments to load environment variables
492
+ from the `.env` file.
493
+ * Reduce ActiveRecord connection pool from 5 to 2.
494
+
495
+ 1.7.0 (December 6, 2013)
496
+
497
+ * Keep `db/schema.rb` under version control.
498
+ * Fast-fail if any part of `bin/setup` fails.
499
+ * Move secret key out of version control.
500
+ * Create `.ruby-version` in generated applications.
501
+ * Add placeholder modules and directories for feature specs.
502
+ * Improve README to include setup instructions.
503
+
504
+ 1.6.0 (November 28, 2013)
505
+
506
+ * Do not create `.rspec` file as the settings are not project-specific.
507
+ * Generate RSpec binstub at `bin/rspec`.
508
+ * Fix stylesheet error on 500, 404, and 422 static pages.
509
+ * Add `--skip-git` option.
510
+ * Disable jQuery animations in Rails integration tests that execute JavaScript.
511
+ * Fix git remote bug.
512
+ * Add `Rack::Deflater` to compress responses with Gzip.
513
+
514
+ 1.5.1 (September 10, 2013)
515
+
516
+ * Remove Turbolinks.
517
+ * Don't use Bundler's binstubs in `bin/setup`.
518
+ * Remove `--drb` now that we aren't using Spork.
519
+ * Set up DNS via Pow for development.
520
+ * Update gem versions.
521
+
522
+ 1.5.0 (August 3, 2013)
523
+
524
+ * Add Neat.
525
+ * Replace Bourne with RSpec Mocks.
526
+ * Replace Sham Rack with WebMock.
527
+ * Remove dependency on `hub` gem.
528
+ * Clean up leftover Rails 3 conventions.
529
+
530
+ 1.4.0 (July 21, 2013)
531
+
532
+ * Support Rails 4.
533
+ * Support Ruby 2.
534
+ * Remove jQuery UI.
535
+ * Factories spec works for non-ActiveRecord objects.
536
+ * Use New Relic RPM gem >= 3.5.7 for Heroku request queue accuracy.
537
+ * Abort RSpec runs on first failure.
538
+ * Replace custom email validator with gem.
539
+
540
+ 1.3.0 (May 13, 2013)
541
+
542
+ * Switch web server from Thin to Unicorn
543
+ * Set up database before setting up RSpec so that the rspec:install task works
544
+ * Add Delayed::Job
545
+ * Clean up cruft from ActionMailer delivery configuration
546
+ * strong_parameters now raises an error in development
547
+ * Enforce Ruby 1.9.2+ in the gemspec
548
+
549
+ 1.2.2 (March 14, 2013)
550
+
551
+ * Fix Syntax error in staging/production environment config files.
552
+ * Make Factory Girl available to development environment for generators and
553
+ `rails console`.
554
+
555
+ 1.2.1 (February 28, 2013)
556
+
557
+ * Use Ruby 1.9.3 and 2.0
558
+ * Update staging and production email delivery
559
+ * Remove Spork and Guard
560
+ * Add better_errors and binding_of_caller gems
561
+ * Fix ActiveRecord attributes' blacklist
562
+ * Add Flutie to Gemfile
563
+
564
+ 1.2.0 (February 13, 2013)
565
+
566
+ * Upgrade Rails from 3.2.8 to 3.2.12 to keep pace with security patches.
567
+ * Improve staging environment on Heroku with staging `ENV` variables and
568
+ overriding the recipient in staging email delivery.
569
+ * Remove Flutie, use Bourbon.
570
+ * Wrap all HTTP requests in a 5 second timeout.
571
+ * Don't use `attr_accessible` whitelists. Instead, configure Strong Parameters.
572
+ * Provide a `bin/setup` script.
573
+ * Force RSpec's `expect` syntax.
574
+ * Remove remaining references to Cucumber, complete RSpec + Capybara conversion.
575
+ * Improve Foreman/`.env`/`Procfile` interactions.
576
+
577
+ 1.1.5 (October 22, 2012)
578
+
579
+ * Ignore `.env`.
580
+ * Link to Thughtbot/guides in generated README.
581
+ * Remove Cucumber in favor of RSpec + Capybara.
582
+ * Deliver emails in staging environment to an overriden email or set of emails.
583
+ * Encode database as UTF8.
584
+ * Bundle with binstubs using 37signals' directory convention.
585
+ * Configure time formats using localization.
586
+ * Add Ruby version to Gemfile.
587
+ * Add fast-failing spec that tests validity of factories.
588
+ * Use SimpleCov for C0 coverage.
589
+ * Configure RSpec with `--profile` flag to find slow-running specs.
590
+
591
+ 1.1.4 (September 4, 2012)
592
+
593
+ * Always store UTC in the DB.
594
+ * Use Rails 3.2.8.
595
+
596
+ 1.1.3 (August 7, 2012)
597
+
598
+ * Fix broken Gemfile additions where capybara stole cucumber's `require: false`
599
+
600
+ 1.1.2 (August 6, 2012)
601
+
602
+ * Fix broken rake.
603
+ * Use Heroku-compliant asset pipeline settings.
604
+
605
+ 1.1.1 (August 3, 2012)
606
+
607
+ * Fix broken newline interpolation
608
+
609
+ 1.1.0 (August 3, 2012)
610
+
611
+ * Add --github option.
612
+ * Add --webkit option.
613
+ * Remove cruft when generating controllers.
614
+ * Add Spork and Guard.
615
+
616
+ 1.0.1 (August 2, 2012)
617
+
618
+ * Fix broken install on Ruby 1.8.
619
+ * Remove db/schema.rb from .gitignore.
620
+ * Remove Factory Girl step definitions.
621
+
622
+ 1.0.0 (June 29, 2012)
623
+
624
+ * Ignore `bin/`, `.rake_tasks`, `.bundle/`, and `.gem/`.
625
+ * Create a root route only with `--clearance`.
626
+ * Do not autocommit after generate.
627
+ * Style static error pages.
628
+ * Cucumber requires everything under `features/`, regardless of pwd.
629
+ * Added gems:
630
+ * `foreman`
631
+ * `therubyracer`
632
+ * Removed gems:
633
+ * `copycopter_client`
634
+ * `heroku`
635
+ * `ruby-debug`
636
+ * `sass`
637
+ * `sprockets-redirect`
638
+ * `email_spec`