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
10 files changed
Lines changed: 1122 additions & 269 deletions
File tree
- tests
| 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