Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/code-recap.git - Install dependencies:
uv sync --devorpip install -e ".[dev]" - Create a branch for your changes:
git checkout -b feature/your-feature-name
# Install with development dependencies
uv sync --dev
# Run linting
uv run ruff check .
uv run ruff format .
# Test changes without LLM costs
./summarize_activity.py 2024 --author "Test" --dry-run- Use
rufffor linting and formatting (configured inpyproject.toml) - Follow existing patterns for CLI argument parsing (argparse)
- Add docstrings to all public functions with Args/Returns sections
- Keep scripts executable with
#!/usr/bin/env python3
This project is designed to be generic and configurable. Never hardcode:
- Company names
- Client names
- Email addresses
- Logos or branding
All personalization should go in config/config.yaml. Use generic examples like "Acme Corp", "Your Name", or "client-name" in help text and documentation.
- Add new config options to both the script's
load_config()andconfig.example/config.yaml - Document user-facing options in the README
Before submitting a PR:
- Run
ruff check .andruff format . - Test your changes with
--dry-runwhere applicable - Verify the example config still works
- Update the README.md if you've added user-facing features
- Update
config.example/config.yamlif you've added configuration options - Ensure all linting passes
- Write a clear PR description explaining your changes
When reporting bugs, please include:
- Python version (
python --version) - Operating system
- Steps to reproduce
- Expected vs actual behavior
- Relevant error messages
Feel free to open an issue for questions or discussions about potential features.