chefstyle 1.6.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d8cb295371355b2366f70ad030e7d6aa1d5f300f39c16f21198cc93b878898c
4
- data.tar.gz: 31b65eb4a0f60baf333369f8e6374029e57d03750db142afcc34e74b8c45b276
3
+ metadata.gz: cfaf550a90523d1a1e85918799f651126cd16bb603107f9b7a9937dca76ef09e
4
+ data.tar.gz: 24f53e6cbb1c4a98b7fe26a1df6daec6ecb7f91e42433743e0a2335abfadc186
5
5
  SHA512:
6
- metadata.gz: 736367eff801ef343b7f6bcd67b5896c9343913ac2de3620748a99814f1714d5b5db78ea4e8e743abe6447d5ca30dceb7dd813b79c7c8b45788ecf0bdbbe76c0
7
- data.tar.gz: 313c8f7ad2918ed7c839cb7dbe5e87e8810b3ac266c8ae2b7c4ffacb9efb6fdd820c04e1b55d552fbde0fb309053c3c82664b57fa8ecf3a42dc6bb67d1bf45cf
6
+ metadata.gz: 61a9ebc0f97446ca07997fc1c1ffebbbbb05b31d2e9f59fcad330fcbe356c78f324f1c616fe79cc2020abdf6133df009c9b6da350bcabf2840d11c51a19c8a02
7
+ data.tar.gz: 1a09934e30e114355c09e32314a9647fe065ace54acfb0ac38f9b680a15e7ef029585632eb3eaf9afb90982b655ff9a8d0c65b024f4e6c8932c853c79af08945
data/chefstyle.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = %q{RuboCop configuration for Chef's ruby projects}
13
13
  spec.homepage = "https://github.com/chef/chefstyle"
14
14
  spec.license = "Apache-2.0"
15
- spec.required_ruby_version = ">= 2.4"
15
+ spec.required_ruby_version = ">= 2.5"
16
16
 
17
17
  spec.files = %w{LICENSE chefstyle.gemspec} + Dir.glob("{bin,config,lib}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
18
18
  spec.executables = %w{chefstyle}
data/config/chefstyle.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.4
2
+ TargetRubyVersion: 2.5
3
3
  SuggestExtensions: false
4
4
 
5
5
  #
@@ -710,6 +710,16 @@ Chef/Ruby/GemspecRequireRubygems:
710
710
  Include:
711
711
  - '**/*.gemspec'
712
712
 
713
+ Chef/Ruby/GemspecLicense:
714
+ Description: 'All gemspec files should define their license.'
715
+ Enabled: true
716
+ VersionAdded: '1.7.0'
717
+ Include:
718
+ - '**/*.gemspec'
719
+ Exclude:
720
+ - '/**/spec/**/*'
721
+ - '/**/test/**/*'
722
+
713
723
  Chef/Ruby/RequireNetHttps:
714
724
  Description: net/https is deprecated and just includes net/http and openssl. We should include those directly instead
715
725
  Enabled: true
@@ -5,10 +5,14 @@ Bundler/DuplicatedGem:
5
5
  Enabled: false
6
6
  Bundler/GemComment:
7
7
  Enabled: false
8
+ Bundler/GemVersion:
9
+ Enabled: false
8
10
  Bundler/InsecureProtocolSource:
9
11
  Enabled: false
10
12
  Bundler/OrderedGems:
11
13
  Enabled: false
14
+ Gemspec/DateAssignment:
15
+ Enabled: false
12
16
  Gemspec/DuplicatedAssignment:
13
17
  Enabled: false
14
18
  Gemspec/OrderedDependencies:
@@ -145,8 +149,12 @@ Layout/MultilineOperationIndentation:
145
149
  Enabled: false
146
150
  Layout/ParameterAlignment:
147
151
  Enabled: false
152
+ Layout/RedundantLineBreak:
153
+ Enabled: false
148
154
  Layout/RescueEnsureAlignment:
149
155
  Enabled: false
156
+ Layout/SingleLineBlockChain:
157
+ Enabled: false
150
158
  Layout/SpaceAfterColon:
151
159
  Enabled: false
152
160
  Layout/SpaceAfterComma:
@@ -631,6 +639,8 @@ Style/GuardClause:
631
639
  Enabled: false
632
640
  Style/HashAsLastArrayItem:
633
641
  Enabled: false
642
+ Style/HashConversion:
643
+ Enabled: false
634
644
  Style/HashEachMethods:
635
645
  Enabled: false
636
646
  Style/HashExcept:
@@ -847,6 +857,8 @@ Style/StabbyLambdaParentheses:
847
857
  Enabled: false
848
858
  Style/StderrPuts:
849
859
  Enabled: false
860
+ Style/StringChars:
861
+ Enabled: false
850
862
  Style/StringConcatenation:
851
863
  Enabled: false
852
864
  Style/StringHashKeys:
@@ -893,6 +905,8 @@ Style/TrivialAccessors:
893
905
  Enabled: false
894
906
  Style/UnlessElse:
895
907
  Enabled: false
908
+ Style/UnlessLogicalOperators:
909
+ Enabled: false
896
910
  Style/UnpackFirst:
897
911
  Enabled: false
898
912
  Style/VariableInterpolation:
data/config/upstream.yml CHANGED
@@ -130,7 +130,7 @@ AllCops:
130
130
  # What MRI version of the Ruby interpreter is the inspected code intended to
131
131
  # run on? (If there is more than one, set this to the lowest version.)
132
132
  # If a value is specified for TargetRubyVersion then it is used. Acceptable
133
- # values are specificed as a float (i.e. 2.5); the teeny version of Ruby
133
+ # values are specificed as a float (i.e. 3.0); the teeny version of Ruby
134
134
  # should not be included. If the project specifies a Ruby version in the
135
135
  # .tool-versions or .ruby-version files, Gemfile or gems.rb file, RuboCop will
136
136
  # try to determine the desired version of Ruby by inspecting the
@@ -138,7 +138,7 @@ AllCops:
138
138
  # or gems.locked file. (Although the Ruby version is specified in the Gemfile
139
139
  # or gems.rb file, RuboCop reads the final value from the lock file.) If the
140
140
  # Ruby version is still unresolved, RuboCop will use the oldest officially
141
- # supported Ruby version (currently Ruby 2.4).
141
+ # supported Ruby version (currently Ruby 2.5).
142
142
  TargetRubyVersion: ~
143
143
  # Determines if a notification for extension libraries should be shown when
144
144
  # rubocop is run. Keys are the name of the extension, and values are an array
@@ -174,6 +174,20 @@ Bundler/GemComment:
174
174
  IgnoredGems: []
175
175
  OnlyFor: []
176
176
 
177
+ Bundler/GemVersion:
178
+ Description: 'Requires or forbids specifying gem versions.'
179
+ Enabled: false
180
+ VersionAdded: '1.14'
181
+ EnforcedStyle: 'required'
182
+ SupportedStyles:
183
+ - 'required'
184
+ - 'forbidden'
185
+ Include:
186
+ - '**/*.gemfile'
187
+ - '**/Gemfile'
188
+ - '**/gems.rb'
189
+ AllowedGems: []
190
+
177
191
  Bundler/InsecureProtocolSource:
178
192
  Description: >-
179
193
  The source `:gemcutter`, `:rubygems` and `:rubyforge` are deprecated
@@ -203,6 +217,13 @@ Bundler/OrderedGems:
203
217
 
204
218
  #################### Gemspec ###############################
205
219
 
220
+ Gemspec/DateAssignment:
221
+ Description: 'Checks that `date =` is not used in gemspec file, it is set automatically when the gem is packaged.'
222
+ Enabled: pending
223
+ VersionAdded: '1.10'
224
+ Include:
225
+ - '**/*.gemspec'
226
+
206
227
  Gemspec/DuplicatedAssignment:
207
228
  Description: 'An attribute assignment method calls should be listed only once in a gemspec.'
208
229
  Enabled: true
@@ -1094,11 +1115,24 @@ Layout/ParameterAlignment:
1094
1115
  # But it can be overridden by setting this parameter
1095
1116
  IndentationWidth: ~
1096
1117
 
1118
+ Layout/RedundantLineBreak:
1119
+ Description: >-
1120
+ Do not break up an expression into multiple lines when it fits
1121
+ on a single line.
1122
+ Enabled: false
1123
+ InspectBlocks: false
1124
+ VersionAdded: '1.13'
1125
+
1097
1126
  Layout/RescueEnsureAlignment:
1098
1127
  Description: 'Align rescues and ensures correctly.'
1099
1128
  Enabled: true
1100
1129
  VersionAdded: '0.49'
1101
1130
 
1131
+ Layout/SingleLineBlockChain:
1132
+ Description: 'Put method call on a separate line if chained to a single line block.'
1133
+ Enabled: false
1134
+ VersionAdded: '1.14'
1135
+
1102
1136
  Layout/SpaceAfterColon:
1103
1137
  Description: 'Use spaces after colons.'
1104
1138
  StyleGuide: '#spaces-operators'
@@ -1373,6 +1407,8 @@ Lint/AmbiguousBlockAssociation:
1373
1407
  StyleGuide: '#syntax'
1374
1408
  Enabled: true
1375
1409
  VersionAdded: '0.48'
1410
+ VersionChanged: '1.13'
1411
+ IgnoredMethods: []
1376
1412
 
1377
1413
  Lint/AmbiguousOperator:
1378
1414
  Description: >-
@@ -1446,23 +1482,31 @@ Lint/Debugger:
1446
1482
  Description: 'Check for debugger calls.'
1447
1483
  Enabled: true
1448
1484
  VersionAdded: '0.14'
1449
- VersionChanged: '0.49'
1450
- DebuggerReceivers:
1451
- - binding
1452
- - Kernel
1453
- - Pry
1485
+ VersionChanged: '1.10'
1486
+ DebuggerReceivers: [] # deprecated
1454
1487
  DebuggerMethods:
1455
- - debugger
1456
- - byebug
1457
- - remote_byebug
1458
- - pry
1459
- - remote_pry
1460
- - pry_remote
1461
- - console
1462
- - rescue
1463
- - save_and_open_page
1464
- - save_and_open_screenshot
1465
- - irb
1488
+ # Groups are available so that a specific group can be disabled in
1489
+ # a user's configuration, but are otherwise not significant.
1490
+ Kernel:
1491
+ - binding.irb
1492
+ Byebug:
1493
+ - byebug
1494
+ - remote_byebug
1495
+ - Kernel.byebug
1496
+ - Kernel.remote_byebug
1497
+ Capybara:
1498
+ - save_and_open_page
1499
+ - save_and_open_screenshot
1500
+ Pry:
1501
+ - binding.pry
1502
+ - binding.remote_pry
1503
+ - binding.pry_remote
1504
+ - Pry.rescue
1505
+ Rails:
1506
+ - debugger
1507
+ - Kernel.debugger
1508
+ WebConsole:
1509
+ - binding.console
1466
1510
 
1467
1511
  Lint/DeprecatedClassMethods:
1468
1512
  Description: 'Check for deprecated class method calls.'
@@ -2040,13 +2084,18 @@ Lint/SuppressedException:
2040
2084
  StyleGuide: '#dont-hide-exceptions'
2041
2085
  Enabled: true
2042
2086
  AllowComments: true
2087
+ AllowNil: true
2043
2088
  VersionAdded: '0.9'
2044
- VersionChanged: '0.81'
2089
+ VersionChanged: '1.12'
2045
2090
 
2046
2091
  Lint/SymbolConversion:
2047
2092
  Description: 'Checks for unnecessary symbol conversions.'
2048
2093
  Enabled: pending
2049
2094
  VersionAdded: '1.9'
2095
+ EnforcedStyle: strict
2096
+ SupportedStyles:
2097
+ - strict
2098
+ - consistent
2050
2099
 
2051
2100
  Lint/Syntax:
2052
2101
  Description: 'Checks for syntax errors.'
@@ -2474,6 +2523,7 @@ Naming/MemoizedInstanceVariableName:
2474
2523
  - disallowed
2475
2524
  - required
2476
2525
  - optional
2526
+ Safe: false
2477
2527
 
2478
2528
  Naming/MethodName:
2479
2529
  Description: 'Use the configured style when naming methods.'
@@ -3087,6 +3137,8 @@ Style/ConstantVisibility:
3087
3137
  visibility declarations.
3088
3138
  Enabled: false
3089
3139
  VersionAdded: '0.66'
3140
+ VersionChanged: '1.10'
3141
+ IgnoreModules: false
3090
3142
 
3091
3143
  # Checks that you have put a copyright in a comment before any code.
3092
3144
  #
@@ -3157,6 +3209,7 @@ Style/Documentation:
3157
3209
  Description: 'Document classes and non-namespace modules.'
3158
3210
  Enabled: true
3159
3211
  VersionAdded: '0.9'
3212
+ AllowedConstants: []
3160
3213
  Exclude:
3161
3214
  - 'spec/**/*'
3162
3215
  - 'test/**/*'
@@ -3425,6 +3478,13 @@ Style/HashAsLastArrayItem:
3425
3478
  - braces
3426
3479
  - no_braces
3427
3480
 
3481
+ Style/HashConversion:
3482
+ Description: 'Avoid Hash[] in favor of ary.to_h or literal hashes.'
3483
+ Enabled: pending
3484
+ VersionAdded: '1.10'
3485
+ VersionChanged: '1.11'
3486
+ AllowSplatArgument: true
3487
+
3428
3488
  Style/HashEachMethods:
3429
3489
  Description: 'Use Hash#each_key and Hash#each_value.'
3430
3490
  StyleGuide: '#hash-each'
@@ -3648,6 +3708,7 @@ Style/MethodCallWithArgsParentheses:
3648
3708
  AllowParenthesesInMultilineCall: false
3649
3709
  AllowParenthesesInChaining: false
3650
3710
  AllowParenthesesInCamelCaseMethod: false
3711
+ AllowParenthesesInStringInterpolation: false
3651
3712
  EnforcedStyle: require_parentheses
3652
3713
  SupportedStyles:
3653
3714
  - require_parentheses
@@ -4467,6 +4528,13 @@ Style/StderrPuts:
4467
4528
  Enabled: true
4468
4529
  VersionAdded: '0.51'
4469
4530
 
4531
+ Style/StringChars:
4532
+ Description: 'Checks for uses of `String#split` with empty string or regexp literal argument.'
4533
+ StyleGuide: '#string-chars'
4534
+ Enabled: pending
4535
+ Safe: false
4536
+ VersionAdded: '1.12'
4537
+
4470
4538
  Style/StringConcatenation:
4471
4539
  Description: 'Checks for places where string concatenation can be replaced with string interpolation.'
4472
4540
  StyleGuide: '#string-interpolation'
@@ -4564,6 +4632,7 @@ Style/SymbolProc:
4564
4632
  Safe: false
4565
4633
  VersionAdded: '0.26'
4566
4634
  VersionChanged: '1.5'
4635
+ AllowMethodsWithArguments: false
4567
4636
  # A list of method names to be ignored by the check.
4568
4637
  # The names should be fairly unique, otherwise you'll end up ignoring lots of code.
4569
4638
  IgnoredMethods:
@@ -4716,6 +4785,16 @@ Style/UnlessElse:
4716
4785
  Enabled: true
4717
4786
  VersionAdded: '0.9'
4718
4787
 
4788
+ Style/UnlessLogicalOperators:
4789
+ Description: >-
4790
+ Checks for use of logical operators in an unless condition.
4791
+ Enabled: false
4792
+ VersionAdded: '1.11'
4793
+ EnforcedStyle: forbid_mixed_logical_operators
4794
+ SupportedStyles:
4795
+ - forbid_mixed_logical_operators
4796
+ - forbid_logical_operators
4797
+
4719
4798
  Style/UnpackFirst:
4720
4799
  Description: >-
4721
4800
  Checks for accessing the first element of `String#unpack`
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Chefstyle
3
- VERSION = "1.6.2"
4
- RUBOCOP_VERSION = "1.9.1"
3
+ VERSION = "2.0.3"
4
+ RUBOCOP_VERSION = "1.14.0"
5
5
  end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: Chef Software, Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ module RuboCop
20
+ module Cop
21
+ module Chef
22
+ module Ruby
23
+ # All gemspec files should define their license.
24
+ #
25
+ # @example
26
+ #
27
+ # # good
28
+ # spec.license = "Apache-2.0"
29
+ #
30
+ class GemspecLicense < Base
31
+ include RangeHelp
32
+
33
+ MSG = "All gemspec files should define their license."
34
+
35
+ def_node_search :license, <<~PATTERN
36
+ (send _ {:license= :licenses=} _)
37
+ PATTERN
38
+
39
+ def_node_search :eval_method, <<~PATTERN
40
+ (send nil? {:eval :instance_eval} ... )
41
+ PATTERN
42
+
43
+ def on_new_investigation
44
+ # exit if we find a license statement or any eval since that usually happens
45
+ # when we have a windows platform gem that evals the main gemspec
46
+ return if license(processed_source.ast).first || eval_method(processed_source.ast).first
47
+
48
+ range = source_range(processed_source.buffer, 1, 0)
49
+ add_offense(range, message: MSG, severity: :warning)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chefstyle
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-01 00:00:00.000000000 Z
11
+ date: 2021-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.9.1
19
+ version: 1.14.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.9.1
26
+ version: 1.14.0
27
27
  description:
28
28
  email:
29
29
  - oss@chef.io
@@ -42,6 +42,7 @@ files:
42
42
  - lib/chefstyle.rb
43
43
  - lib/chefstyle/version.rb
44
44
  - lib/rubocop/chef.rb
45
+ - lib/rubocop/cop/chef/ruby/gemspec_license.rb
45
46
  - lib/rubocop/cop/chef/ruby/gemspec_require_rubygems.rb
46
47
  - lib/rubocop/cop/chef/ruby/legacy_powershell_out_methods.rb
47
48
  - lib/rubocop/cop/chef/ruby/require_net_https.rb
@@ -59,7 +60,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
60
  requirements:
60
61
  - - ">="
61
62
  - !ruby/object:Gem::Version
62
- version: '2.4'
63
+ version: '2.5'
63
64
  required_rubygems_version: !ruby/object:Gem::Requirement
64
65
  requirements:
65
66
  - - ">="