Commit a7eb473
committed
feat: Add recursive dependency resolution with API compatibility checking (v4.0.2)
Closes #2
BREAKING CHANGE: While the script remains backward compatible in non-recursive mode,
the recursive mode introduces new behavior for dependency management.
Major features:
- Add -Recursive flag for automatic nested dependency discovery and processing
- Implement API compatibility checking with temporal version ordering
- Add intelligent version selection from compatible tag intersections
- Add -MaxDepth parameter to control recursion depth (default: 5)
- Implement path conflict detection for duplicate repositories
Improvements:
- Enhanced error messages for missing tags with proper stderr capture
- Automatic cleanup of failed clones to prevent undefined states
- Skip dependency processing for repositories that fail to checkout
- Add CheckoutFailed tracking in repository dictionary
- Improve debug logging with JSON content display
Fixes:
- Fix PowerShell HashSet compatibility across different PS versions
- Fix path resolution for complex relative paths with ".." segments
- Fix git error capture using & operator instead of Invoke-Expression
- Prevent orphaned repositories when tag checkout fails
The script now supports advanced dependency management scenarios while maintaining
full backward compatibility with existing non-recursive configurations.
Tested scenarios:
- Missing tag error handling
- API compatibility with overlapping and non-overlapping version lists
- Path conflict detection
- Failed repository cleanup and recovery
- Dirty state restoration
- Non-recursive mode compatibility1 parent 5784b77 commit a7eb473
File tree
4 files changed
+903
-167
lines changed4 files changed
+903
-167
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
8 | 51 | | |
9 | 52 | | |
10 | 53 | | |
| |||
0 commit comments