solver: add ResolverCache support #6293
Merged
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.
New ResolverCache interface in JobContext allows build jobs to memorize and synchronize accesses to mutable remote resources.
This is to make sure that when multiple parts of the same build job, or build job and source metadata resolver access the same remote resources, it remains the same for the duration of the single build request, even if data happens to change on the remote side.
Fix such a possible case in the HTTP source. Even if the server now returns completely different data, if the same URL was accessed once for the ongoing build, then the initial contents are always used until the build completes.
LLM disclaimer: Unit tests for resolverCache and combinedResolverCache were initially GPT-5 generated