Skip to content

Conversation

@g-r-a-n-t
Copy link
Collaborator

@g-r-a-n-t g-r-a-n-t commented Nov 17, 2025

Implemented a Git-based node resolver and verified it by building a dependency graph from actual git repositories.

  • Added crates/resolver/src/git.rs:10-317, which introduces GitDependencyDescription, GitResource, and GitResolver. The resolver caches checkouts under a hashed directory, clones repositories with git2, checks out pinned revisions,
    validates optional subdirectories, and exposes checkout diagnostics plus useful errors. (lib.rs now exports the module; see crates/resolver/src/lib.rs:1-4.)

  • Extended the resolver crate dependencies with git2, sha2, and the tempfile dev helper for creating/cleaning working clones in tests (crates/resolver/Cargo.toml:13-28).

  • Added crates/resolver/tests/git.rs:1-182, which spins up real git repositories on disk, uses GitResolver as the graph’s node resolver, and asserts that the resulting DiGraph matches the dependency tree described in each ingot’s
    fe.toml.

  • Update the common config module to support git/remote dependencies

  • Implement git/remote node resolution handling in driver and the tree subcommand

@g-r-a-n-t g-r-a-n-t force-pushed the remote-graph branch 3 times, most recently from 586d478 to 8fb7a78 Compare November 19, 2025 21:58
@g-r-a-n-t g-r-a-n-t marked this pull request as draft November 24, 2025 18:42
@g-r-a-n-t g-r-a-n-t marked this pull request as ready for review November 24, 2025 19:07
@micahscopes
Copy link
Collaborator

Taking a look now!

@micahscopes
Copy link
Collaborator

micahscopes commented Nov 25, 2025

can you think of any obvious ways to break up tree.rs into a few smaller modules just to make it easier to navigate? not super important

@micahscopes
Copy link
Collaborator

small thought on the graph struct: the git_locations / reverse_git_map pair could be a BiHashMap to keep them in sync automatically. not blocking, just a nice-to-have

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.

2 participants