Skip to content
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

[rush] Rework execution engine #3043

Merged
merged 12 commits into from
Jan 20, 2022
Merged

Conversation

dmichon-msft
Copy link
Contributor

@dmichon-msft dmichon-msft commented Nov 30, 2021

Summary

Reworks the task execution engine in Rush to interact with the task queue using the ECMAScript async iteration protocol.

Details

Creates a new AsyncTaskQueue component that implements the async iteration protocol (Symbol.asyncIterator)

Updates the TaskSelector to be reusable within a watch mode process for multiple build passes, moving the pass-specific parameters to the createTasks() method. Ensures that all dependency relationships between tasks are preserved, even if the across tasks that are excluded from a build.

Adds a local vscode launch configuration to debug a unit test file in a Heft project.

Updates interaction with the build cache such that, if a dependency task is skipped for any reason, the task will not write to the build cache.

How it was tested

Various local build commands.
Verified that unsafe selection parameters (e.g. -o rush-lib) work as expected.

.vscode/launch.json Outdated Show resolved Hide resolved
apps/rush-lib/src/logic/taskRunner/AsyncTaskQueue.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/logic/taskRunner/AsyncTaskQueue.ts Outdated Show resolved Hide resolved
@dmichon-msft dmichon-msft force-pushed the scheduler-rework branch 2 times, most recently from fdac3f6 to a5fcac4 Compare January 4, 2022 23:41
.vscode/launch.json Outdated Show resolved Hide resolved
apps/rush-lib/src/api/CommandLineConfiguration.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/api/CommandLineConfiguration.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/api/CommandLineConfiguration.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/api/CommandLineConfiguration.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/logic/ProjectTaskSelector.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/logic/ProjectTaskSelector.ts Outdated Show resolved Hide resolved
apps/rush-lib/src/logic/taskExecution/ProjectTaskRunner.ts Outdated Show resolved Hide resolved
common/reviews/api/rush-lib.api.md Outdated Show resolved Hide resolved
@dmichon-msft dmichon-msft force-pushed the scheduler-rework branch 3 times, most recently from d4bf2f5 to abe0709 Compare January 7, 2022 23:43
@iclanton iclanton enabled auto-merge January 20, 2022 22:44
@iclanton iclanton merged commit 765a4c2 into microsoft:master Jan 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants