Thanks for contributing.
Requirements:
- Zig
0.15.2+ - Linux/macOS shell environment
Setup:
git clone <repo-url>
cd scrapers
zig build
zig build testsrc/scrapers/: provider implementationssrc/app/providers_app.zig: provider-agnostic app APIsrc/cmd/cli.zig: CLIsrc/cmd/tui.zig: TUIsrc/lib.zig: public exportsbuild.zig: binaries and test steps
- Focused changes with clear scope.
- Tests for behavior changes or bug fixes.
- Updated docs when CLI flags/API behavior changes.
- Notes for provider-specific caveats (pagination, Cloudflare, captcha, etc.).
- Keep provider logic isolated to provider modules.
- Add/maintain app-layer mapping in
providers_app.zig. - Avoid shelling out to external HTTP tools in runtime paths.
- Prefer explicit error handling and deterministic behavior.
- Keep user-facing strings and CLI/TUI flows clear.
Run baseline tests before opening a PR:
zig build testRun provider-targeted live tests when touching provider behavior:
zig build test-live-single -Dlive=extensive -Dlive-providers=subsource.netOptional broader live checks:
zig build test-live -Dlive=smoke -Dlive-providers=* -Dlive-include-captcha=false- Use descriptive commit messages.
- Keep commits reviewable (avoid unrelated edits).
- Link issues when applicable.
- Include before/after behavior in PR description for scraper fixes.
When filing issues, include:
- provider ID
- query/input used
- expected vs actual behavior
- logs/errors
- whether issue reproduces in CLI, TUI, library, or all