- Check existing issues
- Discuss major changes via new issue
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make focused, atomic commits
- Add or update tests for your changes
- Run full test suite:
pytest tests/ - Update README if needed
- Push to fork and submit pull request
- Follow PEP 8 conventions
- Use type hints (
dict[str, Any], etc.) - Write docstrings for all functions
- Aim for >80% test coverage
- Test both success and failure cases
[TYPE] Brief description
Longer explanation if needed.
Fixes #issue_number (if applicable)
Types: feat, fix, docs, style, refactor, test, chore
# New feature with tests
def extract_custom_format(file_path: str) -> dict[str, Any]:
"""Extract metadata from custom format.
Args:
file_path: Path to file to extract
Returns:
Dictionary of extracted metadata
Raises:
ValueError: If file format is invalid
"""
# Implementation...
passInclude:
- OS and Python version
- Steps to reproduce
- Expected vs. actual behavior
- Error messages/stack traces
- Screenshot of GUI (if applicable)
Format:
**Environment**: Windows 10, Python 3.10.5
**Description**: Brief issue description
**Steps**:
1. ...
2. ...
**Expected**: ...
**Actual**: ...