Contributing
Thank you for your interest in contributing to Marvelpy! We welcome contributions from the community.
Development Setup
- Fork the repository on GitHub
-
Clone your fork locally:
-
Create a virtual environment:
-
Install in development mode:
-
Install pre-commit hooks:
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=marvelpy --cov-report=html
# Run specific test file
pytest tests/test_hello.py
Code Quality
We use several tools to maintain code quality:
- Ruff - Fast Python linter and formatter
- MyPy - Static type checking
- Pre-commit - Git hooks for code quality
Run these manually:
Documentation
Documentation is built with MkDocs:
# Install docs dependencies
pip install -e ".[docs]"
# Serve docs locally
mkdocs serve
# Build docs
mkdocs build
Pull Request Process
- Create a feature branch from
main - Make your changes with tests
- Ensure all tests pass and code quality checks pass
- Update documentation if needed
- Submit a pull request with a clear description
Code Style
- Follow PEP 8 style guidelines
- Use type hints for all functions
- Write docstrings for all public functions
- Keep functions small and focused
- Write tests for new functionality
Reporting Issues
When reporting issues, please include:
- Python version
- Marvelpy version
- Steps to reproduce
- Expected vs actual behavior
- Any error messages or stack traces
Questions?
Feel free to open an issue for questions or discussions!