Version Control¶
Version Files¶
The project maintains its version information in the following files:
version.txt
- Main version fileversion_macOS.txt
- macOS specific version
Version Format¶
We follow the Semantic Versioning standard (MAJOR.MINOR.PATCH):
- MAJOR: Breaking changes
- MINOR: New features (backwards compatible)
- PATCH: Bug fixes (backwards compatible)
How to Update Version¶
-
Update the version number in both version files simultaneously:
echo "X.Y.Z" > version.txt echo "X.Y.Z" > version_macOS.txt
-
Create a new git tag:
git tag vX.Y.Z
- Push the tag:
git push origin vX.Y.Z
Release Process¶
- Update version numbers in both version files
- Update CHANGELOG.md with new changes
- Create a new release on GitHub
- Tag the release with the new version
- Generate release notes from CHANGELOG.md
Best Practices¶
- Maintain detailed change log in CHANGELOG.md
- Strictly follow semantic versioning
- Document important changes in each version
- Ensure git tags match versions in files
- Keep version files synchronized across platforms
- Always update both version files simultaneously to maintain consistency
Examples¶
Minor Version Update¶
# Update both version files simultaneously
echo "1.1.0" > version.txt
echo "1.1.0" > version_macOS.txt
# Create and push tag
git tag v1.1.0
git push origin v1.1.0
Patch Version Update¶
# Update both version files simultaneously
echo "1.0.1" > version.txt
echo "1.0.1" > version_macOS.txt
# Create and push tag
git tag v1.0.1
git push origin v1.0.1