Skip to content

Latest commit

 

History

History
84 lines (59 loc) · 3.76 KB

File metadata and controls

84 lines (59 loc) · 3.76 KB

Contributing to testcontainers-floci (Python)

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.

Developer Certificate of Origin (DCO) sign-off

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.

Commit messages

  • Use Conventional Commits, e.g. fix(container): expose the RDS port range.
  • Releases are cut by semantic-release from these messages: feat and fix commits 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.

Running tests locally

Set up a development environment with uv (or pip install -e ".[dev]"):

uv sync --extra dev

Lint, format check and type check, as CI runs them:

ruff check .
ruff format --check .
mypy floci

Unit tests need no Docker:

pytest -m "not integration" -v

Integration tests start a real Floci container, so they need Docker:

docker pull floci/floci:latest
pytest -m integration -v

Pull Request Limits and Review Bandwidth

To 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-limit with 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!

Questions and discussion

  • 💬 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.