Thank you for your interest in contributing to FastAPI Assets! We welcome contributions from the community to help improve and expand this project. Whether you're fixing bugs, adding new features, or improving documentation, your contributions are valuable.
Before creating bug reports, check the issue list. When creating a bug report, include:
- Use a clear descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed and what the problem is
- Explain which behavior you expected to see instead
- Include Python version, FastAPI Assets version, and OS information
- Include relevant error messages and stack traces
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- Use a clear descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and expected behavior
- Explain why this enhancement would be useful
- Fill in the required template
- Include appropriate test cases
- Update documentation and examples
- End all files with a newline
- Python 3.10 or higher
- Git
- pip
- Fork the repository
# Go to the GitHub repository and click "Fork"- Clone your fork
git clone https://github.com/YOUR_USERNAME/fastapi-assets.git
cd fastapi-assets- Create a virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Unix/macOS:
source venv/bin/activate- Install dependencies with development extras
pip install -e ".[dev,image,pandas]"- Create a feature branch
git checkout -b feature/your-feature-nameFastAPI Assets uses:
- Ruff for linting and formatting
- MyPy for type checking
- Pytest for testing
ruff check fastapi_assets tests
ruff format fastapi_assets testsmypy fastapi_assetspytest
pytest --cov=fastapi_assets
pytest tests/test_file_validator.py -v- Create a feature branch
- Make your changes with type hints and docstrings
- Format your code with ruff
- Run tests to ensure everything passes
- Run type checks with mypy
- Commit with clear messages following conventional commits
- Push to your fork
- Create a pull request
By participating in this project, you agree to abide by the Contributor Covenant Code of Conduct.