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:

  1. Branch from main to create a new branch for the release.
  2. Update the version number in the Cargo.toml file.
  3. Create a pull request to merge the branch into main.
  4. Once the pull request has been approved, merge the branch into main.
  5. Tag the release.
  6. 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.