cookstyle 7.15.2 → 7.17.0

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: dfc2c66f2febd5fbd7ee14e3fe798ae10f1dc8b7fa3df2a3ebfd068a024f845f
4
- data.tar.gz: 9f6bef8fb1d57f40fd9a94900d5b0e4a95c98682124b79f7de85e83af244899c
3
+ metadata.gz: 0c717dffb3528a52a96f90cdfc26f3230a0b621314b1ede81ee2bc907f6e6afa
4
+ data.tar.gz: 6ffb9d37305d351d6c0512dd070516ebb8d741ba178358cdf38c05ae4c470d4f
5
5
  SHA512:
6
- metadata.gz: 78197b457795eff5976c4ed4bd6b8458be306b900142799027f4a5848bd0f722d5c9b3b3431349c4a2c48783038289b06a983dba383c13c05bc0391c4ab6c1aa
7
- data.tar.gz: 6af82797747ea7eebc69a5f21e8a1d79858534ec318b620ee324bedb9a18530b5e897f087b58bfaa9d7d4e240041c3aa497cb42326725f827d62fd551f092dc4
6
+ metadata.gz: 2eb06bb46004aa146557e2aae9b95065ad238820b5e832c2bad1fe7c13ce652d43adfd3a18073051b4a575ddfd54b719cd2c5af93e1557fac6e8b987d5801392
7
+ data.tar.gz: ccf7386507af4bee4e860a40ecc82e0e5a916de30eb3cc2d3e1a4550736f541018546310779c347b0e18db6c9afca6294840d3ed9ee86ab19070d0bf423dbf2e
data/config/cookstyle.yml CHANGED
@@ -481,6 +481,14 @@ Chef/Correctness/OctalModeAsString:
481
481
  - '**/metadata.rb'
482
482
  - '**/Berksfile'
483
483
 
484
+ Chef/Correctness/MetadataMalformedDepends:
485
+ Description: Don't represent file modes as strings containing octal values. Use standard base 10 file modes instead.
486
+ StyleGuide: 'chef_correctness_metadatamalformeddepends'
487
+ Enabled: true
488
+ VersionAdded: '7.16'
489
+ Include:
490
+ - '**/metadata.rb'
491
+
484
492
  ###############################
485
493
  # Chef/Sharing: Issues that prevent sharing code with other teams or with the Chef community in general
486
494
  ###############################
@@ -1206,6 +1214,7 @@ Chef/Deprecations/ResourceWithoutUnifiedTrue:
1206
1214
  Include:
1207
1215
  - '**/resources/*.rb'
1208
1216
  Exclude:
1217
+ - '**/resources/_*.rb'
1209
1218
  - '**/spec/**/*.rb'
1210
1219
 
1211
1220
  Chef/Deprecations/PolicyfileCommunitySource:
@@ -2449,6 +2458,8 @@ Lint/HandleExceptions:
2449
2458
  Enabled: true
2450
2459
  Lint/ImplicitStringConcatenation:
2451
2460
  Enabled: true
2461
+ Exclude:
2462
+ - '**/metadata.rb' # this prevents conflicts with Chef/Correctness/MetadataMalformedDepends
2452
2463
  Lint/IneffectiveAccessModifier:
2453
2464
  Enabled: true
2454
2465
  Lint/LiteralAsCondition:
@@ -219,6 +219,8 @@ Lint/AmbiguousBlockAssociation:
219
219
  Enabled: false
220
220
  Lint/AmbiguousOperator:
221
221
  Enabled: false
222
+ Lint/AmbiguousRange:
223
+ Enabled: false
222
224
  Lint/AmbiguousRegexpLiteral:
223
225
  Enabled: false
224
226
  Lint/AssignmentInCondition:
@@ -705,6 +707,8 @@ Style/RedundantFileExtensionInRequire:
705
707
  Enabled: false
706
708
  Style/RedundantSelfAssignment:
707
709
  Enabled: false
710
+ Style/RedundantSelfAssignmentBranch:
711
+ Enabled: false
708
712
  Style/SoleNestedConditional:
709
713
  Enabled: false
710
714
  Style/StaticClass:
data/config/upstream.yml CHANGED
@@ -1434,6 +1434,13 @@ Lint/AmbiguousOperator:
1434
1434
  VersionAdded: '0.17'
1435
1435
  VersionChanged: '0.83'
1436
1436
 
1437
+ Lint/AmbiguousRange:
1438
+ Description: Checks for ranges with ambiguous boundaries.
1439
+ Enabled: pending
1440
+ VersionAdded: '1.19'
1441
+ SafeAutoCorrect: false
1442
+ RequireParenthesesForMethodChains: false
1443
+
1437
1444
  Lint/AmbiguousRegexpLiteral:
1438
1445
  Description: >-
1439
1446
  Checks for ambiguous regexp literals in the first argument of
@@ -1824,7 +1831,6 @@ Lint/MultipleComparison:
1824
1831
  Enabled: true
1825
1832
  VersionAdded: '0.47'
1826
1833
  VersionChanged: '1.1'
1827
- AllowMethodComparison: true
1828
1834
 
1829
1835
  Lint/NestedMethodDefinition:
1830
1836
  Description: 'Do not use nested method definitions.'
@@ -2557,6 +2563,7 @@ Naming/InclusiveLanguage:
2557
2563
  - denylist
2558
2564
  - block
2559
2565
  slave:
2566
+ WholeWord: true
2560
2567
  Suggestions: ['replica', 'secondary', 'follower']
2561
2568
 
2562
2569
  Naming/MemoizedInstanceVariableName:
@@ -3155,8 +3162,9 @@ Style/CommentAnnotation:
3155
3162
  Style/CommentedKeyword:
3156
3163
  Description: 'Do not place comments on the same line as certain keywords.'
3157
3164
  Enabled: true
3165
+ SafeAutoCorrect: false
3158
3166
  VersionAdded: '0.51'
3159
- VersionChanged: '1.7'
3167
+ VersionChanged: '1.19'
3160
3168
 
3161
3169
  Style/ConditionalAssignment:
3162
3170
  Description: >-
@@ -3603,8 +3611,9 @@ Style/IdenticalConditionalBranches:
3603
3611
  line at the end of each branch, which can validly be moved
3604
3612
  out of the conditional.
3605
3613
  Enabled: true
3614
+ SafeAutoCorrect: false
3606
3615
  VersionAdded: '0.36'
3607
- VersionChanged: '1.16'
3616
+ VersionChanged: '1.19'
3608
3617
 
3609
3618
  Style/IfInsideElse:
3610
3619
  Description: 'Finds if nodes inside else, which can be converted to elsif.'
@@ -3929,6 +3938,7 @@ Style/MultipleComparison:
3929
3938
  Enabled: true
3930
3939
  VersionAdded: '0.49'
3931
3940
  VersionChanged: '1.1'
3941
+ AllowMethodComparison: true
3932
3942
 
3933
3943
  Style/MutableConstant:
3934
3944
  Description: 'Do not assign mutable objects to constants.'
@@ -4152,6 +4162,7 @@ Style/OptionHash:
4152
4162
  - args
4153
4163
  - params
4154
4164
  - parameters
4165
+ Allowlist: []
4155
4166
 
4156
4167
  Style/OptionalArguments:
4157
4168
  Description: >-
@@ -4404,6 +4415,11 @@ Style/RedundantSelfAssignment:
4404
4415
  Safe: false
4405
4416
  VersionAdded: '0.90'
4406
4417
 
4418
+ Style/RedundantSelfAssignmentBranch:
4419
+ Description: 'Checks for places where conditional branch makes redundant self-assignment.'
4420
+ Enabled: pending
4421
+ VersionAdded: '1.19'
4422
+
4407
4423
  Style/RedundantSort:
4408
4424
  Description: >-
4409
4425
  Use `min` instead of `sort.first`,
@@ -4575,6 +4591,7 @@ Style/SpecialGlobalVars:
4575
4591
  VersionAdded: '0.13'
4576
4592
  VersionChanged: '0.36'
4577
4593
  SafeAutoCorrect: false
4594
+ RequireEnglish: true
4578
4595
  EnforcedStyle: use_english_names
4579
4596
  SupportedStyles:
4580
4597
  - use_perl_names
@@ -4895,7 +4912,7 @@ Style/VariableInterpolation:
4895
4912
 
4896
4913
  Style/WhenThen:
4897
4914
  Description: 'Use when x then ... for one-line cases.'
4898
- StyleGuide: '#one-line-cases'
4915
+ StyleGuide: '#no-when-semicolons'
4899
4916
  Enabled: true
4900
4917
  VersionAdded: '0.9'
4901
4918
 
@@ -4919,7 +4936,7 @@ Style/WordArray:
4919
4936
  StyleGuide: '#percent-w'
4920
4937
  Enabled: true
4921
4938
  VersionAdded: '0.9'
4922
- VersionChanged: '0.36'
4939
+ VersionChanged: '1.19'
4923
4940
  EnforcedStyle: percent
4924
4941
  SupportedStyles:
4925
4942
  # percent style: %w(word1 word2)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Cookstyle
3
- VERSION = "7.15.2" # rubocop: disable Style/StringLiterals
4
- RUBOCOP_VERSION = '1.18.4'
3
+ VERSION = "7.17.0" # rubocop: disable Style/StringLiterals
4
+ RUBOCOP_VERSION = '1.19.0'
5
5
  end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2021, 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
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Correctness
22
+ # metadata.rb cookbook dependencies and version constraints should be comma separated
23
+ #
24
+ # @example
25
+ #
26
+ # #### incorrect
27
+ # depends 'some_awesome_cookbook' '= 4.5.5'
28
+ # depends 'some_other_cool_cookbook' '< 8.0'
29
+ #
30
+ # #### correct
31
+ # depends 'some_awesome_cookbook', '= 4.5.5'
32
+ # depends 'some_other_cool_cookbook', '< 8.0'
33
+ #
34
+ class MetadataMalformedDepends < Base
35
+ extend RuboCop::Cop::AutoCorrector
36
+
37
+ RESTRICT_ON_SEND = [:depends].freeze
38
+ MSG = 'metadata.rb cookbook dependencies and version constraints should be comma separated'
39
+
40
+ def_node_matcher :depends_without_comma?, <<-PATTERN
41
+ (send nil? :depends
42
+ (dstr
43
+ $(str _ )
44
+ $(str _ )))
45
+ PATTERN
46
+
47
+ def on_send(node)
48
+ depends_without_comma?(node) do |cb, ver|
49
+ add_offense(node, message: MSG, severity: :refactor) do |corrector|
50
+ corrector.replace(node, "depends '#{cb.value}', '#{ver.value}'")
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright:: 2019, Chef Software Inc.
3
+ # Copyright:: 2019-2021, Chef Software Inc.
4
4
  # Author:: Tim Smith (<tsmith@chef.io>)
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,6 +27,7 @@ module RuboCop
27
27
  # name 'foo'
28
28
  #
29
29
  class MetadataMissingName < Base
30
+ extend AutoCorrector
30
31
  include RangeHelp
31
32
 
32
33
  MSG = 'metadata.rb needs to include the name method or it will fail on Chef Infra Client 12 and later.'
@@ -37,11 +38,10 @@ module RuboCop
37
38
  # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
38
39
  return if cb_name?(processed_source.ast)
39
40
  range = source_range(processed_source.buffer, 1, 0)
40
- add_offense(range, message: MSG, severity: :refactor) do |_corrector|
41
+ add_offense(range, message: MSG, severity: :refactor) do |corrector|
41
42
  path = processed_source.path
42
43
  cb_name = File.basename(File.dirname(path))
43
- metadata = IO.read(path)
44
- IO.write(path, "name '#{cb_name}'\n" + metadata)
44
+ corrector.insert_before(processed_source.ast, "name '#{cb_name}'\n")
45
45
  end
46
46
  end
47
47
  end
@@ -54,6 +54,9 @@ module RuboCop
54
54
  def_node_search :provides, '(send nil? :provides ...)'
55
55
 
56
56
  def on_new_investigation
57
+ # gracefully fail if the resource is empty
58
+ return if processed_source.ast.nil?
59
+
57
60
  # Using range similar to RuboCop::Cop::Naming::Filename (file_name.rb)
58
61
  return if unified_mode?(processed_source.ast)
59
62
  range = source_range(processed_source.buffer, 1, 0)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cookstyle
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.15.2
4
+ version: 7.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thom May
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-07-24 00:00:00.000000000 Z
12
+ date: 2021-08-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubocop
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 1.18.4
20
+ version: 1.19.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 1.18.4
27
+ version: 1.19.0
28
28
  description:
29
29
  email:
30
30
  - thom@chef.io
@@ -69,6 +69,7 @@ files:
69
69
  - lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb
70
70
  - lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb
71
71
  - lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb
72
+ - lib/rubocop/cop/chef/correctness/metadata_malformed_version.rb
72
73
  - lib/rubocop/cop/chef/correctness/metadata_missing_name.rb
73
74
  - lib/rubocop/cop/chef/correctness/node_normal.rb
74
75
  - lib/rubocop/cop/chef/correctness/node_normal_unless.rb