Thank you for your interest in contributing to ab! This document provides guidelines and instructions for contributing.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Python version, OS, etc.)
- Minimal code example if applicable
- Check existing Issues and Discussions
- Open a new issue or discussion with:
- Clear description of the feature
- Use case and motivation
- Proposed implementation (if you have ideas)
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Ensure all tests pass (
uv run pytest tests/) - Run linting (
uv run ruff check .anduv run black .) - Update documentation if needed
- Commit with clear messages
- Push to your fork
- Open a Pull Request
See docs/guides/CONTRIBUTING.md for detailed setup instructions.
Quick start:
git clone https://github.com/hexcreator/ab.git
cd ab
uv sync
uv run pytest tests/- Follow PEP 8
- Use type hints
- Format with Black (line length 100)
- Lint with Ruff
- Type check with mypy
- Write tests for new features
- Ensure all tests pass before submitting PR
- Aim for good test coverage
- Use fixtures from
tests/conftest.py
- Update relevant docs in
docs/ - Add examples for new features
- Update API reference if changing interfaces
- Keep README.md up to date
- Open a Discussion
- Check existing Issues
- See Documentation
Thank you for contributing! 🎉