fix: prevent partial dependency output#188
Draft
bdice wants to merge 3 commits into
Draft
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
--cleanuntil rendering succeedsRoot cause
make_dependency_files()published each result from inside its generation loop. If a later matrix entry or output raised a validation or rendering error, earlier results from the same invocation had already been printed or written.The new pipeline first resolves generation requests, then renders all outputs without mutations, and finally publishes the completed result. Requirements and conda files render independently. Pyproject requests targeting the same file share one in-memory TOML document, including when their configured paths are lexical or symlink aliases.
This guarantees that generation-time errors do not emit stdout, create or overwrite output files, or remove files requested through
--clean. Write-time operating-system failures remain outside the multi-file guarantee.Validation
pytest -q(87 passed)58f358a0ccb16c39bec53d6a02030db11665e503: nonzero exit with zero stdout and the original map-input errorgit diff --checkContext
Discovered while investigating rapidsai/kvikio#996, where an invalid requirements mapping was correctly rejected but downstream orchestration retained other partial outputs. The companion orchestration fix is rapidsai/devcontainers#736.