gitlab-styles 10.1.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0cd204f5572b14a03cd4f6faec35d9973f07dcab0579cf17ebb5fc10d56ac6b0
4
- data.tar.gz: 7a126190155bc1b39eea832c88e4636306f0fafb09f4b6c2c12c9fb275032a8c
3
+ metadata.gz: aeba900b1e2b7dc4f6a82fa6defd2daaf2b4c6c87101e1d4fd8b2099e1c00aff
4
+ data.tar.gz: 02c28507a2a0ed18e555b9d2e44fde520e41de6cccd0e7b77a36b9452b651531
5
5
  SHA512:
6
- metadata.gz: ef80fd1223c28800de324bb2e71bc1c4e381137ddf7e4a4605e7d1e6e301cca3fc5cee69146a80fe23213a77c8c459d7037e305372242702d4cc8c9bb2b08c0b
7
- data.tar.gz: 4f60365ef4232d584eb8ec18f99f8ac5537bd4bf933777d5125c4fb2f71423e7c487dd61f18e9e4e40738c4d02949d9291d7fda7a66fa88442bcdeb8854621c0
6
+ metadata.gz: 1ba653a6135f6cd2cb62268e6ee7df569827c3e6958763acb0d8b1d263192fbcf5634168266c60c13df05cd8635e9ca65560965a19ad2fb2a1816a6982cfefb6
7
+ data.tar.gz: 5da95736858e333062c060a33069a248e4b15824fd0d6c759a2c223e3c772a164534c9c2741760dd17d65eee67f98e1b0909d2f4199d96081e16de91967b8f69
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-styles (10.1.0)
5
- rubocop (~> 1.50.2)
4
+ gitlab-styles (11.0.0)
5
+ rubocop (~> 1.57.1)
6
6
  rubocop-graphql (~> 0.18)
7
7
  rubocop-performance (~> 1.15)
8
8
  rubocop-rails (~> 2.17)
@@ -16,9 +16,10 @@ GEM
16
16
  i18n (>= 1.6, < 2)
17
17
  minitest (>= 5.1)
18
18
  tzinfo (~> 2.0)
19
- addressable (2.8.4)
19
+ addressable (2.8.5)
20
20
  public_suffix (>= 2.0.2, < 6.0)
21
21
  ast (2.4.2)
22
+ base64 (0.1.1)
22
23
  binding_of_caller (1.0.0)
23
24
  debug_inspector (>= 0.0.1)
24
25
  byebug (11.1.3)
@@ -32,18 +33,18 @@ GEM
32
33
  concurrent-ruby (1.2.2)
33
34
  cork (0.3.0)
34
35
  colored2 (~> 3.1)
35
- danger (9.3.0)
36
+ danger (9.3.2)
36
37
  claide (~> 1.0)
37
38
  claide-plugins (>= 0.9.2)
38
39
  colored2 (~> 3.1)
39
40
  cork (~> 0.1)
40
41
  faraday (>= 0.9.0, < 3.0)
41
42
  faraday-http-cache (~> 2.0)
42
- git (~> 1.13.0)
43
+ git (~> 1.13)
43
44
  kramdown (~> 2.3)
44
45
  kramdown-parser-gfm (~> 1.0)
45
46
  no_proxy_fix
46
- octokit (~> 5.0)
47
+ octokit (~> 6.0)
47
48
  terminal-table (>= 1, < 4)
48
49
  danger-gitlab (8.0.0)
49
50
  danger
@@ -76,16 +77,16 @@ GEM
76
77
  faraday-patron (1.0.0)
77
78
  faraday-rack (1.0.0)
78
79
  faraday-retry (1.0.3)
79
- git (1.13.2)
80
+ git (1.18.0)
80
81
  addressable (~> 2.8)
81
82
  rchardet (~> 1.8)
82
83
  gitlab (4.19.0)
83
84
  httparty (~> 0.20)
84
85
  terminal-table (>= 1.5.1)
85
- gitlab-dangerfiles (3.6.7)
86
- danger (>= 8.4.5)
86
+ gitlab-dangerfiles (4.6.0)
87
+ danger (>= 9.3.0)
87
88
  danger-gitlab (>= 8.0.0)
88
- rake
89
+ rake (~> 13.0)
89
90
  httparty (0.21.0)
90
91
  mini_mime (>= 1.0.0)
91
92
  multi_xml (>= 0.5.2)
@@ -96,21 +97,23 @@ GEM
96
97
  rexml
97
98
  kramdown-parser-gfm (1.1.0)
98
99
  kramdown (~> 2.0)
100
+ language_server-protocol (3.17.0.3)
99
101
  lefthook (1.3.13)
100
102
  method_source (1.0.0)
101
- mini_mime (1.1.2)
103
+ mini_mime (1.1.5)
102
104
  minitest (5.18.0)
103
105
  multi_xml (0.6.0)
104
106
  multipart-post (2.3.0)
105
107
  nap (1.1.0)
106
108
  no_proxy_fix (0.1.2)
107
- octokit (5.6.1)
109
+ octokit (6.1.1)
108
110
  faraday (>= 1, < 3)
109
111
  sawyer (~> 0.9)
110
112
  open4 (1.3.4)
111
113
  parallel (1.23.0)
112
- parser (3.2.2.1)
114
+ parser (3.2.2.4)
113
115
  ast (~> 2.4.1)
116
+ racc
114
117
  proc_to_ast (0.1.0)
115
118
  coderay
116
119
  parser
@@ -121,13 +124,14 @@ GEM
121
124
  pry-byebug (3.10.1)
122
125
  byebug (~> 11.0)
123
126
  pry (>= 0.13, < 0.15)
124
- public_suffix (5.0.1)
127
+ public_suffix (5.0.3)
128
+ racc (1.7.1)
125
129
  rack (3.0.7)
126
130
  rainbow (3.1.1)
127
131
  rake (13.0.6)
128
132
  rchardet (1.8.0)
129
- regexp_parser (2.8.0)
130
- rexml (3.2.5)
133
+ regexp_parser (2.8.1)
134
+ rexml (3.2.6)
131
135
  rspec (3.12.0)
132
136
  rspec-core (~> 3.12.0)
133
137
  rspec-expectations (~> 3.12.0)
@@ -149,25 +153,27 @@ GEM
149
153
  binding_of_caller
150
154
  rspec-parameterized-core (< 2)
151
155
  rspec-support (3.12.0)
152
- rubocop (1.50.2)
156
+ rubocop (1.57.1)
157
+ base64 (~> 0.1.1)
153
158
  json (~> 2.3)
159
+ language_server-protocol (>= 3.17.0)
154
160
  parallel (~> 1.10)
155
- parser (>= 3.2.0.0)
161
+ parser (>= 3.2.2.4)
156
162
  rainbow (>= 2.2.2, < 4.0)
157
163
  regexp_parser (>= 1.8, < 3.0)
158
164
  rexml (>= 3.2.5, < 4.0)
159
- rubocop-ast (>= 1.28.0, < 2.0)
165
+ rubocop-ast (>= 1.28.1, < 2.0)
160
166
  ruby-progressbar (~> 1.7)
161
167
  unicode-display_width (>= 2.4.0, < 3.0)
162
- rubocop-ast (1.28.1)
168
+ rubocop-ast (1.29.0)
163
169
  parser (>= 3.2.1.0)
164
- rubocop-capybara (2.18.0)
170
+ rubocop-capybara (2.19.0)
165
171
  rubocop (~> 1.41)
166
- rubocop-factory_bot (2.23.0)
172
+ rubocop-factory_bot (2.24.0)
167
173
  rubocop (~> 1.33)
168
174
  rubocop-graphql (0.19.0)
169
175
  rubocop (>= 0.87, < 2)
170
- rubocop-performance (1.17.1)
176
+ rubocop-performance (1.19.1)
171
177
  rubocop (>= 1.7.0, < 2.0)
172
178
  rubocop-ast (>= 0.4.0)
173
179
  rubocop-rails (2.19.1)
@@ -176,7 +182,7 @@ GEM
176
182
  rubocop (>= 1.33.0, < 2.0)
177
183
  rubocop-rake (0.6.0)
178
184
  rubocop (~> 1.0)
179
- rubocop-rspec (2.22.0)
185
+ rubocop-rspec (2.24.1)
180
186
  rubocop (~> 1.33)
181
187
  rubocop-capybara (~> 2.17)
182
188
  rubocop-factory_bot (~> 2.22)
@@ -200,7 +206,7 @@ GEM
200
206
  faraday (~> 1.0)
201
207
  tzinfo (2.0.6)
202
208
  concurrent-ruby (~> 1.0)
203
- unicode-display_width (2.4.2)
209
+ unicode-display_width (2.5.0)
204
210
  unparser (0.6.7)
205
211
  diff-lcs (~> 1.3)
206
212
  parser (>= 3.2.0)
@@ -210,7 +216,7 @@ PLATFORMS
210
216
 
211
217
  DEPENDENCIES
212
218
  bundler (~> 2.1)
213
- gitlab-dangerfiles (~> 3.6.7)
219
+ gitlab-dangerfiles (~> 4.6.0)
214
220
  gitlab-styles!
215
221
  lefthook (~> 1.3.13)
216
222
  pry-byebug (~> 3.10)
data/README.md CHANGED
@@ -91,7 +91,8 @@ To release a new version:
91
91
  1. Create a Merge Request.
92
92
  1. Use Merge Request template [Release.md](https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/blob/master/.gitlab/merge_request_templates/Release.md).
93
93
  1. Follow the instructions.
94
- 1. After the Merge Request has been merged, a new gem version is [published automatically](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml)
94
+ 1. After the Merge Request has been merged, a new gem version is [published automatically](https://gitlab.com/gitlab-org/quality/pipeline-common/-/blob/master/ci/gem-release.yml).
95
+ 1. Once the new gem version is visible on [RubyGems.org](https://rubygems.org/gems/gitlab-styles), it is recommended to update [GitLab's `Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/Gemfile) to bump the `gitlab-styles` Ruby gem to the new version also.
95
96
 
96
97
  See [!123](https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles/-/merge_requests/123) as an example.
97
98
 
@@ -22,14 +22,14 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ['lib']
24
24
 
25
- spec.add_dependency 'rubocop', '~> 1.50.2'
25
+ spec.add_dependency 'rubocop', '~> 1.57.1'
26
26
  spec.add_dependency 'rubocop-graphql', '~> 0.18'
27
27
  spec.add_dependency 'rubocop-performance', '~> 1.15'
28
28
  spec.add_dependency 'rubocop-rails', '~> 2.17'
29
29
  spec.add_dependency 'rubocop-rspec', '~> 2.22'
30
30
 
31
31
  spec.add_development_dependency 'bundler', '~> 2.1'
32
- spec.add_development_dependency 'gitlab-dangerfiles', '~> 3.6.7'
32
+ spec.add_development_dependency 'gitlab-dangerfiles', '~> 4.6.0'
33
33
  spec.add_development_dependency 'lefthook', '~> 1.3.13'
34
34
  spec.add_development_dependency 'pry-byebug', '~> 3.10'
35
35
  spec.add_development_dependency 'rake', '~> 13.0'
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module Styles
5
- VERSION = '10.1.0'
5
+ VERSION = '11.0.0'
6
6
  end
7
7
  end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rubocop-rspec'
4
+ require_relative 'base'
5
+
6
+ module Rubocop
7
+ module Cop
8
+ module RSpec
9
+ # Checks whether `specify` is used with `is_expected` and suggests the
10
+ # use of `it`.
11
+ #
12
+ # @example
13
+ #
14
+ # # bad
15
+ # specify { is_expected.to eq(true) }
16
+ #
17
+ # # good
18
+ # it { is_expected.to eq(true) }
19
+ #
20
+ class SpecifyExpected < Base
21
+ extend RuboCop::Cop::AutoCorrector
22
+
23
+ MSG = 'Prefer using `it` when used with `is_expected`.'
24
+
25
+ # @!method specify_with_expected?(node)
26
+ def_node_matcher :specify_with_expected?, <<~PATTERN
27
+ (block
28
+ (send nil? :specify ...)
29
+ _args
30
+ (send
31
+ (send nil? :is_expected)
32
+ ...
33
+ )
34
+ )
35
+ PATTERN
36
+
37
+ RESTRICT_ON_SEND = %i[specify].freeze
38
+
39
+ def on_send(node)
40
+ return unless specify_with_expected?(node.parent)
41
+
42
+ add_offense(node) do |corrector|
43
+ corrector.replace(node, 'it')
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
data/rubocop-gemspec.yml CHANGED
@@ -1,12 +1,23 @@
1
1
  ---
2
+ # Checks that deprecated attributes are not set in a gemspec file. Removing
3
+ # deprecated attributes allows the user to receive smaller packed gems.
4
+ Gemspec/DeprecatedAttributeAssignment:
5
+ Enabled: true
6
+
7
+ # Enforce that development dependencies for a gem are specified in Gemfile,
8
+ # rather than in the gemspec using add_development_dependency
9
+ # Reason: Each project may decide to use a different strategy.
10
+ Gemspec/DevelopmentDependencies:
11
+ Enabled: false
12
+
2
13
  # Dependencies in the gemspec should be alphabetically sorted
3
14
  # Configuration parameters: Include, TreatCommentsAsGroupSeparators.
4
15
  Gemspec/OrderedDependencies:
5
16
  Include:
6
17
  - '**/*.gemspec'
7
18
 
8
- # Enforce that development dependencies for a gem are specified in Gemfile,
9
- # rather than in the gemspec using add_development_dependency
10
- # Reason: Each project may decide to use a different strategy.
11
- Gemspec/DevelopmentDependencies:
19
+ # Requires a gemspec to have rubygems_mfa_required metadata set.
20
+ # Most gems are released via CI and MFA cannot be used with improved security.
21
+ # See https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage/-/merge_requests/313#note_1605402392
22
+ Gemspec/RequireMFA:
12
23
  Enabled: false
data/rubocop-rails.yml CHANGED
@@ -178,6 +178,11 @@ Rails/RenderInline:
178
178
  Rails/RenderPlainText:
179
179
  Enabled: true
180
180
 
181
+ # Checks for the usage of obsolete `require_dependency` method for Rails
182
+ # applications running in Zeitwerk mode.
183
+ Rails/RequireDependency:
184
+ Enabled: true
185
+
181
186
  # Checks the arguments of ActiveRecord scopes.
182
187
  Rails/ScopeArgs:
183
188
  Enabled: true
data/rubocop-rspec.yml CHANGED
@@ -83,6 +83,7 @@ RSpec/ExpectOutput:
83
83
  Enabled: true
84
84
 
85
85
  # Checks the file and folder naming of the spec file.
86
+ # Will be replaced with RSpec/SpecFilePathFormat and RSpec/SpecFilePathSuffix.
86
87
  RSpec/FilePath:
87
88
  Enabled: true
88
89
  IgnoreMethods: true
@@ -137,7 +138,7 @@ RSpec/MultipleExpectations:
137
138
 
138
139
  # Checks for explicitly referenced test subjects.
139
140
  RSpec/NamedSubject:
140
- Enabled: false
141
+ Enabled: true
141
142
 
142
143
  # Checks for nested example groups.
143
144
  RSpec/NestedGroups:
@@ -163,6 +164,17 @@ RSpec/SingleLineHook:
163
164
  - 'spec/factories/*'
164
165
  - 'spec/requests/api/v3/*'
165
166
 
167
+ # Checks the file and folder naming of the spec file.
168
+ # Will replace RSpec/FilePath.
169
+ RSpec/SpecFilePathFormat:
170
+ Enabled: false
171
+ IgnoreMethods: true
172
+
173
+ # Checks the file and folder naming of the spec file.
174
+ # Will replace RSpec/FilePath.
175
+ RSpec/SpecFilePathSuffix:
176
+ Enabled: false
177
+
166
178
  # Checks that message expectations do not have a configured response.
167
179
  # https://docs.rubocop.org/rubocop-rspec/1.44/cops_rspec.html#rspecstubbedmock
168
180
  RSpec/StubbedMock:
data/rubocop-style.yml CHANGED
@@ -52,10 +52,14 @@ Style/BisectedAttrAccessor:
52
52
  Style/BlockComments:
53
53
  Enabled: true
54
54
 
55
- # Avoid using {...} for multi-line blocks (multiline chaining is # always
56
- # ugly). Prefer {...} over do...end for single-line blocks.
55
+ # Avoid using {...} for multi-line blocks (multi-line chaining is always ugly).
56
+ # Prefer {...} over do...end for single-line blocks.
57
57
  Style/BlockDelimiters:
58
58
  Enabled: true
59
+ # Do flag `it {` in multi-line blocks. Off by default.
60
+ AllowedMethods:
61
+ - proc
62
+ - lambda
59
63
 
60
64
  # Checks for uses of the case equality operator(===).
61
65
  Style/CaseEquality:
@@ -127,11 +131,10 @@ Style/EndBlock:
127
131
  Style/EvenOdd:
128
132
  Enabled: true
129
133
 
130
- # Enforces the use of explicit block argument to avoid writing block literal that
131
- # just passes its arguments to another block.
132
- # https://docs.rubocop.org/rubocop/0.89/cops_style.html#styleexplicitblockargument
134
+ # Reason: Using `yield` is ~20% faster than `&block`.
135
+ # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/94090#note_1452639709
133
136
  Style/ExplicitBlockArgument:
134
- Enabled: true
137
+ Enabled: false
135
138
 
136
139
  # Enforces consistency when using exponential notation for numbers in the code
137
140
  Style/ExponentialNotation:
@@ -308,6 +311,11 @@ Style/NumberedParametersLimit:
308
311
  Style/NumericLiterals:
309
312
  Enabled: false
310
313
 
314
+
315
+ # Enforces the use Object#then instead of Object#yield_self.
316
+ Style/ObjectThen:
317
+ Enabled: true
318
+
311
319
  # Favor the ternary operator(?:) over if/then/else/end constructs.
312
320
  Style/OneLineConditional:
313
321
  Enabled: true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-styles
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.1.0
4
+ version: 11.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-29 00:00:00.000000000 Z
11
+ date: 2023-11-08 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.50.2
19
+ version: 1.57.1
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.50.2
26
+ version: 1.57.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop-graphql
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 3.6.7
103
+ version: 4.6.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 3.6.7
110
+ version: 4.6.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: lefthook
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -316,6 +316,7 @@ files:
316
316
  - lib/rubocop/cop/rspec/factory_bot/excessive_create_list.rb
317
317
  - lib/rubocop/cop/rspec/have_link_parameters.rb
318
318
  - lib/rubocop/cop/rspec/single_line_hook.rb
319
+ - lib/rubocop/cop/rspec/specify_expected.rb
319
320
  - lib/rubocop/cop/rspec/useless_dynamic_definition.rb
320
321
  - lib/rubocop/cop/rspec/verbose_include_metadata.rb
321
322
  - lib/rubocop/cop/style/hash_transformation.rb