Contributing to verified-sources
When working on this repository, follow these guidelines from CONTRIBUTING.md and README.md:
What is accepted
- Bugfixes and improvements to existing sources
- New sources ONLY if they cannot be easily implemented via REST API, sql_database, filesystem, or vibe coding
- Accepted categories: queues/brokers, SAP/ERP/HEALTH, HR platforms, GraphQL
Source structure
- Each source is a self-contained folder under
sources/ - Source folder contains: Python modules with relative imports,
requirements.txt, optionalREADME.md - Pipeline demo script:
sources/<name>_pipeline.py(outside the source folder) - Tests:
tests/<source_name>/
Development workflow
make devto set up environment- Make changes to source code
- Test with
python <source>_pipeline.pyfromsources/folder - Run tests:
pytest tests/<source_name> - Lint:
make lint-code - Format:
make format-lint
PR requirements
- Must pass linting (mypy, flake8) and formatting (black)
- Google-style docstrings in all relevant sections
- Code must be typed
- Source folder must contain
requirements.txtwith versioned dlt dependency - Use relative imports in source modules
- Tests must pass on duckdb and postgres
- Add or update tests for significant changes
Dependencies
- Add source-specific deps with
uv add --group <source_name> <package> - Also add to
requirements.txtin the source folder - dlt dependency in requirements.txt:
dlt>=X.Y.Z,<X.Y+1.0
Secrets and config
- All sources share config/credentials from
sources/.dlt/ - Use
sources.<source_name>sections in secrets.toml