[rush] Separate Skip and Build Cache, add flag#7
Merged
chengcyber merged 1 commit intoAug 30, 2023
Conversation
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
Adds an explicit opt-in flag
cacheableto theIOperationRunnerinterface. Implementations that set it totruewill get skip detection and build cache behavior. Implementations that set it tofalsewill not. However, build cache will still propagate cache write safety across such operations.Details
Splits out the
LegacySkipPluginfrom theCacheableOperationPlugin. The legacy skip behavior will now be completely disabled if the build cache is enabled, or the only logic running.Consolidates reading of the
rush-project.jsonfiles into the startup of the build. This front-loads any issues encountered with the config files.Removes the
commandToRunpublic property onIOperationRunnerin favor of a generalgetConfigHash(): stringmethod that serves the same function of providing an opaque representation of the configuration to be fed to the build cache hash or stored in the legacy project-deps file.Front-loads the calculation of which operations do not support the build cache so that references to the
RushProjectConfigurationinstances can be all in one place and less data needs to be ferried around.How it was tested
Local builds using the modified code.
Impacted documentation
Plugin authoring.