packwerk 1.1.0 → 1.3.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 +17 -8
- data/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +129 -111
- data/README.md +10 -3
- data/TROUBLESHOOT.md +2 -2
- data/USAGE.md +30 -30
- data/bin/m +29 -0
- data/bin/rake +29 -0
- data/bin/rubocop +29 -0
- data/bin/srb +29 -0
- data/bin/tapioca +29 -0
- data/dev.yml +7 -7
- data/exe/packwerk +1 -1
- data/gemfiles/Gemfile-rails-6-0 +22 -0
- data/lib/packwerk.rb +72 -34
- data/lib/packwerk/application_load_paths.rb +21 -10
- data/lib/packwerk/application_validator.rb +104 -84
- data/lib/packwerk/association_inspector.rb +23 -11
- data/lib/packwerk/checker.rb +4 -7
- data/lib/packwerk/cli.rb +36 -129
- 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 +8 -10
- data/lib/packwerk/file_processor.rb +0 -4
- data/lib/packwerk/formatters/offenses_formatter.rb +52 -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 +19 -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 +17 -1
- data/lib/packwerk/package_set.rb +2 -3
- data/lib/packwerk/parse_run.rb +106 -0
- data/lib/packwerk/parsed_constant_definitions.rb +2 -4
- data/lib/packwerk/parsers.rb +0 -2
- data/lib/packwerk/parsers/erb.rb +0 -2
- data/lib/packwerk/parsers/factory.rb +1 -3
- 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/version.rb +1 -1
- data/lib/packwerk/violation_type.rb +0 -2
- 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 +83 -65
- 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/generators/application_validation.rb +0 -62
- data/lib/packwerk/generators/templates/packwerk +0 -23
- data/lib/packwerk/generators/templates/packwerk_validator_test.rb +0 -11
- data/lib/packwerk/output_styles.rb +0 -41
- data/lib/packwerk/reference_lister.rb +0 -23
- data/lib/packwerk/spring_command.rb +0 -28
- 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
@@ -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,62 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Packwerk
|
5
|
-
module Generators
|
6
|
-
class ApplicationValidation
|
7
|
-
class << self
|
8
|
-
def generate(for_rails_app: false, root: ".", out: $stdout)
|
9
|
-
new(root, out: out).generate(for_rails_app: for_rails_app)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def initialize(root, out: $stdout)
|
14
|
-
@root = root
|
15
|
-
@out = out
|
16
|
-
end
|
17
|
-
|
18
|
-
def generate(for_rails_app:)
|
19
|
-
@out.puts("📦 Generating application validator...")
|
20
|
-
if for_rails_app
|
21
|
-
generate_packwerk_validate_script
|
22
|
-
else
|
23
|
-
generate_validation_test
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def generate_packwerk_validate_script
|
30
|
-
destination_file_path = File.join(@root, "bin")
|
31
|
-
FileUtils.mkdir_p(destination_file_path)
|
32
|
-
|
33
|
-
if File.exist?(File.join(destination_file_path, "packwerk"))
|
34
|
-
@out.puts("⚠️ Packwerk application validation bin script already exists.")
|
35
|
-
return true
|
36
|
-
end
|
37
|
-
|
38
|
-
source_file_path = File.expand_path("templates/packwerk", __dir__)
|
39
|
-
FileUtils.cp(source_file_path, destination_file_path)
|
40
|
-
|
41
|
-
@out.puts("✅ Packwerk application validation bin script generated in #{destination_file_path}")
|
42
|
-
true
|
43
|
-
end
|
44
|
-
|
45
|
-
def generate_validation_test
|
46
|
-
destination_file_path = File.join(@root, "test")
|
47
|
-
FileUtils.mkdir_p(destination_file_path)
|
48
|
-
|
49
|
-
if File.exist?(File.join(destination_file_path, "packwerk_validator_test.rb"))
|
50
|
-
@out.puts("⚠️ Packwerk application validation test already exists.")
|
51
|
-
return true
|
52
|
-
end
|
53
|
-
|
54
|
-
source_file_path = File.expand_path("templates/packwerk_validator_test.rb", __dir__)
|
55
|
-
FileUtils.cp(source_file_path, destination_file_path)
|
56
|
-
|
57
|
-
@out.puts("✅ Packwerk application validation test generated in #{destination_file_path}")
|
58
|
-
true
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
# This file was auto-generated by Packwerk through `packwerk init`
|
5
|
-
|
6
|
-
# Needs to be run in test environment in order to have test helper paths available in the autoload paths
|
7
|
-
ENV["RAILS_ENV"] = "test"
|
8
|
-
|
9
|
-
# Command line arguments needs to be duplicated because spring modifies it
|
10
|
-
packwerk_argv = ARGV.dup
|
11
|
-
|
12
|
-
begin
|
13
|
-
load(File.expand_path("spring", __dir__))
|
14
|
-
rescue LoadError => e
|
15
|
-
raise unless e.message.include?("spring")
|
16
|
-
end
|
17
|
-
|
18
|
-
require File.expand_path("../config/environment", __dir__)
|
19
|
-
|
20
|
-
require "packwerk"
|
21
|
-
|
22
|
-
cli = Packwerk::Cli.new
|
23
|
-
cli.run(packwerk_argv)
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "test_helper"
|
4
|
-
require "packwerk"
|
5
|
-
|
6
|
-
# This test is necessary to make sure that the package system is working correctly
|
7
|
-
class PackwerkValidatorTest < Minitest::Test
|
8
|
-
def test_the_application_is_correctly_set_up_for_the_package_system
|
9
|
-
assert(Packwerk::Cli.new.execute_command(["validate"]))
|
10
|
-
end
|
11
|
-
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
|
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# typed: ignore
|
3
|
-
|
4
|
-
require "spring/commands"
|
5
|
-
|
6
|
-
module Packwerk
|
7
|
-
class SpringCommand
|
8
|
-
def env(*)
|
9
|
-
# Packwerk needs to run in a test environment, which has a set of autoload paths that are
|
10
|
-
# often a superset of the dev/prod paths (for example, test/support/helpers)
|
11
|
-
"test"
|
12
|
-
end
|
13
|
-
|
14
|
-
def exec_name
|
15
|
-
"packwerk"
|
16
|
-
end
|
17
|
-
|
18
|
-
def gem_name
|
19
|
-
"packwerk"
|
20
|
-
end
|
21
|
-
|
22
|
-
def call
|
23
|
-
load(Gem.bin_path(gem_name, exec_name))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
Spring.register_command("packwerk", SpringCommand.new)
|
28
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require "packwerk/cache_deprecated_references"
|
5
|
-
|
6
|
-
module Packwerk
|
7
|
-
class UpdatingDeprecatedReferences < CacheDeprecatedReferences
|
8
|
-
def dump_deprecated_references_files
|
9
|
-
@deprecated_references.each do |_, deprecated_references_file|
|
10
|
-
deprecated_references_file.dump
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,8 +0,0 @@
|
|
1
|
-
# DO NOT EDIT MANUALLY
|
2
|
-
# This is an autogenerated file for types exported from the `jaro_winkler` gem.
|
3
|
-
# Please instead update this file by running `dev typecheck update`.
|
4
|
-
|
5
|
-
# typed: true
|
6
|
-
|
7
|
-
# THIS IS AN EMPTY RBI FILE.
|
8
|
-
# see https://github.com/Shopify/tapioca/blob/master/README.md#manual-gem-requires
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# DO NOT EDIT MANUALLY
|
2
|
-
# This is an autogenerated file for types exported from the `marcel` gem.
|
3
|
-
# Please instead update this file by running `dev typecheck update`.
|
4
|
-
|
5
|
-
# typed: true
|
6
|
-
|
7
|
-
module Marcel
|
8
|
-
end
|
9
|
-
|
10
|
-
class Marcel::MimeType
|
11
|
-
class << self
|
12
|
-
def extend(type, extensions: T.unsafe(nil), parents: T.unsafe(nil), magic: T.unsafe(nil)); end
|
13
|
-
def for(pathname_or_io = T.unsafe(nil), name: T.unsafe(nil), extension: T.unsafe(nil), declared_type: T.unsafe(nil)); end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def for_data(pathname_or_io); end
|
18
|
-
def for_declared_type(declared_type); end
|
19
|
-
def for_extension(extension); end
|
20
|
-
def for_name(name); end
|
21
|
-
def most_specific_type(from_magic_type, fallback_type); end
|
22
|
-
def parse_media_type(content_type); end
|
23
|
-
def root_types(type); end
|
24
|
-
def with_io(pathname_or_io, &block); end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
Marcel::MimeType::BINARY = T.let(T.unsafe(nil), String)
|
29
|
-
|
30
|
-
Marcel::VERSION = T.let(T.unsafe(nil), String)
|