Commit 991cc45
committed
feat: Add Semantic Versioning (SemVer) support for dependency resolution (#11)
Implement automatic version resolution based on Semantic Versioning 2.0.0 rules,
eliminating the need for explicit API Compatible Tags lists.
Key features:
- New "SemVer" dependency resolution mode with automatic compatibility checking
- Version field for specifying minimum version requirements (e.g., "2.1.0")
- Custom version tag regex support for non-standard tag formats
- Intelligent conflict detection across the entire dependency tree
- Mixed mode support (Agnostic and SemVer in same tree)
- Proper handling of 0.x.y versions per SemVer specification
Configuration example:
{
"Dependency Resolution": "SemVer",
"Version": "2.1.0",
"Version Regex": "^v(\\d+)\\.(\\d+)\\.(\\d+)$" // Optional
}
The implementation selects the lowest compatible version for predictability
and provides detailed conflict reporting when version requirements cannot
be satisfied.
Maintains full backward compatibility with existing Agnostic mode.1 parent 80ab69e commit 991cc45
File tree
10 files changed
+1122
-269
lines changed- tests
10 files changed
+1122
-269
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 | + | |
8 | 45 | | |
9 | 46 | | |
10 | 47 | | |
| |||
0 commit comments