AutoAlign Development Guide

Fork and Clone the Repository

First, fork this repository and then clone your forked repository using the following commands:

git clone [your-repository-url]
cd AutoAlign

Development Environment Setup

To set up your development environment, run:

pip install -e .[dev]

Development Process

Create a new branch for your feature development using:

git checkout -b feature/your-feature-name

To maintain consistency and organization in the project, make sure to follow the branch naming conventions. The available branch types are listed below:

Branch Naming Conventions

Adhere to the following Git branch naming conventions to maintain clarity and organization:

Branch Type

Naming Pattern

Description

Main Branch

main/master

Primary branch for stable releases

Development Branch

develop/dev

Branch for ongoing development

Feature Branch

feature/*

Branches for developing new features

Fix Branch

fix/*

Branches for bug fixes

Hotfix Branch

hotfix/*

Branches for urgent production fixes

Release Branch

release/*

Branches for preparing version releases

Test Branch

test/*

Branches for testing and validation

Experiment Branch

experiment/*

Branches for trying out experimental features

Documentation Branch

docs/*

Branches for updating documentation

Refactor Branch

refactor/*

Branches for code refactoring

Adding Tests

Place your test files in the tests directory, following the naming pattern test_*.py. Write test cases using pytest that cover new features or bug fixes, including both standard and edge cases. Refer to existing tests for guidance.

Running Tests

To execute your tests, use:

python -m pytest

Submitting a Pull Request

Follow the guidelines in .github/PULL_REQUEST_TEMPLATE.md to submit a pull request.

Upload Process to Test PyPI (For Maintainers)

To test the PyPI upload process, execute:

python -m build
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

By following this guide, you ensure a streamlined and organized development process for AutoAlign.