[tooling] Apply Python lint & formatting to entire repo #272
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.
This PR reduces complexity and number of invocations to lint and format the repository -- it removes all per-subfolder linting and formatting in favor of one repo-wide lint and format.
It could be argued that lint and format per subfolder might be useful to developers who want to focus on just that subfolder, ignoring everything else. I do not think this is a sufficiently valid use case, however, since we should generally be able to just autoformat everything and have it solve nearly all problems -- it is unlikely a developer will need to isolate formatting or linting attempts to just one portion of the repository. And, enabling that possibility introduces a substantial amount of complexity relative to the single repo-wide operations.
It could also be argued that it would be useful for a developer to not need to change folders in order to, e.g.,
make format
-- if they're in the monitoring/uss_qualifier folder, they should be able to simplymake format
directly from there instead of changing back to the repo root to run themake format
command. I agree this is not fully invalid, but I believe the developer cycles lost to maintaining the complexity of supporting multi-folder make targets far exceeds any time saved by avoiding a second terminal always in the repo root.