Repository navigation
Relocate root pipeline relative refs to the output dir (v0.1.32) - #77
Merged
Volv-G merged 1 commit intoOct 4, 2026
Conversation
The root @pipeline's relative file:// / resolve:// refs were emitted verbatim and then validated against the output dir, so compiling anywhere but the source dir failed. Apply the existing child relocation to the root too.
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.
(AI-assisted)
What
pipelines compilenow works for any-olocation when the root@pipelineuses relative local refs. Version 0.1.32.Before, only subpipeline children had their author-written relative
file:///resolve://refs rewritten from the source dir to the output dir. The root's refs were emitted verbatim and then validated against the output dir. So compilingpipeline.pywithref(url="file://../x/config.yaml")intotemp/or/tmpfailed withtarget does not exist relative to the output directory.How
_relocate_local_refs, reusing_relocate_relative_local_url) also runs for the root. The source dir is the script's dir and the target is the output YAML's dir.@task, subpipeline,@registered) are skipped, as before. Absolutefile:///, remote/nested-remote andname:refs are untouched.Evidence
file://../comp/…andresolve://../comp/…#fragrefs to three places: the source dir (URLs verbatim), a deepertemp/dir, and an unrelated dir. Each output hydrates. The last two fail without the fix.noop.yaml..pynext to the YAML whose relative refs it keeps.temp/and/tmp/x/. Compiling in place gives byte-identical output, root and subgraphs, compared with 0.1.27.Behaviour note
A relative ref that only resolved because the component was copied next to the compiled output now fails. Relative refs are always read relative to the source file.