This guide covers migration steps between RepoHerd versions. For migrating existing dependency trees to RepoHerd, see the Migration and Dependency Management Guide.
Version 7.1.0 introduces Floating Versions support for SemVer mode:
- Floating Patch Versions (
x.y.*): Automatically select latest patch versions - Floating Minor Versions (
x.*): Automatically select latest minor.patch versions - Mixed Specification Mode: Intelligent selection between lowest-applicable and highest-compatible based on pattern types
- Enhanced logging: Shows version pattern types and selection reasoning
- Immediate: All existing v7.0.0 configurations work without changes
- Optional: Convert appropriate SemVer specifications to floating patterns for automatic latest version selection
- Enhanced workflows: Leverage floating versions for dependency currency while maintaining stability where needed
Before (Lowest Applicable):
{
"Repository URL": "https://github.com/org/library.git",
"Dependency Resolution": "SemVer",
"Version": "2.1.0"
}After (Floating Patch - optional):
{
"Repository URL": "https://github.com/org/library.git",
"Dependency Resolution": "SemVer",
"Version": "2.1.*"
}After (Floating Minor - optional):
{
"Repository URL": "https://github.com/org/library.git",
"Dependency Resolution": "SemVer",
"Version": "2.*"
}- Automatic updates: Get latest patches/minors without manual configuration changes
- Flexible dependency management: Mix fixed and floating patterns as appropriate
- Reduced maintenance: Less frequent dependency file updates required
- Better currency: Stay up-to-date with compatible improvements
- Zero configuration changes required: All existing dependency files work without modification
- Backward compatibility: Traditional
x.y.zpatterns remain the default - Gradual adoption: Convert to floating patterns as appropriate for your stability requirements
Version 7.0.0 introduces Semantic Versioning (SemVer) support alongside the existing Agnostic mode:
- SemVer Mode: Automatic version resolution based on Semantic Versioning 2.0.0 rules
- Mixed Mode Support: Use both SemVer and Agnostic repositories in the same dependency tree
- Enhanced Version Parsing: One-time tag parsing with caching for performance
- Improved Conflict Reporting: Detailed conflict messages with full context
- Immediate: All existing v6.2.x configurations work without changes in Agnostic mode
- Optional: Convert appropriate repositories to SemVer mode for automatic compatibility resolution
- Enhanced workflows: Leverage SemVer for well-versioned libraries while keeping Agnostic mode for complex scenarios
Before (Agnostic mode):
{
"Repository URL": "https://github.com/org/library.git",
"Base Path": "libs/library",
"Tag": "v2.1.0",
"API Compatible Tags": ["v2.0.0", "v2.0.1", "v2.0.5"]
}After (SemVer mode - optional):
{
"Repository URL": "https://github.com/org/library.git",
"Base Path": "libs/library",
"Dependency Resolution": "SemVer",
"Version": "2.1.0"
}- Reduced maintenance: No need to manually maintain API Compatible Tags for SemVer repositories
- Automatic resolution: SemVer rules automatically determine compatible versions
- Clear conflict reporting: Detailed error messages when version requirements conflict
- Mixed approach: Use SemVer where appropriate while keeping Agnostic mode for complex cases
- Zero configuration changes required: All existing dependency files work without modification
- Backward compatibility: Agnostic mode remains the default and fully supported
- Gradual adoption: Convert repositories to SemVer mode as appropriate for your workflow
For migration guides from earlier versions, see the CHANGELOG.md file which contains detailed migration instructions for all version transitions.