This document provides a comprehensive guide to versioning for our project, using the x.x.x
format, also known as Semantic Versioning. All pull requests will be merged into the latest version branches.
Semantic Versioning is a versioning scheme that uses three numbers separated by dots: MAJOR.MINOR.PATCH
. Each number has a specific meaning:
- MAJOR: Changes when you make incompatible API changes. Like changes in the source code or the way SAT is being deployed.
- MINOR: Changes when you add functionality in a backward-compatible manner. New functions, new checks.
- PATCH: Changes when you make backward-compatible bug fixes. Documentation, code fixes.
For example, version 2.1.3
indicates:
2
: Major version, which includes significant changes that may not be backward-compatible.1
: Minor version, which includes new features that are backward-compatible.3
: Patch version, which includes backward-compatible bug fixes.
All pull requests will be merged into branches that correspond to the latest version. This ensures that the main branch always reflects the most current stable version of the project.
- Feature Branches:
feature/description
- Bugfix Branches:
bugfix/description
- Release Branches:
release/x.x.x
- Hotfix Branches:
hotfix/x.x.x
-
Initial Release:
- Start with version
1.0.0
. - Create a
release/1.0.0
branch from the main branch. - Merge all initial features and fixes into this branch.
- Start with version
-
Feature Addition:
- Create a new branch from the main branch:
feature/description
. - Implement the feature and create a pull request.
- Merge the pull request into the latest release branch (e.g.,
release/1.1.0
).
- Create a new branch from the main branch:
-
Bug Fixing:
- Create a new branch from the main branch:
bugfix/description
. - Implement the fix and create a pull request.
- Merge the pull request into the latest release branch (e.g.,
release/1.0.1
).
- Create a new branch from the main branch:
-
Releasing a New Version:
- Once all features and bug fixes are merged, update the version number in the
release
branch. - Merge the
release
branch into the main branch. - Tag the new version in the repository.
- Once all features and bug fixes are merged, update the version number in the
- Release Schedule: Publish a release schedule to keep users informed about upcoming updates.
- Documentation: Document each version change, including new features, bug fixes, and any breaking changes.
By adhering to these guidelines, we ensure a structured and predictable release process, making it easier for users to understand and adopt new versions of our software.