Optimize format.sh for 63% faster execution with parallel processing #6258
+283
−114
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.
Motivation
The
format.shscript currently runs 10 formatting and linting operations sequentially, taking approximately 23 seconds locally and similar time in CI. This creates a slow feedback loop for developers and wastes CI resources by not utilizing available CPU cores.This PR optimizes the script to run operations in parallel, reducing wall clock time by 63% while maintaining full backward compatibility.
Changes
Implemented three key optimizations:
1. Parallel Shellcheck Execution
utils/scripts/shellcheck.shto usexargs -P 4for parallel processing2. Parallel Manifest YAML Parsing
ThreadPoolExecutortoutils/manifest/_internal/validate.py3. Progressive Output with Visual Feedback
wait_and_display()function informat.sh[\|/-])Performance Improvements
Local Development (macOS, Apple Silicon)
Expected CI Performance (GitHub Actions, ubuntu-latest)
Note: Exact CI timings will be validated once this PR runs through the pipeline.
Backward Compatibility
All changes maintain full backward compatibility:
./format.shor./format.sh --check)Visual Example
Before:
After:
Workflow
🚀 Once your PR is reviewed and the CI green, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist
tests/ormanifests/is modified ? I have the approval from R&P teambuild-XXX-imagelabel is present