Skip to content

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.

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'

Track versions using Git tags and commit hashes:

>>> from r2x_core import GitVersioningStrategy
>>> commits = ["abc123", "def456", "ghi789"]
>>> strategy = GitVersioningStrategy(commits)
>>> type(strategy).__name__
'GitVersioningStrategy'

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