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
Section titled “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
Section titled “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
Section titled “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)TrueSee Also
Section titled “See Also”- upgrade data files - Upgrade data files between versions
- upgrade systems - Upgrade system models between versions
VersionStrategy- Version strategy interfaceSemanticVersioningStrategy- Semantic version strategyGitVersioningStrategy- Git-based version strategy