Turn off typechecking when called from exe #295
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What are you trying to accomplish?
Some better typing, followed by disabling Sorbet when called from the executable / spring command.
What approach did you choose and why?
Type checking is useful, but I don't see use for it to be enabled in "production" use of the gem. When packwerk is validating or checking a codebase, type checking just slows it down and provides unhelpful errors to the user when something internal fails.
What should reviewers focus on?
Here's some benchmarks to compare runs on a huge app. I think this makes packwerk 20% faster.
bundle exec packwerk check 79.08s user 23.77s system 298% cpu 34.415 total
bundle exec packwerk check 973.03s user 30.03s system 624% cpu 2:40.58 total
(uncached)bundle exec packwerk check 104.68s user 24.02s system 226% cpu 56.929 total
bundle exec packwerk check 1380.94s user 33.25s system 634% cpu 3:43.04 total
(uncached)Type of Change
Additional Release Notes
Include any notes here to include in the release description. For example, if you selected "breaking change" above, leave notes on how users can transition to this version.
If no additional notes are necessary, delete this section or leave it unchanged.
Checklist