[rush] Rework ProjectChangeAnalyzer, operation hashes#3696
[rush] Rework ProjectChangeAnalyzer, operation hashes#3696dmichon-msft wants to merge 4 commits into
Conversation
| for (const item of record.consumers) { | ||
| if (blockCacheWrite) { | ||
| item.runner.isCacheWriteAllowed = false; | ||
| item.isCacheWriteAllowed = false; |
There was a problem hiding this comment.
In this context, "blockCacheWrite" might be true if the operation failed, right? In previous implementation this also meant no downstream operations could be written to cache. Does this change that behavior?
There was a problem hiding this comment.
Behavior here should be preserved.
|
Pulled down the branch and confirmed it seems to successfully read/write cache entries (in rushstack and our local monorepo). The move of a couple flags from the runner down to the actual tasks doesn't seem to be accompanied by any new logic, so just curious if there is an expected change in behavior there. |
|
After discussion with @iclanton I'll be splitting this into a few different pieces to try to scope it more cleanly. I'm aware that the current iteration works, the main gap is that it has currently completely disabled skip detection (in preparation for making it be based on build cache hashes and file mtimes). |
|
This PR as currently authored is now impossible due to #3824, which prevents the full hash of an operation from being calculated until all of its dependencies have executed. |
Summary
Performs the following major architectural rework of Rush phased commands:
ProjectChangeAnalyzerto a mostly synchronous API, abstracting out the contribution fromrush-project.jsoninto afilterargumentDetails
Currently missing:
How it was tested
The test suite, local builds on another repository