From 4ec0b85d80a9be2bdf1168193a86a1ae041efbf8 Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Wed, 18 May 2022 15:23:32 -0400 Subject: [PATCH 1/4] Drop support for Ruby 2.5 and 2.6 --- .github/workflows/liquid.yml | 2 +- .rubocop.yml | 2 +- History.md | 3 +++ liquid.gemspec | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/liquid.yml b/.github/workflows/liquid.yml index 6ba69473..749eee0a 100644 --- a/.github/workflows/liquid.yml +++ b/.github/workflows/liquid.yml @@ -6,7 +6,7 @@ jobs: strategy: matrix: entry: - - { ruby: 2.5, allowed-failure: false } # minimum supported + - { ruby: 2.7, allowed-failure: false } # minimum supported - { ruby: 3.1, allowed-failure: false } # latest - { ruby: ruby-head, allowed-failure: true } name: test (${{ matrix.entry.ruby }}) diff --git a/.rubocop.yml b/.rubocop.yml index 927912ab..fec517c5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -10,7 +10,7 @@ Performance: Enabled: true AllCops: - TargetRubyVersion: 2.5 + TargetRubyVersion: 2.7 NewCops: disable Exclude: - 'vendor/bundle/**/*' diff --git a/History.md b/History.md index 7d619219..5cab7988 100644 --- a/History.md +++ b/History.md @@ -2,6 +2,9 @@ ## 5.4.0 (unreleased) +### Breaking Changes +* Require Ruby >= 2.7 (#1578) [Andy Waite] + ### Features * Allow `#` to be used as an inline comment tag (#1498) [CP Clermont] diff --git a/liquid.gemspec b/liquid.gemspec index bb668f59..68f3db57 100644 --- a/liquid.gemspec +++ b/liquid.gemspec @@ -17,7 +17,7 @@ Gem::Specification.new do |s| s.license = "MIT" # s.description = "A secure, non-evaling end user template engine with aesthetic markup." - s.required_ruby_version = ">= 2.5.0" + s.required_ruby_version = ">= 2.7.0" s.required_rubygems_version = ">= 1.3.7" s.metadata['allowed_push_host'] = 'https://rubygems.org' From e69f729f76affae34763660059f60a402fa669cb Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Wed, 18 May 2022 15:25:34 -0400 Subject: [PATCH 2/4] Use latest rubocop-shopify --- Gemfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index daff580c..22da6c55 100644 --- a/Gemfile +++ b/Gemfile @@ -18,8 +18,7 @@ group :benchmark, :test do end group :test do - gem 'rubocop', '~> 1.4', require: false - gem 'rubocop-shopify', '~> 1.0.7', require: false + gem 'rubocop-shopify', '~> 2.6', require: false gem 'rubocop-performance', require: false platform :mri, :truffleruby do From 102bac2e334b21e650cc8dd49a3ddc3b94c8880a Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Wed, 18 May 2022 15:25:59 -0400 Subject: [PATCH 3/4] Regenerate .rubocop_todo.yml --- .rubocop_todo.yml | 151 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 137 insertions(+), 14 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index a41c1a86..424b9b4d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,27 +1,74 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2020-12-11 18:53:41 UTC using RuboCop version 1.6.1. +# on 2022-05-18 19:25:47 UTC using RuboCop version 1.29.1. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new # versions of RuboCop, may require this file to be generated again. -# Offense count: 2 -# Cop supports --auto-correct. -# Configuration parameters: EnforcedStyle. -# SupportedStyles: runtime_error, standard_error -Lint/InheritException: +# Offense count: 1 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include. +# Include: **/*.gemspec +Gemspec/OrderedDependencies: Exclude: - - 'lib/liquid/interrupts.rb' + - 'liquid.gemspec' -# Offense count: 113 -# Cop supports --auto-correct. -# Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns. -# URISchemes: http, https -Layout/LineLength: - Max: 260 +# Offense count: 6 +# This cop supports safe auto-correction (--auto-correct). +Layout/ClosingHeredocIndentation: + Exclude: + - 'test/integration/tags/for_tag_test.rb' + +# Offense count: 34 +# This cop supports safe auto-correction (--auto-correct). +Layout/EmptyLineAfterGuardClause: + Exclude: + - 'lib/liquid/block.rb' + - 'lib/liquid/block_body.rb' + - 'lib/liquid/context.rb' + - 'lib/liquid/drop.rb' + - 'lib/liquid/lexer.rb' + - 'lib/liquid/parser.rb' + - 'lib/liquid/profiler/hooks.rb' + - 'lib/liquid/standardfilters.rb' + - 'lib/liquid/tags/for.rb' + - 'lib/liquid/tags/if.rb' + - 'lib/liquid/utils.rb' + - 'lib/liquid/variable.rb' + - 'lib/liquid/variable_lookup.rb' + - 'performance/shopify/money_filter.rb' + - 'performance/shopify/paginate.rb' # Offense count: 8 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: AllowAliasSyntax, AllowedMethods. +# AllowedMethods: alias_method, public, protected, private +Layout/EmptyLinesAroundAttributeAccessor: + Exclude: + - 'lib/liquid/template.rb' + - 'test/integration/filter_test.rb' + - 'test/integration/tags/include_tag_test.rb' + - 'test/unit/strainer_template_unit_test.rb' + +# Offense count: 17 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: aligned, indented +Layout/LineEndStringConcatenationIndentation: + Exclude: + - 'test/integration/tags/for_tag_test.rb' + - 'test/integration/tags/increment_tag_test.rb' + +# Offense count: 1 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyle, IndentationWidth. +# SupportedStyles: aligned, indented +Layout/MultilineOperationIndentation: + Exclude: + - 'lib/liquid/expression.rb' + +# Offense count: 9 Lint/MissingSuper: Exclude: - 'lib/liquid/forloop_drop.rb' @@ -33,7 +80,7 @@ Lint/MissingSuper: - 'test/integration/tags/for_tag_test.rb' - 'test/integration/tags/table_row_test.rb' -# Offense count: 43 +# Offense count: 44 Naming/ConstantName: Exclude: - 'lib/liquid.rb' @@ -51,7 +98,83 @@ Naming/ConstantName: - 'performance/shopify/paginate.rb' - 'test/integration/tags/include_tag_test.rb' +# Offense count: 9 +# Configuration parameters: CheckIdentifiers, CheckConstants, CheckVariables, CheckStrings, CheckSymbols, CheckComments, CheckFilepaths, FlaggedTerms. +Naming/InclusiveLanguage: + Exclude: + - 'lib/liquid/drop.rb' + - 'lib/liquid/parse_context.rb' + - 'test/integration/drop_test.rb' + - 'test/integration/tags/if_else_tag_test.rb' + # Offense count: 2 Style/ClassVars: Exclude: - 'lib/liquid/condition.rb' + +# Offense count: 3 +# This cop supports safe auto-correction (--auto-correct). +Style/ExplicitBlockArgument: + Exclude: + - 'test/integration/context_test.rb' + - 'test/integration/tag/disableable_test.rb' + - 'test/integration/tags/for_tag_test.rb' + +# Offense count: 2982 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiterals: + Enabled: false + +# Offense count: 20 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyle. +# SupportedStyles: single_quotes, double_quotes +Style/StringLiteralsInInterpolation: + Exclude: + - 'lib/liquid/condition.rb' + - 'lib/liquid/strainer_template.rb' + - 'lib/liquid/tag/disableable.rb' + - 'performance/shopify/shop_filter.rb' + - 'performance/shopify/tag_filter.rb' + +# Offense count: 6 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInArrayLiteral: + Exclude: + - 'example/server/example_servlet.rb' + - 'lib/liquid/condition.rb' + - 'test/integration/context_test.rb' + - 'test/integration/standard_filter_test.rb' + - 'test/unit/parse_tree_visitor_test.rb' + +# Offense count: 1 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyleForMultiline. +# SupportedStylesForMultiline: comma, consistent_comma, no_comma +Style/TrailingCommaInHashLiteral: + Exclude: + - 'lib/liquid/expression.rb' + +# Offense count: 19 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: EnforcedStyle, MinSize, WordRegex. +# SupportedStyles: percent, brackets +Style/WordArray: + Exclude: + - 'lib/liquid/tags/if.rb' + - 'liquid.gemspec' + - 'test/integration/assign_test.rb' + - 'test/integration/context_test.rb' + - 'test/integration/drop_test.rb' + - 'test/integration/standard_filter_test.rb' + +# Offense count: 117 +# This cop supports safe auto-correction (--auto-correct). +# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns. +# URISchemes: http, https +Layout/LineLength: + Max: 260 From 3bbb7aa7baba7602caa95292d809c3fbfe9d57c5 Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Thu, 19 May 2022 10:10:44 -0400 Subject: [PATCH 4/4] Reword Ruby breaking change notice --- History.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/History.md b/History.md index 5cab7988..8fad1a39 100644 --- a/History.md +++ b/History.md @@ -3,7 +3,7 @@ ## 5.4.0 (unreleased) ### Breaking Changes -* Require Ruby >= 2.7 (#1578) [Andy Waite] +* Drop support for end-of-life Ruby versions (2.5 and 2.6) (#1578) [Andy Waite] ### Features * Allow `#` to be used as an inline comment tag (#1498) [CP Clermont]