disallow run if an update is required
#5964
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.
Overview
This PR equips
runwith an additional "staleness" check. Arun xis considered "stale" ifx(whether it exists in the codebase or is shadowed in the latest typechecked scratch file) depends (transitively) on some uncommitted update in the latest typechecked scratch file, via some intermediate dependency in the codebase.The intention is to prevent the user from accidentally running old stuff, as they are likely to feel like their uncommitted updates in the latest typechecked scratch file are properly shadowing codebase definitions, especially since the
xinrun xcan come from the scratch file.If a run is stale, we print a path from the thing to an uncommitted updated thing in the scratch file, and recommend running
edit.dependentson that thing. (N.B. anedit.dependenciesis more like what you want here). Alternatively, we could recommend they comment out everything in the scratch file other than the thing they're trying to run.Test coverage
I added a transcript to demonstrate the staleness check. I couldn't find where
runwas under test, because there wasn't a predicatably namedrun.md, so I also just tested a couple happy paths.