Managing Versions¶
R2X Core provides flexible version management through VersionStrategy implementations. Choose a strategy based on your versioning scheme and how you track changes to data files and system models.
Create a Semantic Versioning Strategy¶
Use semantic versioning (MAJOR.MINOR.PATCH) to manage versions based on the nature of changes:
>>> from r2x_core import SemanticVersioningStrategy
>>> strategy = SemanticVersioningStrategy()
>>> type(strategy).__name__
'SemanticVersioningStrategy'
Create a Git-Based Versioning Strategy¶
Track versions using Git tags and commit hashes:
>>> from r2x_core import GitVersioningStrategy
>>> commits = ["abc123", "def456", "ghi789"]
>>> strategy = GitVersioningStrategy(commits)
>>> type(strategy).__name__
'GitVersioningStrategy'
Work with Version Strategies¶
Both strategies implement the VersionStrategy interface for consistent version management across your project:
>>> from r2x_core import SemanticVersioningStrategy, GitVersioningStrategy, VersionStrategy
>>> semantic = SemanticVersioningStrategy()
>>> commits = ["abc123", "def456", "ghi789"]
>>> git = GitVersioningStrategy(commits)
>>>
>>> # Both implement the same interface
>>> isinstance(semantic, VersionStrategy)
True
>>> isinstance(git, VersionStrategy)
True
See Also¶
Upgrade Data Between Versions - Upgrade data files between versions
Upgrade Systems Between Versions - Upgrade system models between versions
VersionStrategy- Version strategy interfaceSemanticVersioningStrategy- Semantic version strategyGitVersioningStrategy- Git-based version strategy