Update dependency analysis artifacts
Refreshed static analysis of workspace dependency structure: - graph.json: 10 crates, 17 crate-level edges, 95 files, 123 file-level edges - graph.summary.md: Updated metrics and fan-in/fan-out rankings - sccs.md: Confirmed no cycles (DAG structure intact) - layers.observed.md: 5-layer hierarchy from binaries to infrastructure - hotspots.md: Identified g3-config, g3-providers as high fan-in; g3-cli as high fan-out - limitations.md: Documented extraction method constraints Agent: euler
This commit is contained in:
@@ -1,40 +1,44 @@
|
||||
# Strongly Connected Components (Cycles)
|
||||
# Strongly Connected Components Analysis
|
||||
|
||||
## Summary
|
||||
## Method
|
||||
|
||||
**No non-trivial strongly connected components detected.**
|
||||
Tarjan's algorithm applied to file-level dependency graph.
|
||||
|
||||
The dependency graph is acyclic at both the crate level and the file level.
|
||||
Edge types considered:
|
||||
- `mod_declaration`: Parent module declares child module
|
||||
- `cross_crate_import`: File imports from another crate
|
||||
|
||||
## Analysis Details
|
||||
## Results
|
||||
|
||||
- Algorithm: Tarjan's SCC algorithm
|
||||
- Scope: All 143 nodes (9 crates + 134 files)
|
||||
- Result: 0 cycles with size > 1
|
||||
**No non-trivial SCCs detected.**
|
||||
|
||||
## Crate-Level Verification
|
||||
The file-level dependency graph is acyclic. All `mod` declarations form a strict tree structure within each crate, and cross-crate imports follow the crate dependency DAG.
|
||||
|
||||
The crate dependency graph forms a directed acyclic graph (DAG):
|
||||
## Crate-Level Cycle Analysis
|
||||
|
||||
The crate dependency graph was also analyzed:
|
||||
|
||||
```
|
||||
Leaf crates (no dependencies on other g3-* crates):
|
||||
- g3-providers
|
||||
- g3-config
|
||||
- g3-execution
|
||||
- g3-computer-control
|
||||
|
||||
Intermediate crates:
|
||||
- g3-core → depends on: g3-providers, g3-config, g3-execution, g3-computer-control
|
||||
- g3-ensembles → depends on: g3-core, g3-config
|
||||
- g3-planner → depends on: g3-providers, g3-core, g3-config
|
||||
|
||||
Top-level crates:
|
||||
- g3-cli → depends on: g3-core, g3-config, g3-planner, g3-computer-control, g3-providers, g3-ensembles
|
||||
- g3 (root) → depends on: g3-cli, g3-providers
|
||||
g3 → g3-cli → g3-core → g3-providers
|
||||
→ g3-config
|
||||
→ g3-execution
|
||||
→ g3-computer-control
|
||||
→ g3-planner → g3-core
|
||||
→ g3-providers
|
||||
→ g3-config
|
||||
→ g3-ensembles → g3-core
|
||||
→ g3-config
|
||||
```
|
||||
|
||||
**No cycles detected at crate level.**
|
||||
|
||||
The workspace forms a directed acyclic graph (DAG) with:
|
||||
- Leaf crates: `g3-providers`, `g3-config`, `g3-execution`, `g3-computer-control`, `studio`
|
||||
- Mid-tier crates: `g3-core`, `g3-planner`, `g3-ensembles`
|
||||
- Top-tier crates: `g3-cli`, `g3`
|
||||
|
||||
## Implications
|
||||
|
||||
- No circular dependencies exist between crates
|
||||
- No circular dependencies exist
|
||||
- Build order is deterministic
|
||||
- Crates can be compiled in topological order
|
||||
- Crates can be compiled in parallel respecting the DAG
|
||||
|
||||
Reference in New Issue
Block a user