packwerk 3.2.3 → 3.3.1

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.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/exe/packwerk +0 -4
  3. data/lib/packwerk/application_validator.rb +11 -10
  4. data/lib/packwerk/association_inspector.rb +21 -32
  5. data/lib/packwerk/cache.rb +43 -36
  6. data/lib/packwerk/checker.rb +24 -26
  7. data/lib/packwerk/cli.rb +13 -20
  8. data/lib/packwerk/commands/base_command.rb +20 -26
  9. data/lib/packwerk/commands/check_command.rb +8 -8
  10. data/lib/packwerk/commands/help_command.rb +3 -4
  11. data/lib/packwerk/commands/init_command.rb +2 -3
  12. data/lib/packwerk/commands/lazy_loaded_entry.rb +5 -7
  13. data/lib/packwerk/commands/update_todo_command.rb +3 -3
  14. data/lib/packwerk/commands/uses_parse_run.rb +20 -26
  15. data/lib/packwerk/commands/validate_command.rb +6 -7
  16. data/lib/packwerk/commands/version_command.rb +2 -3
  17. data/lib/packwerk/commands.rb +5 -8
  18. data/lib/packwerk/configuration.rb +29 -43
  19. data/lib/packwerk/const_node_inspector.rb +11 -15
  20. data/lib/packwerk/constant_context.rb +0 -2
  21. data/lib/packwerk/constant_discovery.rb +3 -16
  22. data/lib/packwerk/constant_name_inspector.rb +4 -11
  23. data/lib/packwerk/extension_loader.rb +1 -2
  24. data/lib/packwerk/file_processor.rb +20 -25
  25. data/lib/packwerk/files_for_processing.rb +13 -29
  26. data/lib/packwerk/formatters/default_offenses_formatter.rb +14 -12
  27. data/lib/packwerk/formatters/progress_formatter.rb +10 -12
  28. data/lib/packwerk/generators/configuration_file.rb +5 -9
  29. data/lib/packwerk/generators/root_package.rb +3 -7
  30. data/lib/packwerk/graph.rb +1 -7
  31. data/lib/packwerk/node_helpers.rb +32 -38
  32. data/lib/packwerk/node_processor.rb +2 -14
  33. data/lib/packwerk/node_processor_factory.rb +13 -7
  34. data/lib/packwerk/node_visitor.rb +2 -10
  35. data/lib/packwerk/offense.rb +6 -12
  36. data/lib/packwerk/offense_collection.rb +22 -35
  37. data/lib/packwerk/offenses_formatter.rb +27 -34
  38. data/lib/packwerk/output_style.rb +10 -11
  39. data/lib/packwerk/output_styles/coloured.rb +6 -4
  40. data/lib/packwerk/output_styles/plain.rb +6 -4
  41. data/lib/packwerk/package.rb +15 -16
  42. data/lib/packwerk/package_set.rb +15 -25
  43. data/lib/packwerk/package_todo.rb +21 -30
  44. data/lib/packwerk/parse_run.rb +10 -37
  45. data/lib/packwerk/parsed_constant_definitions.rb +10 -24
  46. data/lib/packwerk/parsers/erb.rb +11 -22
  47. data/lib/packwerk/parsers/factory.rb +9 -9
  48. data/lib/packwerk/parsers/parser_interface.rb +5 -10
  49. data/lib/packwerk/parsers/ruby.rb +9 -14
  50. data/lib/packwerk/parsers.rb +2 -4
  51. data/lib/packwerk/rails_load_paths.rb +6 -11
  52. data/lib/packwerk/reference_checking/checkers/dependency_checker.rb +10 -15
  53. data/lib/packwerk/reference_checking/reference_checker.rb +2 -8
  54. data/lib/packwerk/reference_extractor.rb +22 -55
  55. data/lib/packwerk/reference_offense.rb +5 -15
  56. data/lib/packwerk/run_context.rb +28 -39
  57. data/lib/packwerk/spring_command.rb +4 -7
  58. data/lib/packwerk/validator/result.rb +12 -5
  59. data/lib/packwerk/validator.rb +23 -33
  60. data/lib/packwerk/validators/dependency_validator.rb +9 -10
  61. data/lib/packwerk/version.rb +1 -1
  62. data/lib/packwerk.rb +0 -1
  63. metadata +15 -76
  64. data/lib/packwerk/disable_sorbet.rb +0 -41
  65. data/sorbet/config +0 -4
  66. data/sorbet/rbi/gems/actionpack@7.0.8.7.rbi +0 -19338
  67. data/sorbet/rbi/gems/actionview@7.0.8.7.rbi +0 -15492
  68. data/sorbet/rbi/gems/activesupport@7.0.8.7.rbi +0 -18283
  69. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -584
  70. data/sorbet/rbi/gems/better_html@2.1.1.rbi +0 -529
  71. data/sorbet/rbi/gems/builder@3.3.0.rbi +0 -8
  72. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -36
  73. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +0 -11656
  74. data/sorbet/rbi/gems/constant_resolver@0.3.0.rbi +0 -99
  75. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -622
  76. data/sorbet/rbi/gems/erubi@1.13.1.rbi +0 -154
  77. data/sorbet/rbi/gems/i18n@1.14.7.rbi +0 -2358
  78. data/sorbet/rbi/gems/json@2.7.2.rbi +0 -1561
  79. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14237
  80. data/sorbet/rbi/gems/loofah@2.24.0.rbi +0 -1104
  81. data/sorbet/rbi/gems/m@1.6.0.rbi +0 -257
  82. data/sorbet/rbi/gems/method_source@1.1.0.rbi +0 -303
  83. data/sorbet/rbi/gems/minitest-focus@1.3.1.rbi +0 -98
  84. data/sorbet/rbi/gems/minitest@5.25.4.rbi +0 -2229
  85. data/sorbet/rbi/gems/mocha@2.5.0.rbi +0 -3961
  86. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -158
  87. data/sorbet/rbi/gems/nokogiri@1.18.4.rbi +0 -8204
  88. data/sorbet/rbi/gems/parallel@1.25.1.rbi +0 -286
  89. data/sorbet/rbi/gems/parser@3.3.3.0.rbi +0 -7320
  90. data/sorbet/rbi/gems/prism@0.27.0.rbi +0 -36983
  91. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -161
  92. data/sorbet/rbi/gems/rack-test@2.2.0.rbi +0 -736
  93. data/sorbet/rbi/gems/rack@2.2.13.rbi +0 -5633
  94. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +0 -754
  95. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +0 -764
  96. data/sorbet/rbi/gems/railties@7.0.8.7.rbi +0 -3517
  97. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -402
  98. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -3039
  99. data/sorbet/rbi/gems/rbi@0.1.12.rbi +0 -3071
  100. data/sorbet/rbi/gems/regexp_parser@2.9.2.rbi +0 -3771
  101. data/sorbet/rbi/gems/rexml@3.3.9.rbi +0 -4857
  102. data/sorbet/rbi/gems/rubocop-ast@1.31.3.rbi +0 -7089
  103. data/sorbet/rbi/gems/rubocop-performance@1.14.3.rbi +0 -2967
  104. data/sorbet/rbi/gems/rubocop-shopify@2.9.0.rbi +0 -8
  105. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +0 -975
  106. data/sorbet/rbi/gems/rubocop@1.64.1.rbi +0 -58089
  107. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1317
  108. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -8
  109. data/sorbet/rbi/gems/smart_properties@1.17.0.rbi +0 -474
  110. data/sorbet/rbi/gems/spoom@1.3.2.rbi +0 -4420
  111. data/sorbet/rbi/gems/spring@4.0.0.rbi +0 -411
  112. data/sorbet/rbi/gems/tapioca@0.13.3.rbi +0 -3524
  113. data/sorbet/rbi/gems/thor@1.3.1.rbi +0 -4351
  114. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5917
  115. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -65
  116. data/sorbet/rbi/gems/yard-sorbet@0.8.1.rbi +0 -428
  117. data/sorbet/rbi/gems/yard@0.9.36.rbi +0 -18333
  118. data/sorbet/rbi/gems/zeitwerk@2.6.4.rbi +0 -934
  119. data/sorbet/rbi/shims/minitest/test.rb +0 -8
  120. data/sorbet/rbi/shims/packwerk/reference.rbi +0 -33
  121. data/sorbet/rbi/shims/packwerk/unresolved_reference.rbi +0 -33
  122. data/sorbet/rbi/shims/parser.rbi +0 -13
  123. data/sorbet/rbi/shims/psych.rbi +0 -5
  124. data/sorbet/tapioca/require.rb +0 -25
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packwerk
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shopify Inc.
@@ -24,7 +24,7 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '6.0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: bundler
27
+ name: benchmark
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
@@ -38,47 +38,47 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: constant_resolver
41
+ name: bundler
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0.3'
46
+ version: '0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '0.3'
53
+ version: '0'
54
54
  - !ruby/object:Gem::Dependency
55
- name: parallel
55
+ name: constant_resolver
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '0'
60
+ version: '0.3'
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '0'
67
+ version: '0.3'
68
68
  - !ruby/object:Gem::Dependency
69
- name: sorbet-runtime
69
+ name: parallel
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 0.5.9914
74
+ version: '0'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 0.5.9914
81
+ version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: zeitwerk
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -127,14 +127,14 @@ dependencies:
127
127
  requirements:
128
128
  - - ">="
129
129
  - !ruby/object:Gem::Version
130
- version: 0.25.0
130
+ version: 1.4.0
131
131
  type: :runtime
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: 0.25.0
137
+ version: 1.4.0
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: better_html
140
140
  requirement: !ruby/object:Gem::Requirement
@@ -184,7 +184,6 @@ files:
184
184
  - lib/packwerk/constant_context.rb
185
185
  - lib/packwerk/constant_discovery.rb
186
186
  - lib/packwerk/constant_name_inspector.rb
187
- - lib/packwerk/disable_sorbet.rb
188
187
  - lib/packwerk/extension_loader.rb
189
188
  - lib/packwerk/file_processor.rb
190
189
  - lib/packwerk/files_for_processing.rb
@@ -229,66 +228,6 @@ files:
229
228
  - lib/packwerk/validator/result.rb
230
229
  - lib/packwerk/validators/dependency_validator.rb
231
230
  - lib/packwerk/version.rb
232
- - sorbet/config
233
- - sorbet/rbi/gems/actionpack@7.0.8.7.rbi
234
- - sorbet/rbi/gems/actionview@7.0.8.7.rbi
235
- - sorbet/rbi/gems/activesupport@7.0.8.7.rbi
236
- - sorbet/rbi/gems/ast@2.4.2.rbi
237
- - sorbet/rbi/gems/better_html@2.1.1.rbi
238
- - sorbet/rbi/gems/builder@3.3.0.rbi
239
- - sorbet/rbi/gems/byebug@11.1.3.rbi
240
- - sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi
241
- - sorbet/rbi/gems/constant_resolver@0.3.0.rbi
242
- - sorbet/rbi/gems/crass@1.0.6.rbi
243
- - sorbet/rbi/gems/erubi@1.13.1.rbi
244
- - sorbet/rbi/gems/i18n@1.14.7.rbi
245
- - sorbet/rbi/gems/json@2.7.2.rbi
246
- - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
247
- - sorbet/rbi/gems/loofah@2.24.0.rbi
248
- - sorbet/rbi/gems/m@1.6.0.rbi
249
- - sorbet/rbi/gems/method_source@1.1.0.rbi
250
- - sorbet/rbi/gems/minitest-focus@1.3.1.rbi
251
- - sorbet/rbi/gems/minitest@5.25.4.rbi
252
- - sorbet/rbi/gems/mocha@2.5.0.rbi
253
- - sorbet/rbi/gems/netrc@0.11.0.rbi
254
- - sorbet/rbi/gems/nokogiri@1.18.4.rbi
255
- - sorbet/rbi/gems/parallel@1.25.1.rbi
256
- - sorbet/rbi/gems/parser@3.3.3.0.rbi
257
- - sorbet/rbi/gems/prism@0.27.0.rbi
258
- - sorbet/rbi/gems/racc@1.8.1.rbi
259
- - sorbet/rbi/gems/rack-test@2.2.0.rbi
260
- - sorbet/rbi/gems/rack@2.2.13.rbi
261
- - sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi
262
- - sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi
263
- - sorbet/rbi/gems/railties@7.0.8.7.rbi
264
- - sorbet/rbi/gems/rainbow@3.1.1.rbi
265
- - sorbet/rbi/gems/rake@13.0.6.rbi
266
- - sorbet/rbi/gems/rbi@0.1.12.rbi
267
- - sorbet/rbi/gems/regexp_parser@2.9.2.rbi
268
- - sorbet/rbi/gems/rexml@3.3.9.rbi
269
- - sorbet/rbi/gems/rubocop-ast@1.31.3.rbi
270
- - sorbet/rbi/gems/rubocop-performance@1.14.3.rbi
271
- - sorbet/rbi/gems/rubocop-shopify@2.9.0.rbi
272
- - sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi
273
- - sorbet/rbi/gems/rubocop@1.64.1.rbi
274
- - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
275
- - sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi
276
- - sorbet/rbi/gems/smart_properties@1.17.0.rbi
277
- - sorbet/rbi/gems/spoom@1.3.2.rbi
278
- - sorbet/rbi/gems/spring@4.0.0.rbi
279
- - sorbet/rbi/gems/tapioca@0.13.3.rbi
280
- - sorbet/rbi/gems/thor@1.3.1.rbi
281
- - sorbet/rbi/gems/tzinfo@2.0.6.rbi
282
- - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
283
- - sorbet/rbi/gems/yard-sorbet@0.8.1.rbi
284
- - sorbet/rbi/gems/yard@0.9.36.rbi
285
- - sorbet/rbi/gems/zeitwerk@2.6.4.rbi
286
- - sorbet/rbi/shims/minitest/test.rb
287
- - sorbet/rbi/shims/packwerk/reference.rbi
288
- - sorbet/rbi/shims/packwerk/unresolved_reference.rbi
289
- - sorbet/rbi/shims/parser.rbi
290
- - sorbet/rbi/shims/psych.rbi
291
- - sorbet/tapioca/require.rb
292
231
  homepage: https://github.com/Shopify/packwerk
293
232
  licenses:
294
233
  - MIT
@@ -304,14 +243,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
304
243
  requirements:
305
244
  - - ">="
306
245
  - !ruby/object:Gem::Version
307
- version: '3.1'
246
+ version: '3.3'
308
247
  required_rubygems_version: !ruby/object:Gem::Requirement
309
248
  requirements:
310
249
  - - ">="
311
250
  - !ruby/object:Gem::Version
312
251
  version: '0'
313
252
  requirements: []
314
- rubygems_version: 3.6.9
253
+ rubygems_version: 4.0.6
315
254
  specification_version: 4
316
255
  summary: Packages for applications based on the zeitwerk autoloader
317
256
  test_files: []
@@ -1,41 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- require "sorbet-runtime"
5
-
6
- begin
7
- T::Configuration.default_checked_level = :never
8
-
9
- T.singleton_class.prepend(
10
- Module.new do
11
- def cast(value, type, checked: true)
12
- value
13
- end
14
-
15
- def let(value, type, checked: true)
16
- value
17
- end
18
-
19
- def must(arg)
20
- arg
21
- end
22
-
23
- def absurd(value)
24
- value
25
- end
26
-
27
- def bind(value, type, checked: true)
28
- value
29
- end
30
- end
31
- )
32
- rescue RuntimeError => error
33
- # From https://github.com/sorbet/sorbet/blob/dcf1b069cfb0d6624c027e45e59f4c6ca33de970/gems/sorbet-runtime/lib/types/private/runtime_levels.rb#L54
34
- # Sorbet has already evaluated a method call somewhere, so we can't disable it.
35
- # In this case, we want to log a warning so Packwerk can still be used (but will be slower).
36
- if /Set the default checked level earlier./.match?(error.message)
37
- warn("Packwerk couldn't disable Sorbet. Please ensure it isn't being used before Packwerk is loaded.")
38
- else
39
- raise error
40
- end
41
- end
data/sorbet/config DELETED
@@ -1,4 +0,0 @@
1
- --dir
2
- .
3
- --enable-experimental-requires-ancestor
4
- --ignore=/vendor/bundle