Contributing
Thanks for helping improve martinopiaggi/summarize.
Prerequisites
- Python 3.7+ (3.12 recommended)
- ffmpeg on your
PATH - At least one LLM API key in
.env(seesummarizer.example.yamlfor provider names) - Git
Optional:
- Docker + Docker Compose (Streamlit + Cobalt stack)
- Node.js 20+ (Fern docs only)
Local Setup
Add API keys to .env.
Running the Project
Tests
Run tests before opening a PR. Add or update tests when changing behavior.
Architecture Discipline
All user-facing surfaces (CLI, API, Streamlit, Docker) should call summarizer.core.main(config). Do not add parallel summarization pipelines.
Config flows through summarizer.config_file.merge_configs() and summarizer.api_utils.build_runtime_config().
Pull Requests
- Fork and branch from
main - Keep changes focused — one logical change per PR
- Never commit secrets — no API keys,
.env, or personalsummarizer.yamlwith credentials - Update docs if install paths or user-facing behavior changes
- Describe what you tested in the PR body
See also CONTRIBUTING.md on GitHub.