Version Control¶
Version control is a critical part of the Anya Project's development process. We use a combination of Git and GitHub to manage our codebase. This document outlines the best practices for using version control in the Anya Project.
Git Repositories¶
The Anya Project has multiple Git repositories. These are split into two main categories: core and dependencies.
Core Repositories¶
The core repositories are the main codebases for the Anya Project. They are owned by the Anya Project GitHub organization.
anya-core
: The main Anya Project codebase.anya-enterprise
: The enterprise version of the Anya Project.
Dependencies¶
The dependencies repositories are third-party libraries that are used by the Anya Project. These are not owned by the Anya Project GitHub organization.
bitcoin-rs
: A Rust library for Bitcoin.lightning-rs
: A Rust library for the Lightning Network.web5-rs
: A Rust library for Web5.stacks-rs
: A Rust library for Stacks.
Git Branches¶
The Anya Project uses a Git branching strategy to manage the development of new features and bug fixes. This strategy is based on the Git Flow model.
main
: The main branch of the Anya Project. This is the branch that will be used to build the production version of the Anya Project.develop
: The development branch of the Anya Project. This is the branch that is used to develop new features and bug fixes.feature/*
: The feature branches of the Anya Project. These are branches that are used to develop new features.release/*
: The release branches of the Anya Project. These are branches that are used to prepare a new release of the Anya Project.hotfix/*
: The hotfix branches of the Anya Project. These are branches that are used to develop bug fixes.
Git Commits¶
The Anya Project uses a Git commit message format to ensure that the commit messages are consistent and easy to understand.
- The first line of the commit message should be a brief summary of the changes.
- The second line of the commit message should be a blank line.
- The third line of the commit message should include a more detailed description of the changes.
- The fourth line of the commit message should include a list of the files that were modified.
- The fifth line of the commit message should include a reference to the issue that the commit is intended to fix.
Git Worktrees¶
The Anya Project uses Git worktrees to manage different features and versions of the project. Worktrees are used to create a new branch for a feature or bug fix.
- Create a new worktree for a feature: