Contributing¶
Thank you for considering contributing to taskfile-help!
How to Contribute¶
Reporting Bugs¶
- Check existing issues
- Create a new issue with:
- Clear title
- Steps to reproduce
- Expected vs actual behavior
- Environment details
Suggesting Features¶
- Check existing feature requests
- Create a new issue describing:
- Use case
- Proposed solution
- Alternative approaches
Submitting Pull Requests¶
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Update documentation
- Run all checks:
task make - Submit pull request
Development Process¶
- Setup: Follow the Development Guide
- Code: Write clean, tested code
- Test: Ensure >90% coverage
- Document: Update relevant docs
- Review: Address feedback
Code Standards¶
General¶
- Type hints: All functions must have type hints
- Tests: Unit tests for all new code
- Formatting: Use ruff for formatting
- Linting: Pass all linters (ruff, mypy, pylint)
Docstrings¶
- Style: Use Google-style docstrings
__init__.pyfiles: Only docstrings in__init__.pyfiles (easier to maintain)- Module docstrings: All modules must have a module docstring that explains what is in the module and optionally why the module exists (aids maintainers)
Code Quality¶
- Complexity: Cyclomatic complexity shall be ≤10
- Valid reason required for complexities >5
- No emojis: Do not use emojis in production code (use words instead to lower chance of misinterpretation)
- No hard-coded paths: Do not use hard-coded paths (e.g., use
tempfilepackage instead of/tmp)
Commit Messages¶
Use conventional commits:
feat:New featurefix:Bug fixdocs:Documentationtest:Testsrefactor:Refactoringchore:Maintenance
Questions?¶
- Open a discussion on GitHub
- Check existing documentation
- Review closed issues