Thank you for your interest in contributing to FLUID Forge! This guide will help you get started.
By participating in this project you agree to abide by the Code of Conduct. Please read it before contributing.
- Search existing issues to avoid duplicates.
- Open a new issue using the Bug Report template.
- Include:
- FLUID Forge version (
fluid version) - Python version (
python3 --version) - Operating system
- Steps to reproduce
- Expected vs actual behaviour
- Contract YAML (redact any secrets)
- FLUID Forge version (
- Open an issue using the Feature Request template.
- Describe the problem you'd like to solve, not just the solution.
- If the feature involves a new provider, use the Provider Request template instead.
-
Fork the repository and create a branch from
main:git checkout -b feat/my-feature
-
Install in development mode:
pip install -e ".[dev,local]" -
Make your changes. Follow the coding standards below.
-
Add tests. All new code must include tests. Run the suite:
pytest
-
Lint and format:
ruff check fluid_build/ tests/ black fluid_build/ tests/
-
Add license headers to any new Python files:
python scripts/add_license_headers.py
-
Commit with a clear message following Conventional Commits:
feat(provider): add Databricks provider skeleton fix(cli): handle empty contract in validate docs: update quickstart for v0.8 -
Push and open a Pull Request against
main.
- Python 3.9+ — no walrus operators in hot paths, use
from __future__ import annotationssparingly. - Type hints on all public function signatures.
- Logging — use
logging.getLogger(__name__)in production code, never bareprint(). - No bare
except:— always catch specific exceptions. - Tests — use
pytest. Place unit tests intests/, provider integration tests undertests/providers/. - Imports — standard library → third-party → local, separated by blank lines. Use
ruffto auto-sort.
If you're building a new provider:
- Read the Provider SDK documentation.
- Subclass
BaseProviderfromfluid_provider_sdk. - Register via entry points in your
pyproject.toml:[project.entry-points."fluid_build.providers"] my_provider = "my_package:MyProvider"
- Include at least one working example contract.
- See Architecture Deep-Dive for internals.
# Clone
git clone https://github.com/Agentics-Rising/forge-cli.git
cd forge-cli
# Create virtualenv (recommended)
python3 -m venv .venv && source .venv/bin/activate
# Install with all dev + provider extras
pip install -e ".[dev,local,gcp,snowflake,viz]"
# Run tests
pytest
# Run a single test file
pytest tests/providers/test_registry.py -vBy submitting a pull request, you agree that your contributions are licensed under the Apache License 2.0 and that you have the right to license them.
- Discussions: GitHub Discussions
- Bugs: Issue Tracker
- Docs: fluidhq.io/docs
Thank you for helping make FLUID Forge better!