validate and inspect resolve --source relative to the workflow file, but build resolves it relative to the current directory. So the same command line means two different folders depending on which subcommand you run.
Repro (from the folder above the project):
concore init demo
concore validate demo/workflow.graphml # passes
concore build demo/workflow.graphml # Error: Source directory 'src' not found
concore build demo/workflow.graphml --source demo/src # works
concore validate demo/workflow.graphml --source demo/src # looks in demo/demo/src
The last one is the worst part. It only warns Source directory not found: demo/demo/src, skips the source file checks, and still says valid with exit 0. I deleted demo/src/script.py and it still passed.
Expected: --source means the same path for every command, so validate catches what build will fail on.
Actual: validate/inspect use workflow_path.parent / source_dir (validate.py line 135, inspect.py lines 64, 136, 223), build uses Path(source).resolve().
Tested on dev at 8e0913e, Python 3.12.10
validateandinspectresolve--sourcerelative to the workflow file, butbuildresolves it relative to the current directory. So the same command line means two different folders depending on which subcommand you run.Repro (from the folder above the project):
The last one is the worst part. It only warns
Source directory not found: demo/demo/src, skips the source file checks, and still says valid with exit 0. I deleteddemo/src/script.pyand it still passed.Expected:
--sourcemeans the same path for every command, so validate catches what build will fail on.Actual: validate/inspect use
workflow_path.parent / source_dir(validate.py line 135, inspect.py lines 64, 136, 223), build usesPath(source).resolve().Tested on dev at 8e0913e, Python 3.12.10