tiktok / sparo

Sparo optimizes performance of Git operations for your large frontend monorepo.
https://tiktok.github.io/sparo/
MIT License
162 stars 8 forks source link

Feat quicker selection #93

Closed chengcyber closed 1 week ago

chengcyber commented 1 week ago

Basic Checks

Have you run rush change for this change?

If No, please run rush change before, this is necessary.

If adding a new feature, the PR's description includes:

Does this PR introduce a breaking change? (check one)

If yes, please describe the impact and migration path for existing applications:

Summary

Introduce a quicker algorithm if applicable.

Detail

BEFORE: running sparo checkout --to <package_name> always internally invoking rush list to get a full functionality of getting target folders by selection parameters from Rush.js.

AFTER: if running sparo checkout --to/--from with named package only, a new algorithm will be opted-in to avoid the time to preparation the local Rush.js. That says that the new algorithm doesn't need to bootstrap local Rush.js which save some time.

Some cases:

sparo checkout --to foo --from bar opt in sparo checkout --to subspace:subspace_name fallback to rush list sparo checkout --to tag:tag_name fallback to rush list

How to test it

Local

jzhang026 commented 1 week ago

I see. we implemented a slim version of RushConfiguration. then based on user inputs, get all the dependents packages. so that we get rid of rush list