anya-core 1.2.0

Enterprise-grade Bitcoin Infrastructure Platform
Documentation
# 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.