Commit 0b14463
committed
feat: add flexible API compatibility modes for recursive dependency resolution
Closes #3
- Add "API Compatibility" field to dependencies.json with "Strict" and "Permissive" modes
- Add -ApiCompatibility parameter to set default compatibility mode (defaults to "Permissive")
- Implement mode-specific tag selection algorithms:
- Strict mode: Uses intersection of compatible tags (existing behavior)
- Permissive mode: Uses union of compatible tags for flexible version management
- Add compatibility mode interaction rules for mixed environments
- Track API Compatibility mode in repository dictionary
- Display default API Compatibility mode in summary report
The implementation preserves temporal ordering in union operations when possible,
with warnings for incompatible tag lists that fall back to unordered union.
BREAKING CHANGE: Default behavior changes from strict intersection to permissive
union. To maintain v4.0.x behavior, use: -ApiCompatibility Strict1 parent a7eb473 commit 0b14463
File tree
4 files changed
+422
-67
lines changed4 files changed
+422
-67
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 | + | |
8 | 41 | | |
9 | 42 | | |
10 | 43 | | |
| |||
0 commit comments