pub fn read_project(project_path: &Path) -> Result<Project, JoyError>Expand description
Read project.yaml from an explicit path, applying schema migrations.
All Project deserialisation paths must funnel through this function
(or load_project) so legacy auth-field renames are picked up
uniformly. When a migration changes the parsed value, a one-line
deprecation warning is emitted to stderr pointing at joy update.
The on-disk file is not rewritten - persistence is explicit (per
ADR-035). The warning is emitted at most once per process so a
single command run does not flood stderr even when multiple code
paths load project.yaml.