From bfec223fca97813b1538be84457adf967eaec9c8 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Tue, 26 Nov 2019 16:22:59 +0000 Subject: [PATCH] Replace govuk-lint with rubocop-govuk and scss_lint-govuk The GOV.UK Lint gem is deprecated in favour of using Rubocop and scss_lint directly with a set of shared configs. --- .rubocop.yml | 6 +++++- .scss-lint.yml | 1 + Gemfile | 3 ++- Gemfile.lock | 16 +++++++++------- Rakefile | 16 ++++++++++++++++ lib/tasks/lint.rake | 11 ----------- 6 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 .scss-lint.yml delete mode 100644 lib/tasks/lint.rake diff --git a/.rubocop.yml b/.rubocop.yml index 0a4318e89..aee37a5b3 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,3 +1,7 @@ +inherit_gem: + rubocop-govuk: + - "config/default.yml" + Metrics/BlockLength: Exclude: - - 'test/**/*_test.rb' + - "test/**/*_test.rb" diff --git a/.scss-lint.yml b/.scss-lint.yml new file mode 100644 index 000000000..d85eb241e --- /dev/null +++ b/.scss-lint.yml @@ -0,0 +1 @@ +plugin_gems: ['scss_lint-govuk'] diff --git a/Gemfile b/Gemfile index 8e63d89fa..edfbe1b1b 100644 --- a/Gemfile +++ b/Gemfile @@ -21,9 +21,10 @@ gem "slimmer", "~> 13.2" gem "uglifier", ">= 1.3.0" group :development, :test do - gem "govuk-lint" gem "govuk_schemas", "~> 4.0" gem "jasmine-rails" + gem "rubocop-govuk", "~> 1" + gem "scss_lint-govuk", "~> 0.2" end group :development do diff --git a/Gemfile.lock b/Gemfile.lock index db8da7ac3..db6ba1d0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -100,11 +100,6 @@ GEM rest-client (~> 2.0) globalid (0.4.2) activesupport (>= 4.2.0) - govuk-lint (4.3.0) - rubocop (~> 0.76) - rubocop-rails (~> 2) - rubocop-rspec (~> 1.28) - scss_lint govuk_ab_testing (2.4.1) govuk_app_config (2.0.1) logstasher (>= 1.2.2, < 1.4.0) @@ -264,10 +259,14 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) + rubocop-govuk (1.0.0) + rubocop (~> 0.76) + rubocop-rails (~> 2) + rubocop-rspec (~> 1.28) rubocop-rails (2.3.2) rack (>= 1.1) rubocop (>= 0.72.0) - rubocop-rspec (1.36.0) + rubocop-rspec (1.37.0) rubocop (>= 0.68.1) ruby-progressbar (1.10.1) rubyzip (2.0.0) @@ -293,6 +292,8 @@ GEM tilt scss_lint (0.59.0) sass (~> 3.5, >= 3.5.5) + scss_lint-govuk (0.2.0) + scss_lint selenium-webdriver (3.142.6) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) @@ -364,7 +365,6 @@ DEPENDENCIES dalli faker gds-api-adapters (~> 61.0) - govuk-lint govuk_ab_testing (~> 2.4) govuk_app_config (~> 2.0) govuk_frontend_toolkit (~> 8.2.0) @@ -382,7 +382,9 @@ DEPENDENCIES rails-controller-testing (~> 1.0) rails-i18n (>= 4.0.4) rails_translation_manager (~> 0.1.0) + rubocop-govuk (~> 1) sass-rails (~> 5.0) + scss_lint-govuk (~> 0.2) slimmer (~> 13.2) uglifier (>= 1.3.0) webmock (~> 3.7.6) diff --git a/Rakefile b/Rakefile index ba6b733dd..661b46cde 100644 --- a/Rakefile +++ b/Rakefile @@ -4,3 +4,19 @@ require File.expand_path('../config/application', __FILE__) Rails.application.load_tasks + +unless Rails.env.production? + require "rubocop/rake_task" + require "scss_lint/rake_task" + + RuboCop::RakeTask.new(:rubocop) do |t| + t.patterns = %w(app config test Gemfile) + end + + SCSSLint::RakeTask.new do |t| + t.files = Dir.glob(["app/assets/stylesheets"]) + end + + task default: %i[spec rubocop scss_lint] + task lint: %i[rubocop scss_lint] +end diff --git a/lib/tasks/lint.rake b/lib/tasks/lint.rake deleted file mode 100644 index e5eda9fd3..000000000 --- a/lib/tasks/lint.rake +++ /dev/null @@ -1,11 +0,0 @@ -desc "run ruby and sass linters" -task :lint do - if ENV["JENKINS"] - sh "govuk-lint-ruby --diff --cached --format html --out rubocop-${GIT_COMMIT}.html --format clang Gemfile app test config" - else - sh "govuk-lint-ruby --diff --cached --format clang Gemfile app test config" - end - sh "govuk-lint-sass app" -end - -Rake::Task[:default].enhance [:lint]