Thanks for contributing. Issues, reviews, docs, and pull requests are all welcome, and you don't need permission to start. Before you dig in, a quick read of the project GOVERNANCE.md explains how decisions are made and how contributors grow into Maintainers over time.
Every commit must be signed off, certifying the Developer Certificate of Origin, a lightweight statement that you wrote the contribution or otherwise have the right to submit it under the project's license. It is required for a pull request to be merged.
Sign off by adding the -s flag when you commit:
git commit -s -m "feat(config): add Kinesis service configuration"This appends a Signed-off-by: Your Name <your@email> trailer using your configured git
identity. If you forget, you can amend the most recent commit with git commit --amend -s, or
sign off a range during an interactive rebase.
Why Floci uses the DCO and not a CLA is explained in the organization contributing guide.
- Use Conventional Commits, e.g.
fix(container): expose the RDS port range. - Releases are cut by semantic-release from these messages:
featandfixcommits decide the next version, so pick the type that matches the change. - No AI attribution. Do not add "Generated by", "Co-Authored-By: …-bot", or similar trailers to commit messages.
Set up a development environment with uv (or
pip install -e ".[dev]"):
uv sync --extra devLint, format check and type check, as CI runs them:
ruff check .
ruff format --check .
mypy flociUnit tests need no Docker:
pytest -m "not integration" -vIntegration tests start a real Floci container, so they need Docker:
docker pull floci/floci:latest
pytest -m integration -vTo make sure every contribution gets a thorough, high-quality review in a reasonable time, we ask contributors to keep no more than 2 open, non-draft pull requests at any time in this repository.
- Why this policy exists: maintainer review time is limited. Capping concurrent open PRs prevents review backlogs, reduces context switching, and keeps PR cycle times short for everyone.
- Dependent work: if your work depends on a PR that has not been merged yet, build on that branch or note the dependency in the discussion instead of opening separate, uncoordinated PRs.
- Draft PRs: drafts do not count against the limit. Mark a draft as ready for review only when you have review capacity available.
- How it is applied: a bot labels your 3rd and later open pull requests
over-pr-limitwith a reminder. Starting 2026-10-08, from your 5th open pull request onward, new ones are closed automatically. Your branch and commits are kept, and you can reopen the PR once one of your other PRs is merged or closed. Maintainers and dependency bots are not counted.
Once your current pull requests are reviewed, merged, or closed, you are welcome to open new ones!
- 💬 Slack: quick questions and community chat.
- 🗣️ GitHub Discussions: feature ideas, design tradeoffs, and proposals.
By contributing, you agree to abide by the project Code of Conduct.