Versioning
We follow Semantic Versioning (SemVer) for all our modules.
Version Format
Versions follow the format: MAJOR.MINOR.PATCH
- MAJOR: Breaking changes that require user action
- MINOR: New features that are backward compatible
- PATCH: Bug fixes that are backward compatible
Version Management
Each module repository includes:
VERSIONfile: Contains the current version (e.g.,0.1.0)CHANGELOG.md: Documents all changes per version- Automated release workflow: Creates tags and GitHub releases
Bumping Versions
Using the Version Script
# Bump patch version (0.1.0 -> 0.1.1)
./scripts/bump-version.sh patch
# Bump minor version (0.1.0 -> 0.2.0)
./scripts/bump-version.sh minor
# Bump major version (0.1.0 -> 1.0.0)
./scripts/bump-version.sh major
Manual Version Update
- Update
VERSIONfile - Update
CHANGELOG.mdwith changes - Commit changes
- Create a tag:
git tag v0.1.0 - Push tag:
git push origin v0.1.0
Release Workflow
Our automated release workflow:
- Detects version changes in
VERSIONfile - Creates a Git tag (
v*.*.*) - Creates a GitHub release
- Generates release notes from
CHANGELOG.md
Best Practices
- Update CHANGELOG.md with every version bump
- Use conventional commits for better changelog generation
- Tag releases immediately after version bump
- Document breaking changes clearly in CHANGELOG