-
Notifications
You must be signed in to change notification settings - Fork 283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
monorepo: ci, lint, package.json overhaul #3058
Conversation
3a8d46c
to
ea6db11
Compare
- restructure eslint configuration for better isolation - hoist many package.json script deps to root package.json - fix all `clean` scripts
Cleans up workflows and runs on Windows as well
eb37284
to
51a3fe0
Compare
Use spawn isntead of exec to get around buffering issues and make code less branchy. Add --scriptArgs flag to pass extra flags directly to an npm script. An unfortunately hacky way to support passing `--quiet` to eslint for CI.
a91905e
to
cd88525
Compare
}; | ||
}, {}); | ||
|
||
return new Promise((resolve, reject) => async.auto(tasks, concurrency, (err) => (err ? reject(err) : resolve()))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
async.auto
is designed for exactly this problem.
The main reason I removed my old implementation is that it suffered from "head-of-line blocking". In particular, tasks were executed concurrently in groups. As a consequence, the slowest task in a group determines how long it takes to execute the group of tasks.
async.auto
ensures that, if possible, N
tasks are always being executed, where N = concurrency
. The slight downside is that the async
library generally does not play well with Promises or async/await.
Also uses async.auto rather than custom dependency resolution code
cd88525
to
c173859
Compare
Fixes a variety of open issues and some other tooling/monorepo clean up tasks.
Fixes #2415
Fixes #2416
Fixes #2417
Fixes #2418
Fixes #2419
Fixes #2420
Fixes #2421
Fixes #2422
Fixes #2423
Fixes #2424
Fixes #2425
Fixes #2426
Fixes #2428