Thank you for your interest, this document provides guidelines and instructions for contributing to the project.
Finding an Issue:
- Check open issues
- Look for issues labeled
good first issuefor beginner-friendly tasks - Comment on the issue to express interest before starting work
Reporting a Bug:
- Check if it's already reported in issues
- If not, create a new issue with:
- Clear, descriptive title
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, etc.)
- Screenshots if applicable
Requesting a Feature:
- Large features, architectural changes, or shifts in project direction should be proposed in Jira.
- Bugs and small, well-scoped features can be raised as GitHub issues.
- Check small feature requests
- Open an issue describing:
- The problem you're trying to solve
- Your proposed solution
- Alternatives considered
- Impact on existing functionality
If you’re unsure which path applies, or you aren't part of the team on Jira, open an issue to start the discussion.
- Make your changes in small, logical commits
- Write clear, descriptive commit messages
- Test your changes thoroughly - see TESTING.md for guidelines
- Run
invoke test-coverageto verify tests pass for core modules - Update documentation as needed
- Write tests for new business logic in
storage/,config/, andanalyzers/modules - GUI components are excluded from coverage metrics
- Run
invoke test-coverageto see coverage for testable modules - Aim for 70-80% coverage on new business logic
<type>: <subject>
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
- Maintainers will review your PR
- Address feedback by pushing new commits
- Once approved, maintainers will merge