From 77aff6a4caee340285a3a5ff2fe6d5c4f6e2367f Mon Sep 17 00:00:00 2001 From: Steve Polito Date: Fri, 16 Aug 2024 09:39:49 -0400 Subject: [PATCH] README: Update instructions for generating a new app (#1223) Closes #1221 The [release of Rails 7.2.0][rails_7_2] introduced its [own linting mechanism][rails-lint]. Unfortunately, this creates a conflict with [our linting mechanism][suspenders-lint]. This is only relevant when running `rails new` with our [application template][]. In order to fix this, we simply require the caller pass `--skip_rubocop`. A future commit could explore re-introducing the system executable to account for our required options, but for now, this fixes the issue. [rails_7_2]: https://guides.rubyonrails.org/v7.2/7_2_release_notes.html [rails-lint]: https://guides.rubyonrails.org/v7.2/7_2_release_notes.html#add-omakase-rubocop-rules-by-default [suspenders-lint]: https://github.com/thoughtbot/suspenders/blob/main/FEATURES.md#linting [application template]: https://github.com/thoughtbot/suspenders/blob/main/lib/install/web.rb --- NEWS.md | 6 ++++++ README.md | 6 ++++++ lib/generators/suspenders/install/web_generator.rb | 3 ++- lib/install/web.rb | 3 ++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index fac29df6..572b5cf2 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +Unreleased + +* Require `--skip-rubocop` in favor of our [linting configuration][] + +[linting configuration]: https://github.com/thoughtbot/suspenders/blob/main/FEATURES.md#linting + 20240516.0 (May, 16, 2024) "Tailored" release diff --git a/README.md b/README.md index 3694b164..ddd03a4f 100644 --- a/README.md +++ b/README.md @@ -33,8 +33,11 @@ application with Suspenders. We skip the [default test framework][] in favor of [RSpec][], and [prefer PostgreSQL][] as our database. +We skip [RuboCop rules by default][] in favor of our [holistic linting rules][]. + ``` rails new app_name \ + --skip_rubocop \ --skip-test \ -d=postgresql \ -m=https://raw.githubusercontent.com/thoughtbot/suspenders/main/lib/install/web.rb @@ -46,6 +49,7 @@ Alternatively, if you're using our [dotfiles][], then you can just run `rails ne app_name`, or create your own [railsrc][] file with the following configuration: ``` +--skip_rubocop --skip-test --database=postgresql -m=https://raw.githubusercontent.com/thoughtbot/suspenders/main/lib/install/web.rb @@ -57,6 +61,8 @@ app_name`, or create your own [railsrc][] file with the following configuration: [prefer PostgreSQL]: https://github.com/thoughtbot/dotfiles/pull/728 [dotfiles]: https://github.com/thoughtbot/dotfiles [railsrc]: https://github.com/rails/rails/blob/7f7f9df8641e35a076fe26bd097f6a1b22cb4e2d/railties/lib/rails/generators/rails/app/USAGE#L5C1-L7 +[RuboCop rules by default]: https://guides.rubyonrails.org/v7.2/7_2_release_notes.html#add-omakase-rubocop-rules-by-default +[holistic linting rules]: https://github.com/thoughtbot/suspenders/blob/main/FEATURES.md#linting ### With Existing Rails Applications diff --git a/lib/generators/suspenders/install/web_generator.rb b/lib/generators/suspenders/install/web_generator.rb index 971a17b4..add19170 100644 --- a/lib/generators/suspenders/install/web_generator.rb +++ b/lib/generators/suspenders/install/web_generator.rb @@ -14,7 +14,8 @@ class WebGenerator < Rails::Generators::Base This generatator is intended to be invoked as part of an [application template][]. ``` - rails new suspenders_qa \ + rails new \ + --skip-rubocop \\ --skip-test \ -d=postgresql \ -m=https://raw.githubusercontent.com/thoughtbot/suspenders/main/lib/install/web.rb diff --git a/lib/install/web.rb b/lib/install/web.rb index ac73bcdb..e1639958 100644 --- a/lib/install/web.rb +++ b/lib/install/web.rb @@ -22,7 +22,7 @@ def apply_template! fail Rails::Generators::Error, message end - if options[:database] == "postgresql" && options[:skip_test] + if options[:database] == "postgresql" && options[:skip_test] && options[:skip_rubocop] after_bundle do gem_group :development, :test do gem "suspenders" @@ -42,6 +42,7 @@ def apply_template! === Please use the correct options === rails new \\ + --skip-rubocop \\ --skip-test \\ -d=postgresql \\ -m=https://raw.githubusercontent.com/thoughtbot/suspenders/main/lib/install/web.rb