julia: fix workspaces by allowing dep files to be in different dirs #13506
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.
What are you trying to accomplish?
Currently I don't believe its possible to update manifest/lock files that reside in different directories.
In julia's workspaces that's a design feature. Multiple manifests can share the same lock file in a parent dir (not strictly the immediate parent either)
This is a draft of getting that working. I couldn't figure out how to make it work without changing core functions.
Paired with dependabot/cli#537
Developed with help from Claude and Codex 🤖 🤖
Summary
associated_manifest_paths/associated_lockfile_pathmetadata toDependencyFileso shared lockfiles survive directory filtering and expose ashared_across_directories?helper.Project.tomlplus the sharedManifest.tomlto each updater run, and relative manifest paths returned by the helper are resolved back to their canonical repo locations.update_workspace_sibling_projectsnow skips directories we’ve already updated, meaningother_updated_projectsonly reflects remaining runs.julia_manifest_not_updatednotice if there are no sibling updates pending; the first failure in a multi-directory workspace no longer spams warnings, while the last failure still surfaces the alert.reset_processed_manifest_directories!for tests, plus new specs covering the “fails then succeeds” and “fails everywhere” scenarios.TODO
Anything you want to highlight for special attention from reviewers?
How will you know you've accomplished your goal?
Checklist