Version Management¶
This documentation provides information about the version management strategy used in the Anya project.
Concepts¶
Semantic Versioning¶
Semantic Versioning is a versioning scheme used to keep track of changes to the Anya project. It is based on the following rules:
- The version number is divided into three parts:
x.y.z
. - The first part,
x
, is the major version number. This version number is incremented when there are breaking changes to the API. - The second part,
y
, is the minor version number. This version number is incremented when there are new features or enhancements, but no breaking changes. - The third part,
z
, is the patch version number. This version number is incremented when there are only bug fixes.
Versioning Scheme¶
The versioning scheme used in the Anya project is based on the following formula: x.y.z-rc.X
or x.y.z-rc.X-dev.Y
.
- The first part,
x.y.z
, is the semantic version number. - The second part,
-rc.X
, is the release candidate number. - The third part,
-dev.Y
, is the development version number.
Version Control¶
The Anya project uses a git repository for version control. The repository is hosted on GitHub.
Release Process¶
The release process is as follows:
- Branch from
main
to create a new branch for the release. - Update the version number in the
Cargo.toml
file. - Create a pull request to merge the branch into
main
. - Once the pull request has been approved, merge the branch into
main
. - Tag the release.
- Push the tag to the remote repository.
Tools¶
cargo¶
The cargo
command line tool is used to manage the version of the Anya project.
cargo-audit¶
The cargo-audit
command line tool is used to audit the dependencies used in the Anya project for security vulnerabilities.
cargo-deny¶
The cargo-deny
command line tool is used to deny certain dependencies from being used in the Anya project.
cargo-watch¶
The cargo-watch
command line tool is used to watch the project for changes and rebuild the project automatically.
rustfmt¶
The rustfmt
command line tool is used to format the code in the Anya project.