Skip to content

Run every command from anywhere inside the model (closes #7) - #9

Merged
dbose merged 1 commit into
mainfrom
bug7-inconsistent-working-directory
Sep 10, 2026
Merged

dbose merged 1 commit into
mainfrom
bug7-inconsistent-working-directory

Conversation

@dbose

@dbose dbose commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Commands resolved the model dir from the exact directory the user stood in, so adding an entity, generating docs, and the rest each only worked from one specific folder — forcing a cd back and forth between the project root and the model.

ModelRepo.load and apply_command now walk UP from the given path to the nearest ancestor holding mdl-project.yaml (new find_project_root in repo.py), so any command works from the model dir or any subdirectory of it. When no project is found (e.g. run from the root ABOVE the model), the error now names the model subdir and how to target it — "no mdl-project.yaml in . — the model is in my-model/ (run from there, or pass -m my-model)" — instead of a bare, confusing message. The new CLI commands also catch that FileNotFoundError and print it plainly rather than a traceback.

Note: current source already used mdl-project.yaml consistently, so the reporter's secondary ".yml vs .yaml" mismatch (v0.1.1) no longer exists.

Tests: new test_project_root.py covers load/add from nested dirs and both error messages. 553 passed, 1 skipped; ruff clean; verified on the CLI against the issue's exact layout.

Commands resolved the model dir from the exact directory the user stood in, so
adding an entity, generating docs, and the rest each only worked from one specific
folder — forcing a cd back and forth between the project root and the model.

ModelRepo.load and apply_command now walk UP from the given path to the nearest
ancestor holding mdl-project.yaml (new find_project_root in repo.py), so any command
works from the model dir or any subdirectory of it. When no project is found (e.g.
run from the root ABOVE the model), the error now names the model subdir and how to
target it — "no mdl-project.yaml in . — the model is in my-model/ (run from there, or
pass -m my-model)" — instead of a bare, confusing message. The `new` CLI commands
also catch that FileNotFoundError and print it plainly rather than a traceback.

Note: current source already used mdl-project.yaml consistently, so the reporter's
secondary ".yml vs .yaml" mismatch (v0.1.1) no longer exists.

Tests: new test_project_root.py covers load/add from nested dirs and both error
messages. 553 passed, 1 skipped; ruff clean; verified on the CLI against the issue's
exact layout.
@dbose
dbose merged commit db75d21 into main Sep 10, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Inconsistent working directory: docs generation and "add entity" require different CWDs

1 participant