Contributing to FastFlowTransform¶
First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to FastFlowTransform.
📌 How to Contribute¶
Reporting Bugs¶
- Use GitHub Issues.
- Include reproduction steps, expected vs actual behavior, logs and version (
fft --version).
Suggesting Features¶
- Open a GitHub Issue labeled
enhancement. - Describe use case, not just solution.
- Reference similar tools or patterns if applicable.
Pull Requests¶
- Fork the repo and create a feature branch (
feat/<short-name>). - Keep PRs focused (one change set per PR).
- Include tests where possible.
- Update docs (README/examples) if behavior changes.
- Run
pre-commithooks before pushing. - Ensure CI passes (lint, typecheck, tests).
Commit Messages¶
-
Use Conventional Commits when possible.
-
feat: add postgres executor fix: handle missing sources.ymldocs: update quickstartchore: bump version
Development Setup¶
# 1) clone
git clone https://github.com/<org>/<repo>.git && cd fastflowtransform
# 2) create venv
python -m venv .venv && source .venv/bin/activate
# 3) install
pip install -e .
pip install -r requirements-dev.txt # if available
# 4) pre-commit
pre-commit install
Testing¶
pytest -q
make demo
For engines behind optional extras, run targeted installs/tests in a matrix (local or CI) to catch import/runtime gaps without pulling every dependency:
uv pip install -e .[duckdb] # core
uv pip install -e .[postgres]
uv pip install -e .[bigquery]
uv pip install -e .[bigquery_bf]
uv pip install -e .[spark]
uv pip install -e .[snowflake]
# or uv pip install -e .[full] for an all-in-one sweep
🧑🤝🧑 Code of Conduct¶
This project adheres to the Contributor Covenant v2.1.
Our Pledge¶
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
Our Standards¶
- Use welcoming and inclusive language.
- Respect different viewpoints and experiences.
- Gracefully accept constructive criticism.
- Focus on what is best for the community.
- Show empathy towards others.
Enforcement¶
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the maintainers at <your-email@example.com>.
📄 License¶
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.