Repository navigation
[rush] Add an external execution planning contract - #6204
Open
Yashwanth Reddy Verupaka (yashwanth195) wants to merge 1 commit into
Open
Yashwanth Reddy Verupaka (yashwanth195) wants to merge 1 commit into
Yashwanth Reddy Verupaka (yashwanth195) wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Export executable Rush graphs without scheduling operations or running cache/environment hooks. This adds a pure planning API, explicit per-record environment overrides, and a versioned BuildXL graph contract.
Details
taskfield, output folders, warning policy, and cache exclusions. Validate identities, edges and cycles before pruning disabled/no-op nodes; native shards remain cacheable unless explicitly excluded.--no-daemon; watch export is rejected. Custom executable runners must exposegetCommandForExecution(). Native operation execution remains on its existing lifecycle.This is standalone on
main. Heft shard identity, manifests, collation, Jest/coverage/JUnit integration and end-to-end BuildXL/QTest adoption are deferred, not implied by this contract. No input-hashing or Heft-parameter changes are included.How it was tested
Windows, Node 24.22.1, repository-pinned Rush 5.182.0. Tests use the packages' existing Heft/Jest configuration and test locations.
node common\scripts\install-run-rush.js build --only @microsoft/rush-lib --only @rushstack/rush-buildxl-graph-plugin --production --parallelism 2node common\scripts\install-run-rush.js build --only @rushstack/rush-buildxl-graph-plugin --production --parallelism 2libraries\rush-libnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern OperationGraph --max-workers 2libraries\rush-libnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern ShellOperationRunner --max-workers 2libraries\rush-libnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern RushCommandLineParser --max-workers 2rush-plugins\rush-buildxl-graph-pluginnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern Graph --max-workers 2rush-plugins\rush-buildxl-graph-pluginnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern DropBuildGraphPlugin --max-workers 2libraries\rush-daemonnode ..\..\common\scripts\install-run-rushx.js _phase:test --test-path-pattern 'WorkspaceEngineComponentFactory\.test' --max-workers 2node common\scripts\install-run-rush.js prettiernode common\scripts\install-run-rush.js change --verify --target-branch upstream/main --no-fetchFinal retained results: 300 passed, 1 existing skip, with no unresolved failures. Passing suites were not rerun after changes confined to the exporter test.
Prerequisites and the daemon built successfully during
node common\scripts\install-run-rush.js build --to @rushstack/rush-buildxl-graph-plugin --to @rushstack/rush-daemon --production --parallelism 4; that invocation failed on a subsequently corrected exporter test type mismatch. The final package builds above passed. Initial test-only compile/lint issues were corrected; Windows shell parsing prevented combined|selectors from launching, so successful runs used the simple selectors above. Existing fixture naming/phantom-dependency warnings were not suppressed. No full sharding acceptance or downstream BuildXL/QTest run was performed.Impacted documentation
Updated the BuildXL graph plugin README, API documentation/reports and Rush changefiles. The README describes consumer responsibilities and the deferred integration scope. No JSON schemas changed.