Skip to content

Commit 0906950

Browse files
Add improved symbol graph debugging tools for OpenAPI integration
1 parent 2421110 commit 0906950

File tree

2 files changed

+376
-1
lines changed

2 files changed

+376
-1
lines changed

Sources/SymbolGraphDebug/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ swift run symbol-graph-debug [command] [options]
1414
- **validate-relationships**: Validates all relationships in a symbol graph
1515
- **show-symbol**: Shows detailed information about a specific symbol
1616
- **show-http**: Shows HTTP-specific information for API endpoints
17+
- **unified**: Analyzes a collection of symbol graphs and identifies relationship issues
18+
- **openapi-debug**: Specialized debug tool for OpenAPI to SymbolGraph conversion issues
1719

1820
## Findings
1921

@@ -35,6 +37,16 @@ Through our investigation using this tool, we've identified several insights abo
3537

3638
5. **Relationship Structure**: The relationship structure is valid but might need adjustments to be fully recognized by DocC.
3739

40+
6. **Path Component Hierarchy**: Missing symbol definitions for parent paths can cause DocC to crash with "Symbol has no reference" errors.
41+
42+
## Common Issues
43+
44+
1. **Missing Source/Target Symbols**: A common issue is relationships referencing symbols that don't exist in the graph.
45+
46+
2. **Invalid Path Hierarchies**: Child symbols must have their parent symbols properly defined.
47+
48+
3. **Incomplete HTTP Mixins**: Not utilizing HTTP-specific mixins reduces the quality of API documentation.
49+
3850
## Potential Solutions
3951

4052
1. **Interface Language**: Consider using "swift" as the interface language instead of "openapi" to potentially improve DocC compatibility.
@@ -45,6 +57,8 @@ Through our investigation using this tool, we've identified several insights abo
4557

4658
4. **DocC Extensions**: Consider creating DocC extensions specifically for OpenAPI types to improve rendering.
4759

60+
5. **Ensure Hierarchy Completeness**: Generate symbols for all parent path components in hierarchical paths.
61+
4862
## Example Usage
4963

5064
```bash
@@ -59,4 +73,10 @@ Through our investigation using this tool, we've identified several insights abo
5973

6074
# Show details of a specific symbol
6175
.build/debug/symbol-graph-debug show-symbol registry.symbolgraph.json "module"
76+
77+
# Analyze a directory of symbol graphs
78+
.build/debug/symbol-graph-debug unified .build/symbolgraphs/ -o combined-analysis.json
79+
80+
# Debug OpenAPI-specific conversion issues
81+
.build/debug/symbol-graph-debug openapi-debug registry.symbolgraph.json
6282
```

0 commit comments

Comments
 (0)