rubocop-sorbet 0.6.11 → 0.7.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: 0a3b043348a2ad38724ebb70db4bb8db09a6a02d9c9bbc56a262e0de4b90d5eb
4
- data.tar.gz: 50e5a9d5e61b0e95343a8d4699f81910bff19f10387119ae97bfec688906c6d9
3
+ metadata.gz: 87c7e5f3cd38dc5528234c83895115c4f0fe10010c041c0c914f73cf92f289f4
4
+ data.tar.gz: f991837c8cce7938ae4f0043b2c10a98b9130bd01f0d2b95f62a967e03337fab
5
5
  SHA512:
6
- metadata.gz: e749a4ac82f0e9b76a5f3bb2e77bbefeec539a939b107b3dc59c1d20c83b4f4b4766a6792938a03cd8d7e8044ec58a53d8af4d346ec5177390993fb2ddcd181e
7
- data.tar.gz: 417259e5915b4836c8b90939d7922d34ab02e2d4d7955482d9fdb7dac58cb728114bd08e0437650b10687e64cdbfd75361ed586dd21cfb9de5bbacd1fc816db7
6
+ metadata.gz: 71581073a6caba33b050d643815d98fdeae36d17eedbbcab985b9b467c9ccde100f153c58970ac3fb06f03c7834170fab65276f499bcf5e398b8dfdcde0ae5f7
7
+ data.tar.gz: 66ab517902652d5921967544c7c81d89b758886d9c893b2ed60d0e32a4826fc8391c6e91c6c0701e17c916a0a6535390fead92f740cc367e34530865cc4e4122
@@ -11,7 +11,7 @@ jobs:
11
11
  strategy:
12
12
  fail-fast: false
13
13
  matrix:
14
- ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1' ]
14
+ ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', '3.2' ]
15
15
  name: Test Ruby ${{ matrix.ruby }}
16
16
  steps:
17
17
  - uses: actions/checkout@v2
@@ -22,5 +22,7 @@ jobs:
22
22
  bundler-cache: true
23
23
  - name: Lint Ruby files
24
24
  run: bin/rubocop
25
+ - name: Verify documentation is up to date
26
+ run: bundle exec rake generate_cops_documentation
25
27
  - name: Run tests
26
28
  run: bin/rspec
@@ -0,0 +1,22 @@
1
+ name: Contributor License Agreement (CLA)
2
+
3
+ on:
4
+ pull_request_target:
5
+ types: [opened, synchronize, reopened]
6
+ issue_comment:
7
+ types: [created]
8
+
9
+ jobs:
10
+ cla:
11
+ runs-on: ubuntu-latest
12
+ if: |
13
+ (github.event.issue.pull_request
14
+ && !github.event.issue.pull_request.merged_at
15
+ && contains(github.event.comment.body, 'signed')
16
+ )
17
+ || (github.event.pull_request && !github.event.pull_request.merged)
18
+ steps:
19
+ - uses: Shopify/shopify-cla-action@v1
20
+ with:
21
+ github-token: ${{ secrets.GITHUB_TOKEN }}
22
+ cla-token: ${{ secrets.CLA_TOKEN }}
@@ -0,0 +1,24 @@
1
+ name: "Close stale PRs"
2
+
3
+ permissions:
4
+ pull-requests: write
5
+ issues: write
6
+
7
+ on:
8
+ schedule:
9
+ - cron: "55 1 * * *"
10
+
11
+ jobs:
12
+ stale:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/stale@v5
16
+ with:
17
+ stale-pr-message: >
18
+ This PR has been automatically marked as stale because it has not had
19
+ recent activity. It will be closed if no further activity occurs. Thank you
20
+ for your contributions.
21
+ days-before-stale: 30
22
+ days-before-issue-stale: -1
23
+ days-before-close: 7
24
+ exempt-pr-labels: pinned,security
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rubocop-sorbet (0.6.11)
4
+ rubocop-sorbet (0.7.0)
5
5
  rubocop (>= 0.90.0)
6
6
 
7
7
  GEM
data/Rakefile CHANGED
@@ -22,15 +22,15 @@ task :new_cop, [:cop] do |_task, args|
22
22
  exit!
23
23
  end
24
24
 
25
- github_user = %x(git config github.user).chop
26
- github_user = "Shopify" if github_user.empty?
27
-
28
- generator = RuboCop::Cop::Generator.new(cop_name, github_user)
25
+ generator = RuboCop::Cop::Generator.new(cop_name)
29
26
 
30
27
  generator.write_source
31
28
  generator.write_spec
32
29
  generator.inject_require(root_file_path: "lib/rubocop/cop/sorbet_cops.rb")
33
30
  generator.inject_config(config_file_path: "config/default.yml")
34
31
 
35
- puts generator.todo
32
+ # We don't use Rubocop's changelog automation workflow
33
+ todo_without_changelog_instruction = generator.todo
34
+ .sub(/$\s+4\. Run.*changelog.*for your new cop\.$/m, "")
35
+ puts todo_without_changelog_instruction
36
36
  end
data/config/default.yml CHANGED
@@ -25,6 +25,11 @@ Sorbet/CheckedTrueInSignature:
25
25
  Enabled: true
26
26
  VersionAdded: 0.2.0
27
27
 
28
+ Sorbet/EmptyLineAfterSig:
29
+ Description: 'Ensures that there are no blank lines after signatures'
30
+ Enabled: true
31
+ VersionAdded: 0.7.0
32
+
28
33
  Sorbet/ConstantsFromStrings:
29
34
  Description: >-
30
35
  Forbids constant access through meta-programming.
@@ -42,7 +47,7 @@ Sorbet/EnforceSigilOrder:
42
47
  Sorbet/EnforceSingleSigil:
43
48
  Description: 'Ensures that there is only one Sorbet sigil in a file.'
44
49
  Enabled: true
45
- VersionAdded: '<<next>>'
50
+ VersionAdded: 0.7.0
46
51
 
47
52
  Sorbet/EnforceSignatures:
48
53
  Description: 'Ensures all methods have a valid signature.'
@@ -73,6 +78,7 @@ Sorbet/ForbidRBIOutsideOfAllowedPaths:
73
78
  Enabled: true
74
79
  VersionAdded: 0.6.1
75
80
  AllowedPaths:
81
+ - "rbi/**"
76
82
  - "sorbet/rbi/**"
77
83
  Include:
78
84
  - "**/*.rbi"
@@ -150,6 +156,16 @@ Sorbet/OneAncestorPerLine:
150
156
  Enabled: false
151
157
  VersionAdded: '0.6.0'
152
158
 
159
+ Sorbet/RedundantExtendTSig:
160
+ Description: >-
161
+ Forbid the usage of redundant `extend T::Sig`.
162
+
163
+ Only for use in applications that monkey patch `Module.include(T::Sig)` directly,
164
+ where it is useful to reduce noise.
165
+ Enabled: false
166
+ Safe: false
167
+ VersionAdded: 0.7.0
168
+
153
169
  Sorbet/SignatureBuildOrder:
154
170
  Description: >-
155
171
  Enforces the order of parts in a signature.
data/dev.yml CHANGED
@@ -3,7 +3,7 @@ name: "rubocop-sorbet"
3
3
  type: "ruby"
4
4
 
5
5
  up:
6
- - ruby: "2.5.5"
6
+ - ruby: "3.2.0"
7
7
  - "bundler"
8
8
 
9
9
  commands:
@@ -7,18 +7,18 @@ module RuboCop
7
7
  module Cop
8
8
  module Sorbet
9
9
  # This cop disallows use of `T.untyped` or `T.nilable(T.untyped)`
10
- # as a prop type for `T::Struct`.
10
+ # as a prop type for `T::Struct` or `T::ImmutableStruct`.
11
11
  #
12
12
  # @example
13
13
  #
14
14
  # # bad
15
- # class SomeClass
15
+ # class SomeClass < T::Struct
16
16
  # const :foo, T.untyped
17
17
  # prop :bar, T.nilable(T.untyped)
18
18
  # end
19
19
  #
20
20
  # # good
21
- # class SomeClass
21
+ # class SomeClass < T::Struct
22
22
  # const :foo, Integer
23
23
  # prop :bar, T.nilable(String)
24
24
  # end
@@ -29,6 +29,10 @@ module RuboCop
29
29
  (const (const nil? :T) :Struct)
30
30
  PATTERN
31
31
 
32
+ def_node_matcher :t_immutable_struct, <<~PATTERN
33
+ (const (const nil? :T) :ImmutableStruct)
34
+ PATTERN
35
+
32
36
  def_node_matcher :t_untyped, <<~PATTERN
33
37
  (send (const nil? :T) :untyped)
34
38
  PATTERN
@@ -38,7 +42,7 @@ module RuboCop
38
42
  PATTERN
39
43
 
40
44
  def_node_matcher :subclass_of_t_struct?, <<~PATTERN
41
- (class (const ...) #t_struct ...)
45
+ (class (const ...) {#t_struct #t_immutable_struct} ...)
42
46
  PATTERN
43
47
 
44
48
  def_node_search :untyped_props, <<~PATTERN
@@ -9,7 +9,7 @@ module RuboCop
9
9
  #
10
10
  # Options:
11
11
  #
12
- # * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["sorbet/rbi/**"])
12
+ # * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["rbi/**", "sorbet/rbi/**"])
13
13
  #
14
14
  # @example
15
15
  # # bad
@@ -17,6 +17,7 @@ module RuboCop
17
17
  # # other_file.rbi
18
18
  #
19
19
  # # good
20
+ # # rbi/external_interface.rbi
20
21
  # # sorbet/rbi/some_file.rbi
21
22
  # # sorbet/rbi/any/path/for/file.rbi
22
23
  class ForbidRBIOutsideOfAllowedPaths < RuboCop::Cop::Cop
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Sorbet
6
+ # Forbids the use of redundant `extend T::Sig`. Only for use in
7
+ # applications that monkey patch `Module.include(T::Sig)` globally,
8
+ # which would make it redundant.
9
+ #
10
+ # @safety
11
+ # This cop should not be enabled in applications that have not monkey
12
+ # patched `Module`.
13
+ #
14
+ # @example
15
+ # # bad
16
+ # class Example
17
+ # extend T::Sig
18
+ # sig { void }
19
+ # def no_op; end
20
+ # end
21
+ #
22
+ # # good
23
+ # class Example
24
+ # sig { void }
25
+ # def no_op; end
26
+ # end
27
+ #
28
+ class RedundantExtendTSig < RuboCop::Cop::Cop
29
+ MSG = "Do not redundantly `extend T::Sig` when it is already included in all modules."
30
+ RESTRICT_ON_SEND = [:extend].freeze
31
+
32
+ def_node_matcher :extend_t_sig?, <<~PATTERN
33
+ (send _ :extend (const (const {nil? | cbase} :T) :Sig))
34
+ PATTERN
35
+
36
+ def on_send(node)
37
+ return unless extend_t_sig?(node)
38
+
39
+ add_offense(node)
40
+ end
41
+
42
+ def autocorrect(node)
43
+ lambda do |corrector|
44
+ corrector.remove(node)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -7,7 +7,7 @@ module RuboCop
7
7
  module Sorbet
8
8
  # This cop checks that the Sorbet sigil comes as the first magic comment in the file.
9
9
  #
10
- # The expected order for magic comments is: typed, (en)?coding, warn_indent then frozen_string_literal.
10
+ # The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal.
11
11
  #
12
12
  # For example, the following bad ordering:
13
13
  #
@@ -25,7 +25,7 @@ module RuboCop
25
25
  # class Foo; end
26
26
  # ```
27
27
  #
28
- # Only `typed`, `(en)?coding`, `warn_indent` and `frozen_string_literal` magic comments are considered,
28
+ # Only `(en)?coding`, `typed`, `warn_indent` and `frozen_string_literal` magic comments are considered,
29
29
  # other comments or magic comments are left in the same place.
30
30
  class EnforceSigilOrder < ValidSigil
31
31
  include RangeHelp
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "signature_cop"
4
+
5
+ module RuboCop
6
+ module Cop
7
+ module Sorbet
8
+ # This cop checks for blank lines after signatures.
9
+ #
10
+ # It also suggests an autocorrect
11
+ #
12
+ # @example
13
+ #
14
+ # # bad
15
+ # sig { void }
16
+ #
17
+ # def foo; end
18
+ #
19
+ # # good
20
+ # sig { void }
21
+ # def foo; end
22
+ #
23
+ class EmptyLineAfterSig < SignatureCop
24
+ include RangeHelp
25
+
26
+ def on_signature(node)
27
+ if (next_method(node).line - node.last_line) > 1
28
+ location = source_range(processed_source.buffer, next_method(node).line - 1, 0)
29
+ add_offense(node, location: location, message: "Extra empty line or comment detected")
30
+ end
31
+ end
32
+
33
+ def autocorrect(node)
34
+ -> (corrector) do
35
+ offending_range = node.source_range.with(
36
+ begin_pos: node.source_range.end_pos + 1,
37
+ end_pos: processed_source.buffer.line_range(next_method(node).line).begin_pos
38
+ )
39
+ corrector.remove(offending_range)
40
+ clean_range = offending_range.source.split("\n").reject(&:empty?).join("\n")
41
+ offending_line = processed_source.buffer.line_range(node.source_range.first_line)
42
+ corrector.insert_before(offending_line, "#{clean_range}\n") unless clean_range.empty?
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def next_method(node)
49
+ processed_source.tokens.find do |t|
50
+ t.line >= node.last_line &&
51
+ (t.type == :kDEF || t.text.start_with?("attr_"))
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -94,6 +94,8 @@ module RuboCop
94
94
  end
95
95
 
96
96
  def call_chain(sig_child_node)
97
+ return [] if sig_child_node.nil?
98
+
97
99
  call_node = root_call(sig_child_node).first
98
100
  return [] unless call_node
99
101
 
@@ -12,7 +12,11 @@ module RuboCop
12
12
  @registry = Cop.registry # So we can properly subclass this cop
13
13
 
14
14
  def_node_matcher(:signature?, <<~PATTERN)
15
- (block (send #allowed_recv :sig) (args) ...)
15
+ (block (send
16
+ {nil? #with_runtime? #without_runtime?}
17
+ :sig
18
+ (sym :final)?
19
+ ) (args) ...)
16
20
  PATTERN
17
21
 
18
22
  def_node_matcher(:with_runtime?, <<~PATTERN)
@@ -23,13 +27,6 @@ module RuboCop
23
27
  (const (const (const nil? :T) :Sig) :WithoutRuntime)
24
28
  PATTERN
25
29
 
26
- def allowed_recv(recv)
27
- return true unless recv
28
- return true if with_runtime?(recv)
29
- return true if without_runtime?(recv)
30
- false
31
- end
32
-
33
30
  def on_block(node)
34
31
  on_signature(node) if signature?(node)
35
32
  end
@@ -8,6 +8,7 @@ require_relative "sorbet/one_ancestor_per_line"
8
8
  require_relative "sorbet/callback_conditionals_binding"
9
9
  require_relative "sorbet/forbid_t_unsafe"
10
10
  require_relative "sorbet/forbid_t_untyped"
11
+ require_relative "sorbet/redundant_extend_t_sig"
11
12
  require_relative "sorbet/type_alias_name"
12
13
 
13
14
  require_relative "sorbet/rbi/forbid_extend_t_sig_helpers_in_shims"
@@ -19,6 +20,7 @@ require_relative "sorbet/signatures/checked_true_in_signature"
19
20
  require_relative "sorbet/signatures/keyword_argument_ordering"
20
21
  require_relative "sorbet/signatures/signature_build_order"
21
22
  require_relative "sorbet/signatures/enforce_signatures"
23
+ require_relative "sorbet/signatures/empty_line_after_sig"
22
24
 
23
25
  require_relative "sorbet/sigils/valid_sigil"
24
26
  require_relative "sorbet/sigils/has_sigil"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module RuboCop
3
3
  module Sorbet
4
- VERSION = "0.6.11"
4
+ VERSION = "0.7.0"
5
5
  end
6
6
  end
data/manual/cops.md CHANGED
@@ -10,6 +10,7 @@ In the following section you find all available cops:
10
10
  * [Sorbet/CallbackConditionalsBinding](cops_sorbet.md#sorbetcallbackconditionalsbinding)
11
11
  * [Sorbet/CheckedTrueInSignature](cops_sorbet.md#sorbetcheckedtrueinsignature)
12
12
  * [Sorbet/ConstantsFromStrings](cops_sorbet.md#sorbetconstantsfromstrings)
13
+ * [Sorbet/EmptyLineAfterSig](cops_sorbet.md#sorbetemptylineaftersig)
13
14
  * [Sorbet/EnforceSigilOrder](cops_sorbet.md#sorbetenforcesigilorder)
14
15
  * [Sorbet/EnforceSignatures](cops_sorbet.md#sorbetenforcesignatures)
15
16
  * [Sorbet/EnforceSingleSigil](cops_sorbet.md#sorbetenforcesinglesigil)
@@ -25,6 +26,7 @@ In the following section you find all available cops:
25
26
  * [Sorbet/IgnoreSigil](cops_sorbet.md#sorbetignoresigil)
26
27
  * [Sorbet/KeywordArgumentOrdering](cops_sorbet.md#sorbetkeywordargumentordering)
27
28
  * [Sorbet/OneAncestorPerLine](cops_sorbet.md#sorbetoneancestorperline)
29
+ * [Sorbet/RedundantExtendTSig](cops_sorbet.md#sorbetredundantextendtsig)
28
30
  * [Sorbet/SignatureBuildOrder](cops_sorbet.md#sorbetsignaturebuildorder)
29
31
  * [Sorbet/SignatureCop](cops_sorbet.md#sorbetsignaturecop)
30
32
  * [Sorbet/SingleLineRbiClassModuleDefinitions](cops_sorbet.md#sorbetsinglelinerbiclassmoduledefinitions)
@@ -138,6 +138,29 @@ end
138
138
  { "User" => User }.fetch(class_name)
139
139
  ```
140
140
 
141
+ ## Sorbet/EmptyLineAfterSig
142
+
143
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
144
+ --- | --- | --- | --- | ---
145
+ Enabled | Yes | Yes | 0.7.0 | -
146
+
147
+ This cop checks for blank lines after signatures.
148
+
149
+ It also suggests an autocorrect
150
+
151
+ ### Examples
152
+
153
+ ```ruby
154
+ # bad
155
+ sig { void }
156
+
157
+ def foo; end
158
+
159
+ # good
160
+ sig { void }
161
+ def foo; end
162
+ ```
163
+
141
164
  ## Sorbet/EnforceSigilOrder
142
165
 
143
166
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
@@ -146,7 +169,7 @@ Enabled | Yes | Yes | 0.3.4 | -
146
169
 
147
170
  This cop checks that the Sorbet sigil comes as the first magic comment in the file.
148
171
 
149
- The expected order for magic comments is: typed, (en)?coding, warn_indent then frozen_string_literal.
172
+ The expected order for magic comments is: (en)?coding, typed, warn_indent then frozen_string_literal.
150
173
 
151
174
  For example, the following bad ordering:
152
175
 
@@ -164,7 +187,7 @@ Will be corrected as:
164
187
  class Foo; end
165
188
  ```
166
189
 
167
- Only `typed`, `(en)?coding`, `warn_indent` and `frozen_string_literal` magic comments are considered,
190
+ Only `(en)?coding`, `typed`, `warn_indent` and `frozen_string_literal` magic comments are considered,
168
191
  other comments or magic comments are left in the same place.
169
192
 
170
193
  ## Sorbet/EnforceSignatures
@@ -197,7 +220,7 @@ You can configure the placeholders used by changing the following options:
197
220
 
198
221
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
199
222
  --- | --- | --- | --- | ---
200
- Enabled | Yes | Yes | <<next>> | -
223
+ Enabled | Yes | Yes | 0.7.0 | -
201
224
 
202
225
  This cop checks that there is only one Sorbet sigil in a given file
203
226
 
@@ -288,7 +311,7 @@ This cop makes sure that RBI files are always located under the defined allowed
288
311
 
289
312
  Options:
290
313
 
291
- * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["sorbet/rbi/**"])
314
+ * `AllowedPaths`: A list of the paths where RBI files are allowed (default: ["rbi/**", "sorbet/rbi/**"])
292
315
 
293
316
  ### Examples
294
317
 
@@ -298,6 +321,7 @@ Options:
298
321
  # other_file.rbi
299
322
 
300
323
  # good
324
+ # rbi/external_interface.rbi
301
325
  # sorbet/rbi/some_file.rbi
302
326
  # sorbet/rbi/any/path/for/file.rbi
303
327
  ```
@@ -306,7 +330,7 @@ Options:
306
330
 
307
331
  Name | Default value | Configurable values
308
332
  --- | --- | ---
309
- AllowedPaths | `sorbet/rbi/**` | Array
333
+ AllowedPaths | `rbi/**`, `sorbet/rbi/**` | Array
310
334
  Include | `**/*.rbi` | Array
311
335
 
312
336
  ## Sorbet/ForbidSuperclassConstLiteral
@@ -368,19 +392,19 @@ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChan
368
392
  Enabled | Yes | No | 0.4.0 | -
369
393
 
370
394
  This cop disallows use of `T.untyped` or `T.nilable(T.untyped)`
371
- as a prop type for `T::Struct`.
395
+ as a prop type for `T::Struct` or `T::ImmutableStruct`.
372
396
 
373
397
  ### Examples
374
398
 
375
399
  ```ruby
376
400
  # bad
377
- class SomeClass
401
+ class SomeClass < T::Struct
378
402
  const :foo, T.untyped
379
403
  prop :bar, T.nilable(T.untyped)
380
404
  end
381
405
 
382
406
  # good
383
- class SomeClass
407
+ class SomeClass < T::Struct
384
408
  const :foo, Integer
385
409
  prop :bar, T.nilable(String)
386
410
  end
@@ -473,6 +497,33 @@ module SomeModule
473
497
  end
474
498
  ```
475
499
 
500
+ ## Sorbet/RedundantExtendTSig
501
+
502
+ Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
503
+ --- | --- | --- | --- | ---
504
+ Disabled | No | Yes | 0.7.0 | -
505
+
506
+ Forbids the use of redundant `extend T::Sig`. Only for use in
507
+ applications that monkey patch `Module.include(T::Sig)` globally,
508
+ which would make it redundant.
509
+
510
+ ### Examples
511
+
512
+ ```ruby
513
+ # bad
514
+ class Example
515
+ extend T::Sig
516
+ sig { void }
517
+ def no_op; end
518
+ end
519
+
520
+ # good
521
+ class Example
522
+ sig { void }
523
+ def no_op; end
524
+ end
525
+ ```
526
+
476
527
  ## Sorbet/SignatureBuildOrder
477
528
 
478
529
  Enabled by default | Safe | Supports autocorrection | VersionAdded | VersionChanged
data/service.yml CHANGED
@@ -1 +0,0 @@
1
- classification: library
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-sorbet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.11
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ufuk Kayserilioglu
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: exe
13
13
  cert_chain: []
14
- date: 2022-06-30 00:00:00.000000000 Z
14
+ date: 2023-02-03 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -63,10 +63,10 @@ extensions: []
63
63
  extra_rdoc_files: []
64
64
  files:
65
65
  - ".github/CODEOWNERS"
66
- - ".github/probots.yml"
67
66
  - ".github/release.yml"
68
- - ".github/stale.yml"
69
67
  - ".github/workflows/ci.yml"
68
+ - ".github/workflows/cla.yml"
69
+ - ".github/workflows/stale.yml"
70
70
  - ".gitignore"
71
71
  - ".rspec"
72
72
  - ".rubocop.yml"
@@ -98,6 +98,7 @@ files:
98
98
  - lib/rubocop/cop/sorbet/rbi/forbid_extend_t_sig_helpers_in_shims.rb
99
99
  - lib/rubocop/cop/sorbet/rbi/forbid_rbi_outside_of_allowed_paths.rb
100
100
  - lib/rubocop/cop/sorbet/rbi/single_line_rbi_class_module_definitions.rb
101
+ - lib/rubocop/cop/sorbet/redundant_extend_t_sig.rb
101
102
  - lib/rubocop/cop/sorbet/sigils/enforce_sigil_order.rb
102
103
  - lib/rubocop/cop/sorbet/sigils/enforce_single_sigil.rb
103
104
  - lib/rubocop/cop/sorbet/sigils/false_sigil.rb
@@ -109,6 +110,7 @@ files:
109
110
  - lib/rubocop/cop/sorbet/sigils/valid_sigil.rb
110
111
  - lib/rubocop/cop/sorbet/signatures/allow_incompatible_override.rb
111
112
  - lib/rubocop/cop/sorbet/signatures/checked_true_in_signature.rb
113
+ - lib/rubocop/cop/sorbet/signatures/empty_line_after_sig.rb
112
114
  - lib/rubocop/cop/sorbet/signatures/enforce_signatures.rb
113
115
  - lib/rubocop/cop/sorbet/signatures/keyword_argument_ordering.rb
114
116
  - lib/rubocop/cop/sorbet/signatures/signature_build_order.rb
data/.github/probots.yml DELETED
@@ -1,3 +0,0 @@
1
- enabled:
2
- - cla
3
- - probot-stale
data/.github/stale.yml DELETED
@@ -1,20 +0,0 @@
1
- # Number of days of inactivity before an issue becomes stale
2
- daysUntilStale: 30
3
- # Number of days of inactivity before a stale issue is closed
4
- daysUntilClose: 7
5
- # Issues with these labels will never be considered stale
6
- exemptLabels:
7
- - pinned
8
- - security
9
- # Label to use when marking an issue as stale
10
- staleLabel: stale
11
- # Comment to post when marking an issue as stale. Set to `false` to disable
12
- markComment: >
13
- This PR has been automatically marked as stale because it has not had
14
- recent activity. It will be closed if no further activity occurs. Thank you
15
- for your contributions.
16
- # Comment to post when closing a stale issue. Set to `false` to disable
17
- closeComment: false
18
- #
19
- only: pulls
20
- #