This guide covers development setup, testing, and contribution guidelines for amino.
- Python 3.10 or higher
- Git
git clone https://github.com/yourusername/amino.git
cd amino
make install-dependenciesThis project uses uv for dependency management and includes a Makefile for common development tasks. The install command sets up all development dependencies including:
- pytest for testing
- pytest-cov for coverage reporting
- ruff for linting and formatting
- ty for type checking
amino/
├── amino/ # Main package source code
├── tests/ # Test files
├── examples/ # Example schemas and usage
├── pyproject.toml # Project configuration
├── README.md # User documentation
└── DEVELOPMENT.md # This file
The project uses a Makefile for common development tasks:
Linting and Formatting
make tidy # Format code with ruff and type check with tyUpdate Dependencies
make upgrade-dependencies # Upgrade all dependencies# Run all tests with coverage
make test
# Or run pytest directly
uv run pytest
# Run specific test file
uv run pytest tests/test_specific.py
# Run with verbose output
uv run pytest -v- Line length: 120 characters
- Use ruff for formatting and linting
- Follow PEP 8 guidelines
- Add type hints where appropriate
- Ensure all tests pass
- Run linting and formatting tools
- Add tests for new functionality
- Update documentation if needed
- Fork the repository
- Create a feature branch from
main - Make your changes
- Add/update tests
- Ensure all checks pass
- Submit a pull request
- Write tests for all new features
- Maintain good test coverage
- Use descriptive test names
- Test both success and error cases
- Include integration tests for complex features
Releases are managed through the project's CI/CD pipeline. Version numbers follow semantic versioning (semver).