packwerk 1.1.0 → 1.2.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 +4 -4
- data/.github/workflows/ci.yml +14 -5
- data/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +129 -111
- data/README.md +8 -1
- data/USAGE.md +17 -16
- data/dev.yml +1 -1
- data/exe/packwerk +1 -1
- data/gemfiles/Gemfile-rails-6-0 +22 -0
- data/lib/packwerk/application_load_paths.rb +3 -2
- data/lib/packwerk/application_validator.rb +83 -67
- data/lib/packwerk/association_inspector.rb +23 -11
- data/lib/packwerk/checker.rb +4 -7
- data/lib/packwerk/cli.rb +32 -100
- data/lib/packwerk/configuration.rb +10 -2
- data/lib/packwerk/const_node_inspector.rb +13 -14
- data/lib/packwerk/constant_discovery.rb +2 -0
- data/lib/packwerk/constant_name_inspector.rb +0 -1
- data/lib/packwerk/dependency_checker.rb +12 -17
- data/lib/packwerk/deprecated_references.rb +7 -9
- data/lib/packwerk/file_processor.rb +0 -4
- data/lib/packwerk/formatters/offenses_formatter.rb +43 -0
- data/lib/packwerk/formatters/progress_formatter.rb +9 -4
- data/lib/packwerk/generators/configuration_file.rb +0 -1
- data/lib/packwerk/inflector.rb +0 -2
- data/lib/packwerk/node.rb +9 -2
- data/lib/packwerk/node_processor.rb +15 -32
- data/lib/packwerk/node_processor_factory.rb +0 -5
- data/lib/packwerk/node_visitor.rb +1 -4
- data/lib/packwerk/offense.rb +2 -8
- data/lib/packwerk/offense_collection.rb +84 -0
- data/lib/packwerk/offenses_formatter.rb +15 -0
- data/lib/packwerk/output_style.rb +20 -0
- data/lib/packwerk/output_styles/coloured.rb +29 -0
- data/lib/packwerk/output_styles/plain.rb +26 -0
- data/lib/packwerk/package.rb +8 -0
- data/lib/packwerk/package_set.rb +2 -3
- data/lib/packwerk/parse_run.rb +104 -0
- data/lib/packwerk/parsed_constant_definitions.rb +2 -4
- data/lib/packwerk/parsers/erb.rb +0 -2
- data/lib/packwerk/parsers/factory.rb +1 -3
- data/lib/packwerk/parsers.rb +0 -2
- data/lib/packwerk/privacy_checker.rb +22 -17
- data/lib/packwerk/reference_extractor.rb +0 -8
- data/lib/packwerk/reference_offense.rb +49 -0
- data/lib/packwerk/result.rb +9 -0
- data/lib/packwerk/run_context.rb +4 -21
- data/lib/packwerk/sanity_checker.rb +1 -3
- data/lib/packwerk/spring_command.rb +1 -1
- data/lib/packwerk/version.rb +1 -1
- data/lib/packwerk/violation_type.rb +0 -2
- data/lib/packwerk.rb +73 -34
- data/library.yml +1 -1
- data/packwerk.gemspec +1 -0
- data/service.yml +1 -4
- data/shipit.rubygems.yml +5 -1
- data/sorbet/rbi/gems/{actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +56 -36
- data/sorbet/rbi/gems/{actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +25 -28
- data/sorbet/rbi/gems/{actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +43 -24
- data/sorbet/rbi/gems/{actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +382 -284
- data/sorbet/rbi/gems/{actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +76 -40
- data/sorbet/rbi/gems/{actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +206 -195
- data/sorbet/rbi/gems/{activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +64 -75
- data/sorbet/rbi/gems/{activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +103 -56
- data/sorbet/rbi/gems/{activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1250 -898
- data/sorbet/rbi/gems/{activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +92 -120
- data/sorbet/rbi/gems/{activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +292 -193
- data/sorbet/rbi/gems/{ast@2.4.1.rbi → ast@2.4.2.rbi} +2 -1
- data/sorbet/rbi/gems/{better_html@1.0.15.rbi → better_html@1.0.16.rbi} +2 -2
- data/sorbet/rbi/gems/{concurrent-ruby@1.1.6.rbi → concurrent-ruby@1.1.8.rbi} +12 -9
- data/sorbet/rbi/gems/{erubi@1.9.0.rbi → erubi@1.10.0.rbi} +3 -1
- data/sorbet/rbi/gems/{i18n@1.8.2.rbi → i18n@1.8.10.rbi} +19 -52
- data/sorbet/rbi/gems/{loofah@2.5.0.rbi → loofah@2.9.0.rbi} +3 -1
- data/sorbet/rbi/gems/marcel@1.0.0.rbi +70 -0
- data/sorbet/rbi/gems/{mini_mime@1.0.2.rbi → mini_mime@1.0.3.rbi} +6 -6
- data/sorbet/rbi/gems/{mini_portile2@2.4.0.rbi → minitest-focus@1.2.1.rbi} +2 -2
- data/sorbet/rbi/gems/{minitest@5.14.0.rbi → minitest@5.14.4.rbi} +31 -29
- data/sorbet/rbi/gems/{mocha@1.11.2.rbi → mocha@1.12.0.rbi} +25 -36
- data/sorbet/rbi/gems/{nio4r@2.5.2.rbi → nio4r@2.5.7.rbi} +21 -20
- data/sorbet/rbi/gems/{nokogiri@1.10.9.rbi → nokogiri@1.11.2.rbi} +193 -154
- data/sorbet/rbi/gems/parallel@1.20.1.rbi +117 -0
- data/sorbet/rbi/gems/parlour@6.0.0.rbi +1272 -0
- data/sorbet/rbi/gems/{parser@2.7.1.4.rbi → parser@3.0.0.0.rbi} +287 -174
- data/sorbet/rbi/gems/{pry@0.13.1.rbi → pry@0.14.0.rbi} +1 -1
- data/sorbet/rbi/gems/racc@1.5.2.rbi +57 -0
- data/sorbet/rbi/gems/{rack@2.2.2.rbi → rack@2.2.3.rbi} +23 -35
- data/sorbet/rbi/gems/{rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +1 -1
- data/sorbet/rbi/gems/{railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi → railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi} +132 -121
- data/sorbet/rbi/gems/{rake@13.0.1.rbi → rake@13.0.3.rbi} +16 -20
- data/sorbet/rbi/gems/{parallel@1.19.1.rbi → regexp_parser@2.1.1.rbi} +2 -2
- data/sorbet/rbi/gems/rubocop-ast@1.4.1.rbi +8 -0
- data/sorbet/rbi/gems/{rubocop-performance@1.5.2.rbi → rubocop-performance@1.10.2.rbi} +1 -1
- data/sorbet/rbi/gems/{rubocop-shopify@1.0.2.rbi → rubocop-shopify@2.0.1.rbi} +1 -1
- data/sorbet/rbi/gems/{rubocop-sorbet@0.3.7.rbi → rubocop-sorbet@0.6.1.rbi} +1 -1
- data/sorbet/rbi/gems/{rubocop@0.82.0.rbi → rubocop@1.12.0.rbi} +1 -1
- data/sorbet/rbi/gems/{ruby-progressbar@1.10.1.rbi → ruby-progressbar@1.11.0.rbi} +1 -1
- data/sorbet/rbi/gems/spoom@1.1.0.rbi +1061 -0
- data/sorbet/rbi/gems/{spring@2.1.0.rbi → spring@2.1.1.rbi} +7 -7
- data/sorbet/rbi/gems/{sprockets-rails@3.2.1.rbi → sprockets-rails@3.2.2.rbi} +88 -68
- data/sorbet/rbi/gems/{sprockets@4.0.0.rbi → sprockets@4.0.2.rbi} +8 -7
- data/sorbet/rbi/gems/{tapioca@0.4.5.rbi → tapioca@0.4.19.rbi} +109 -24
- data/sorbet/rbi/gems/{thor@1.0.1.rbi → thor@1.1.0.rbi} +16 -15
- data/sorbet/rbi/gems/{tzinfo@2.0.2.rbi → tzinfo@2.0.4.rbi} +21 -2
- data/sorbet/rbi/gems/{unicode-display_width@1.7.0.rbi → unicode-display_width@2.0.0.rbi} +1 -1
- data/sorbet/rbi/gems/{websocket-driver@0.7.1.rbi → websocket-driver@0.7.3.rbi} +29 -29
- data/sorbet/rbi/gems/{websocket-extensions@0.1.4.rbi → websocket-extensions@0.1.5.rbi} +2 -2
- data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +177 -0
- data/sorbet/tapioca/require.rb +1 -0
- metadata +78 -61
- data/lib/packwerk/cache_deprecated_references.rb +0 -47
- data/lib/packwerk/checking_deprecated_references.rb +0 -40
- data/lib/packwerk/commands/detect_stale_violations_command.rb +0 -63
- data/lib/packwerk/commands/offense_progress_marker.rb +0 -24
- data/lib/packwerk/detect_stale_deprecated_references.rb +0 -14
- data/lib/packwerk/output_styles.rb +0 -41
- data/lib/packwerk/reference_lister.rb +0 -23
- data/lib/packwerk/updating_deprecated_references.rb +0 -14
- data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +0 -8
- data/sorbet/rbi/gems/marcel@0.3.3.rbi +0 -30
- data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +0 -47
- data/sorbet/rbi/gems/parlour@4.0.1.rbi +0 -561
- data/sorbet/rbi/gems/spoom@1.0.4.rbi +0 -418
- data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +0 -8
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# DO NOT EDIT MANUALLY
|
|
2
|
+
# This is an autogenerated file for types exported from the `zeitwerk` gem.
|
|
3
|
+
# Please instead update this file by running `bin/tapioca sync`.
|
|
4
|
+
|
|
5
|
+
# typed: true
|
|
6
|
+
|
|
7
|
+
module Kernel
|
|
8
|
+
|
|
9
|
+
private
|
|
10
|
+
|
|
11
|
+
def require(path); end
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
def require(path); end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module Zeitwerk
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
class Zeitwerk::Error < ::StandardError
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
module Zeitwerk::ExplicitNamespace
|
|
25
|
+
extend(::Zeitwerk::RealModName)
|
|
26
|
+
|
|
27
|
+
class << self
|
|
28
|
+
def cpaths; end
|
|
29
|
+
def mutex; end
|
|
30
|
+
def register(cpath, loader); end
|
|
31
|
+
def tracer; end
|
|
32
|
+
def unregister(loader); end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def disable_tracer_if_unneeded; end
|
|
37
|
+
def tracepoint_class_callback(event); end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class Zeitwerk::GemInflector < ::Zeitwerk::Inflector
|
|
42
|
+
def initialize(root_file); end
|
|
43
|
+
|
|
44
|
+
def camelize(basename, abspath); end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
class Zeitwerk::Inflector
|
|
48
|
+
def camelize(basename, _abspath); end
|
|
49
|
+
def inflect(inflections); end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
def overrides; end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
class Zeitwerk::Loader
|
|
57
|
+
include(::Zeitwerk::RealModName)
|
|
58
|
+
include(::Zeitwerk::Loader::Callbacks)
|
|
59
|
+
|
|
60
|
+
def initialize; end
|
|
61
|
+
|
|
62
|
+
def autoloaded_dirs; end
|
|
63
|
+
def autoloads; end
|
|
64
|
+
def collapse(*glob_patterns); end
|
|
65
|
+
def collapse_dirs; end
|
|
66
|
+
def collapse_glob_patterns; end
|
|
67
|
+
def dirs; end
|
|
68
|
+
def do_not_eager_load(*paths); end
|
|
69
|
+
def eager_load; end
|
|
70
|
+
def eager_load_exclusions; end
|
|
71
|
+
def enable_reloading; end
|
|
72
|
+
def ignore(*glob_patterns); end
|
|
73
|
+
def ignored_glob_patterns; end
|
|
74
|
+
def ignored_paths; end
|
|
75
|
+
def inflector; end
|
|
76
|
+
def inflector=(_arg0); end
|
|
77
|
+
def lazy_subdirs; end
|
|
78
|
+
def log!; end
|
|
79
|
+
def logger; end
|
|
80
|
+
def logger=(_arg0); end
|
|
81
|
+
def manages?(dir); end
|
|
82
|
+
def mutex; end
|
|
83
|
+
def mutex2; end
|
|
84
|
+
def on_load(cpath, &block); end
|
|
85
|
+
def on_load_callbacks; end
|
|
86
|
+
def preload(*paths); end
|
|
87
|
+
def preloads; end
|
|
88
|
+
def push_dir(path, namespace: T.unsafe(nil)); end
|
|
89
|
+
def reload; end
|
|
90
|
+
def reloading_enabled?; end
|
|
91
|
+
def root_dirs; end
|
|
92
|
+
def setup; end
|
|
93
|
+
def tag; end
|
|
94
|
+
def tag=(tag); end
|
|
95
|
+
def to_unload; end
|
|
96
|
+
def unload; end
|
|
97
|
+
def unloadable_cpath?(cpath); end
|
|
98
|
+
def unloadable_cpaths; end
|
|
99
|
+
|
|
100
|
+
private
|
|
101
|
+
|
|
102
|
+
def actual_root_dirs; end
|
|
103
|
+
def autoload_file(parent, cname, file); end
|
|
104
|
+
def autoload_for?(parent, cname); end
|
|
105
|
+
def autoload_subdir(parent, cname, subdir); end
|
|
106
|
+
def cdef?(parent, cname); end
|
|
107
|
+
def cpath(parent, cname); end
|
|
108
|
+
def dir?(path); end
|
|
109
|
+
def do_preload; end
|
|
110
|
+
def do_preload_abspath(abspath); end
|
|
111
|
+
def do_preload_dir(dir); end
|
|
112
|
+
def do_preload_file(file); end
|
|
113
|
+
def expand_glob_patterns(glob_patterns); end
|
|
114
|
+
def expand_paths(paths); end
|
|
115
|
+
def log(message); end
|
|
116
|
+
def ls(dir); end
|
|
117
|
+
def promote_namespace_from_implicit_to_explicit(dir:, file:, parent:, cname:); end
|
|
118
|
+
def raise_if_conflicting_directory(dir); end
|
|
119
|
+
def recompute_collapse_dirs; end
|
|
120
|
+
def recompute_ignored_paths; end
|
|
121
|
+
def register_explicit_namespace(cpath); end
|
|
122
|
+
def ruby?(path); end
|
|
123
|
+
def set_autoload(parent, cname, abspath); end
|
|
124
|
+
def set_autoloads_in_dir(dir, parent); end
|
|
125
|
+
def strict_autoload_path(parent, cname); end
|
|
126
|
+
def unload_autoload(parent, cname); end
|
|
127
|
+
def unload_cref(parent, cname); end
|
|
128
|
+
|
|
129
|
+
class << self
|
|
130
|
+
def all_dirs; end
|
|
131
|
+
def default_logger; end
|
|
132
|
+
def default_logger=(_arg0); end
|
|
133
|
+
def eager_load_all; end
|
|
134
|
+
def for_gem; end
|
|
135
|
+
def mutex; end
|
|
136
|
+
def mutex=(_arg0); end
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
module Zeitwerk::Loader::Callbacks
|
|
141
|
+
include(::Zeitwerk::RealModName)
|
|
142
|
+
|
|
143
|
+
def on_dir_autoloaded(dir); end
|
|
144
|
+
def on_file_autoloaded(file); end
|
|
145
|
+
def on_namespace_loaded(namespace); end
|
|
146
|
+
|
|
147
|
+
private
|
|
148
|
+
|
|
149
|
+
def run_on_load_callbacks(cpath); end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
class Zeitwerk::NameError < ::NameError
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
module Zeitwerk::RealModName
|
|
156
|
+
def real_mod_name(mod); end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
module Zeitwerk::Registry
|
|
160
|
+
class << self
|
|
161
|
+
def autoloads; end
|
|
162
|
+
def inception?(cpath); end
|
|
163
|
+
def inceptions; end
|
|
164
|
+
def loader_for(path); end
|
|
165
|
+
def loader_for_gem(root_file); end
|
|
166
|
+
def loaders; end
|
|
167
|
+
def loaders_managing_gems; end
|
|
168
|
+
def on_unload(loader); end
|
|
169
|
+
def register_autoload(loader, realpath); end
|
|
170
|
+
def register_inception(cpath, realpath, loader); end
|
|
171
|
+
def register_loader(loader); end
|
|
172
|
+
def unregister_autoload(realpath); end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
class Zeitwerk::ReloadingDisabledError < ::Zeitwerk::Error
|
|
177
|
+
end
|
data/sorbet/tapioca/require.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: packwerk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shopify Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-06-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -38,6 +38,20 @@ dependencies:
|
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: '0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: parallel
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: sorbet-runtime
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -182,25 +196,22 @@ files:
|
|
|
182
196
|
- dev.yml
|
|
183
197
|
- docs/cohesion.png
|
|
184
198
|
- exe/packwerk
|
|
199
|
+
- gemfiles/Gemfile-rails-6-0
|
|
185
200
|
- lib/packwerk.rb
|
|
186
201
|
- lib/packwerk/application_load_paths.rb
|
|
187
202
|
- lib/packwerk/application_validator.rb
|
|
188
203
|
- lib/packwerk/association_inspector.rb
|
|
189
|
-
- lib/packwerk/cache_deprecated_references.rb
|
|
190
204
|
- lib/packwerk/checker.rb
|
|
191
|
-
- lib/packwerk/checking_deprecated_references.rb
|
|
192
205
|
- lib/packwerk/cli.rb
|
|
193
|
-
- lib/packwerk/commands/detect_stale_violations_command.rb
|
|
194
|
-
- lib/packwerk/commands/offense_progress_marker.rb
|
|
195
206
|
- lib/packwerk/configuration.rb
|
|
196
207
|
- lib/packwerk/const_node_inspector.rb
|
|
197
208
|
- lib/packwerk/constant_discovery.rb
|
|
198
209
|
- lib/packwerk/constant_name_inspector.rb
|
|
199
210
|
- lib/packwerk/dependency_checker.rb
|
|
200
211
|
- lib/packwerk/deprecated_references.rb
|
|
201
|
-
- lib/packwerk/detect_stale_deprecated_references.rb
|
|
202
212
|
- lib/packwerk/file_processor.rb
|
|
203
213
|
- lib/packwerk/files_for_processing.rb
|
|
214
|
+
- lib/packwerk/formatters/offenses_formatter.rb
|
|
204
215
|
- lib/packwerk/formatters/progress_formatter.rb
|
|
205
216
|
- lib/packwerk/generators/application_validation.rb
|
|
206
217
|
- lib/packwerk/generators/configuration_file.rb
|
|
@@ -220,9 +231,14 @@ files:
|
|
|
220
231
|
- lib/packwerk/node_processor_factory.rb
|
|
221
232
|
- lib/packwerk/node_visitor.rb
|
|
222
233
|
- lib/packwerk/offense.rb
|
|
223
|
-
- lib/packwerk/
|
|
234
|
+
- lib/packwerk/offense_collection.rb
|
|
235
|
+
- lib/packwerk/offenses_formatter.rb
|
|
236
|
+
- lib/packwerk/output_style.rb
|
|
237
|
+
- lib/packwerk/output_styles/coloured.rb
|
|
238
|
+
- lib/packwerk/output_styles/plain.rb
|
|
224
239
|
- lib/packwerk/package.rb
|
|
225
240
|
- lib/packwerk/package_set.rb
|
|
241
|
+
- lib/packwerk/parse_run.rb
|
|
226
242
|
- lib/packwerk/parsed_constant_definitions.rb
|
|
227
243
|
- lib/packwerk/parsers.rb
|
|
228
244
|
- lib/packwerk/parsers/erb.rb
|
|
@@ -231,11 +247,11 @@ files:
|
|
|
231
247
|
- lib/packwerk/privacy_checker.rb
|
|
232
248
|
- lib/packwerk/reference.rb
|
|
233
249
|
- lib/packwerk/reference_extractor.rb
|
|
234
|
-
- lib/packwerk/
|
|
250
|
+
- lib/packwerk/reference_offense.rb
|
|
251
|
+
- lib/packwerk/result.rb
|
|
235
252
|
- lib/packwerk/run_context.rb
|
|
236
253
|
- lib/packwerk/sanity_checker.rb
|
|
237
254
|
- lib/packwerk/spring_command.rb
|
|
238
|
-
- lib/packwerk/updating_deprecated_references.rb
|
|
239
255
|
- lib/packwerk/version.rb
|
|
240
256
|
- lib/packwerk/violation_type.rb
|
|
241
257
|
- library.yml
|
|
@@ -243,75 +259,76 @@ files:
|
|
|
243
259
|
- service.yml
|
|
244
260
|
- shipit.rubygems.yml
|
|
245
261
|
- sorbet/config
|
|
246
|
-
- sorbet/rbi/gems/actioncable@
|
|
247
|
-
- sorbet/rbi/gems/actionmailbox@
|
|
248
|
-
- sorbet/rbi/gems/actionmailer@
|
|
249
|
-
- sorbet/rbi/gems/actionpack@
|
|
250
|
-
- sorbet/rbi/gems/actiontext@
|
|
251
|
-
- sorbet/rbi/gems/actionview@
|
|
252
|
-
- sorbet/rbi/gems/activejob@
|
|
253
|
-
- sorbet/rbi/gems/activemodel@
|
|
254
|
-
- sorbet/rbi/gems/activerecord@
|
|
255
|
-
- sorbet/rbi/gems/activestorage@
|
|
256
|
-
- sorbet/rbi/gems/activesupport@
|
|
257
|
-
- sorbet/rbi/gems/ast@2.4.
|
|
258
|
-
- sorbet/rbi/gems/better_html@1.0.
|
|
262
|
+
- sorbet/rbi/gems/actioncable@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
263
|
+
- sorbet/rbi/gems/actionmailbox@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
264
|
+
- sorbet/rbi/gems/actionmailer@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
265
|
+
- sorbet/rbi/gems/actionpack@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
266
|
+
- sorbet/rbi/gems/actiontext@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
267
|
+
- sorbet/rbi/gems/actionview@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
268
|
+
- sorbet/rbi/gems/activejob@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
269
|
+
- sorbet/rbi/gems/activemodel@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
270
|
+
- sorbet/rbi/gems/activerecord@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
271
|
+
- sorbet/rbi/gems/activestorage@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
272
|
+
- sorbet/rbi/gems/activesupport@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
273
|
+
- sorbet/rbi/gems/ast@2.4.2.rbi
|
|
274
|
+
- sorbet/rbi/gems/better_html@1.0.16.rbi
|
|
259
275
|
- sorbet/rbi/gems/builder@3.2.4.rbi
|
|
260
276
|
- sorbet/rbi/gems/byebug@11.1.3.rbi
|
|
261
277
|
- sorbet/rbi/gems/coderay@1.1.3.rbi
|
|
262
278
|
- sorbet/rbi/gems/colorize@0.8.1.rbi
|
|
263
279
|
- sorbet/rbi/gems/commander@4.5.2.rbi
|
|
264
|
-
- sorbet/rbi/gems/concurrent-ruby@1.1.
|
|
280
|
+
- sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi
|
|
265
281
|
- sorbet/rbi/gems/constant_resolver@0.1.5.rbi
|
|
266
282
|
- sorbet/rbi/gems/crass@1.0.6.rbi
|
|
267
|
-
- sorbet/rbi/gems/erubi@1.
|
|
283
|
+
- sorbet/rbi/gems/erubi@1.10.0.rbi
|
|
268
284
|
- sorbet/rbi/gems/globalid@0.4.2.rbi
|
|
269
285
|
- sorbet/rbi/gems/highline@2.0.3.rbi
|
|
270
286
|
- sorbet/rbi/gems/html_tokenizer@0.0.7.rbi
|
|
271
|
-
- sorbet/rbi/gems/i18n@1.8.
|
|
272
|
-
- sorbet/rbi/gems/
|
|
273
|
-
- sorbet/rbi/gems/loofah@2.5.0.rbi
|
|
287
|
+
- sorbet/rbi/gems/i18n@1.8.10.rbi
|
|
288
|
+
- sorbet/rbi/gems/loofah@2.9.0.rbi
|
|
274
289
|
- sorbet/rbi/gems/m@1.5.1.rbi
|
|
275
290
|
- sorbet/rbi/gems/mail@2.7.1.rbi
|
|
276
|
-
- sorbet/rbi/gems/marcel@0.
|
|
291
|
+
- sorbet/rbi/gems/marcel@1.0.0.rbi
|
|
277
292
|
- sorbet/rbi/gems/method_source@1.0.0.rbi
|
|
278
|
-
- sorbet/rbi/gems/
|
|
279
|
-
- sorbet/rbi/gems/
|
|
280
|
-
- sorbet/rbi/gems/
|
|
281
|
-
- sorbet/rbi/gems/
|
|
282
|
-
- sorbet/rbi/gems/
|
|
283
|
-
- sorbet/rbi/gems/
|
|
284
|
-
- sorbet/rbi/gems/
|
|
285
|
-
- sorbet/rbi/gems/
|
|
286
|
-
- sorbet/rbi/gems/
|
|
287
|
-
- sorbet/rbi/gems/
|
|
288
|
-
- sorbet/rbi/gems/
|
|
293
|
+
- sorbet/rbi/gems/mini_mime@1.0.3.rbi
|
|
294
|
+
- sorbet/rbi/gems/minitest-focus@1.2.1.rbi
|
|
295
|
+
- sorbet/rbi/gems/minitest@5.14.4.rbi
|
|
296
|
+
- sorbet/rbi/gems/mocha@1.12.0.rbi
|
|
297
|
+
- sorbet/rbi/gems/nio4r@2.5.7.rbi
|
|
298
|
+
- sorbet/rbi/gems/nokogiri@1.11.2.rbi
|
|
299
|
+
- sorbet/rbi/gems/parallel@1.20.1.rbi
|
|
300
|
+
- sorbet/rbi/gems/parlour@6.0.0.rbi
|
|
301
|
+
- sorbet/rbi/gems/parser@3.0.0.0.rbi
|
|
302
|
+
- sorbet/rbi/gems/pry@0.14.0.rbi
|
|
303
|
+
- sorbet/rbi/gems/racc@1.5.2.rbi
|
|
289
304
|
- sorbet/rbi/gems/rack-test@1.1.0.rbi
|
|
290
|
-
- sorbet/rbi/gems/rack@2.2.
|
|
305
|
+
- sorbet/rbi/gems/rack@2.2.3.rbi
|
|
291
306
|
- sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi
|
|
292
307
|
- sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi
|
|
293
|
-
- sorbet/rbi/gems/rails@
|
|
294
|
-
- sorbet/rbi/gems/railties@
|
|
308
|
+
- sorbet/rbi/gems/rails@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
309
|
+
- sorbet/rbi/gems/railties@7.0.0.alpha-d612542336d9a61381311c95a27d801bb4094779.rbi
|
|
295
310
|
- sorbet/rbi/gems/rainbow@3.0.0.rbi
|
|
296
|
-
- sorbet/rbi/gems/rake@13.0.
|
|
311
|
+
- sorbet/rbi/gems/rake@13.0.3.rbi
|
|
312
|
+
- sorbet/rbi/gems/regexp_parser@2.1.1.rbi
|
|
297
313
|
- sorbet/rbi/gems/rexml@3.2.4.rbi
|
|
298
|
-
- sorbet/rbi/gems/rubocop-
|
|
299
|
-
- sorbet/rbi/gems/rubocop-
|
|
300
|
-
- sorbet/rbi/gems/rubocop-
|
|
301
|
-
- sorbet/rbi/gems/rubocop@0.
|
|
302
|
-
- sorbet/rbi/gems/
|
|
314
|
+
- sorbet/rbi/gems/rubocop-ast@1.4.1.rbi
|
|
315
|
+
- sorbet/rbi/gems/rubocop-performance@1.10.2.rbi
|
|
316
|
+
- sorbet/rbi/gems/rubocop-shopify@2.0.1.rbi
|
|
317
|
+
- sorbet/rbi/gems/rubocop-sorbet@0.6.1.rbi
|
|
318
|
+
- sorbet/rbi/gems/rubocop@1.12.0.rbi
|
|
319
|
+
- sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi
|
|
303
320
|
- sorbet/rbi/gems/smart_properties@1.15.0.rbi
|
|
304
|
-
- sorbet/rbi/gems/spoom@1.0.
|
|
305
|
-
- sorbet/rbi/gems/spring@2.1.
|
|
306
|
-
- sorbet/rbi/gems/sprockets-rails@3.2.
|
|
307
|
-
- sorbet/rbi/gems/sprockets@4.0.
|
|
308
|
-
- sorbet/rbi/gems/tapioca@0.4.
|
|
309
|
-
- sorbet/rbi/gems/thor@1.0.
|
|
310
|
-
- sorbet/rbi/gems/tzinfo@2.0.
|
|
311
|
-
- sorbet/rbi/gems/unicode-display_width@
|
|
312
|
-
- sorbet/rbi/gems/websocket-driver@0.7.
|
|
313
|
-
- sorbet/rbi/gems/websocket-extensions@0.1.
|
|
314
|
-
- sorbet/rbi/gems/zeitwerk@2.
|
|
321
|
+
- sorbet/rbi/gems/spoom@1.1.0.rbi
|
|
322
|
+
- sorbet/rbi/gems/spring@2.1.1.rbi
|
|
323
|
+
- sorbet/rbi/gems/sprockets-rails@3.2.2.rbi
|
|
324
|
+
- sorbet/rbi/gems/sprockets@4.0.2.rbi
|
|
325
|
+
- sorbet/rbi/gems/tapioca@0.4.19.rbi
|
|
326
|
+
- sorbet/rbi/gems/thor@1.1.0.rbi
|
|
327
|
+
- sorbet/rbi/gems/tzinfo@2.0.4.rbi
|
|
328
|
+
- sorbet/rbi/gems/unicode-display_width@2.0.0.rbi
|
|
329
|
+
- sorbet/rbi/gems/websocket-driver@0.7.3.rbi
|
|
330
|
+
- sorbet/rbi/gems/websocket-extensions@0.1.5.rbi
|
|
331
|
+
- sorbet/rbi/gems/zeitwerk@2.4.2.rbi
|
|
315
332
|
- sorbet/tapioca/require.rb
|
|
316
333
|
homepage: https://github.com/Shopify/packwerk
|
|
317
334
|
licenses:
|
|
@@ -336,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
336
353
|
- !ruby/object:Gem::Version
|
|
337
354
|
version: '0'
|
|
338
355
|
requirements: []
|
|
339
|
-
rubygems_version: 3.
|
|
356
|
+
rubygems_version: 3.2.17
|
|
340
357
|
signing_key:
|
|
341
358
|
specification_version: 4
|
|
342
359
|
summary: Packages for applications based on the zeitwerk autoloader
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "sorbet-runtime"
|
|
5
|
-
|
|
6
|
-
require "packwerk/deprecated_references"
|
|
7
|
-
require "packwerk/reference"
|
|
8
|
-
require "packwerk/reference_lister"
|
|
9
|
-
require "packwerk/violation_type"
|
|
10
|
-
|
|
11
|
-
module Packwerk
|
|
12
|
-
class CacheDeprecatedReferences
|
|
13
|
-
extend T::Sig
|
|
14
|
-
extend T::Helpers
|
|
15
|
-
include ReferenceLister
|
|
16
|
-
abstract!
|
|
17
|
-
|
|
18
|
-
def initialize(root_path, deprecated_references = {})
|
|
19
|
-
@root_path = root_path
|
|
20
|
-
@deprecated_references = T.let(deprecated_references, T::Hash[String, Packwerk::DeprecatedReferences])
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
sig do
|
|
24
|
-
params(reference: Packwerk::Reference, violation_type: ViolationType)
|
|
25
|
-
.returns(T::Boolean)
|
|
26
|
-
.override
|
|
27
|
-
end
|
|
28
|
-
def listed?(reference, violation_type:)
|
|
29
|
-
deprecated_references = deprecated_references_for(reference.source_package)
|
|
30
|
-
deprecated_references.add_entries(reference, violation_type.serialize)
|
|
31
|
-
true
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
def deprecated_references_for(package)
|
|
37
|
-
@deprecated_references[package] ||= Packwerk::DeprecatedReferences.new(
|
|
38
|
-
package,
|
|
39
|
-
deprecated_references_file_for(package),
|
|
40
|
-
)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def deprecated_references_file_for(package)
|
|
44
|
-
File.join(@root_path, package.name, "deprecated_references.yml")
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "sorbet-runtime"
|
|
5
|
-
|
|
6
|
-
require "packwerk/reference_lister"
|
|
7
|
-
|
|
8
|
-
module Packwerk
|
|
9
|
-
class CheckingDeprecatedReferences
|
|
10
|
-
extend T::Sig
|
|
11
|
-
include ReferenceLister
|
|
12
|
-
|
|
13
|
-
def initialize(root_path)
|
|
14
|
-
@root_path = root_path
|
|
15
|
-
@deprecated_references = {}
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
sig do
|
|
19
|
-
params(reference: Packwerk::Reference, violation_type: ViolationType)
|
|
20
|
-
.returns(T::Boolean)
|
|
21
|
-
.override
|
|
22
|
-
end
|
|
23
|
-
def listed?(reference, violation_type:)
|
|
24
|
-
deprecated_references_for(reference.source_package).listed?(reference, violation_type: violation_type)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
|
|
29
|
-
def deprecated_references_for(source_package)
|
|
30
|
-
@deprecated_references[source_package] ||= Packwerk::DeprecatedReferences.new(
|
|
31
|
-
source_package,
|
|
32
|
-
deprecated_references_file_for(source_package),
|
|
33
|
-
)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def deprecated_references_file_for(package)
|
|
37
|
-
File.join(@root_path, package.name, "deprecated_references.yml")
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
require "packwerk/cli"
|
|
4
|
-
require "sorbet-runtime"
|
|
5
|
-
require "benchmark"
|
|
6
|
-
require "packwerk/configuration"
|
|
7
|
-
require "packwerk/formatters/progress_formatter"
|
|
8
|
-
require "packwerk/run_context"
|
|
9
|
-
require "packwerk/detect_stale_deprecated_references"
|
|
10
|
-
require "packwerk/commands/offense_progress_marker"
|
|
11
|
-
|
|
12
|
-
module Packwerk
|
|
13
|
-
class DetectStaleViolationsCommand
|
|
14
|
-
extend T::Sig
|
|
15
|
-
include OffenseProgressMarker
|
|
16
|
-
Result = Struct.new(:message, :status)
|
|
17
|
-
|
|
18
|
-
def initialize(files:, configuration:, run_context: nil, progress_formatter: nil, reference_lister: nil)
|
|
19
|
-
@configuration = configuration
|
|
20
|
-
@run_context = run_context
|
|
21
|
-
@reference_lister = reference_lister
|
|
22
|
-
@progress_formatter = progress_formatter
|
|
23
|
-
@files = files
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
sig { returns(Result) }
|
|
27
|
-
def run
|
|
28
|
-
@progress_formatter.started(@files)
|
|
29
|
-
|
|
30
|
-
all_offenses = T.let([], T.untyped)
|
|
31
|
-
execution_time = Benchmark.realtime do
|
|
32
|
-
all_offenses = @files.flat_map do |path|
|
|
33
|
-
run_context.process_file(file: path).tap do |offenses|
|
|
34
|
-
mark_progress(offenses: offenses, progress_formatter: @progress_formatter)
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
@progress_formatter.finished(execution_time)
|
|
40
|
-
calculate_result
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
private
|
|
44
|
-
|
|
45
|
-
def run_context
|
|
46
|
-
@run_context ||= Packwerk::RunContext.from_configuration(@configuration, reference_lister: reference_lister)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def reference_lister
|
|
50
|
-
@reference_lister ||= ::Packwerk::DetectStaleDeprecatedReferences.new(@configuration.root_path)
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
sig { returns Result }
|
|
54
|
-
def calculate_result
|
|
55
|
-
result_status = !reference_lister.stale_violations?
|
|
56
|
-
message = "There were stale violations found, please run `packwerk update`"
|
|
57
|
-
if result_status
|
|
58
|
-
message = "No stale violations detected"
|
|
59
|
-
end
|
|
60
|
-
Result.new(message, result_status)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
# typed: strict
|
|
3
|
-
require "sorbet-runtime"
|
|
4
|
-
require "packwerk/formatters/progress_formatter"
|
|
5
|
-
|
|
6
|
-
module Packwerk
|
|
7
|
-
module OffenseProgressMarker
|
|
8
|
-
extend T::Sig
|
|
9
|
-
|
|
10
|
-
sig do
|
|
11
|
-
params(
|
|
12
|
-
offenses: T::Array[T.nilable(::Packwerk::Offense)],
|
|
13
|
-
progress_formatter: ::Packwerk::Formatters::ProgressFormatter
|
|
14
|
-
).void
|
|
15
|
-
end
|
|
16
|
-
def mark_progress(offenses:, progress_formatter:)
|
|
17
|
-
if offenses.empty?
|
|
18
|
-
progress_formatter.mark_as_inspected
|
|
19
|
-
else
|
|
20
|
-
progress_formatter.mark_as_failed
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# typed: strict
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "packwerk/cache_deprecated_references"
|
|
5
|
-
|
|
6
|
-
module Packwerk
|
|
7
|
-
class DetectStaleDeprecatedReferences < CacheDeprecatedReferences
|
|
8
|
-
extend T::Sig
|
|
9
|
-
sig { returns(T::Boolean) }
|
|
10
|
-
def stale_violations?
|
|
11
|
-
@deprecated_references.values.any?(&:stale_violations?)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# typed: true
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
module Packwerk
|
|
5
|
-
module OutputStyles
|
|
6
|
-
class Plain
|
|
7
|
-
class << self
|
|
8
|
-
def reset
|
|
9
|
-
""
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def filename
|
|
13
|
-
""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def error
|
|
17
|
-
""
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# See https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit for ANSI escape colour codes
|
|
23
|
-
class Coloured
|
|
24
|
-
class << self
|
|
25
|
-
def reset
|
|
26
|
-
"\033[m"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def filename
|
|
30
|
-
# 36 is foreground cyan
|
|
31
|
-
"\033[36m"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def error
|
|
35
|
-
# 31 is foreground red
|
|
36
|
-
"\033[31m"
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# typed: strict
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require "sorbet-runtime"
|
|
5
|
-
|
|
6
|
-
require "packwerk/reference"
|
|
7
|
-
require "packwerk/violation_type"
|
|
8
|
-
|
|
9
|
-
module Packwerk
|
|
10
|
-
module ReferenceLister
|
|
11
|
-
extend T::Sig
|
|
12
|
-
extend T::Helpers
|
|
13
|
-
|
|
14
|
-
interface!
|
|
15
|
-
|
|
16
|
-
sig do
|
|
17
|
-
params(reference: Packwerk::Reference, violation_type: ViolationType)
|
|
18
|
-
.returns(T::Boolean)
|
|
19
|
-
.abstract
|
|
20
|
-
end
|
|
21
|
-
def listed?(reference, violation_type:); end
|
|
22
|
-
end
|
|
23
|
-
end
|