Thanks for your interest in contributing to TestingKit, part of the Phenotype ecosystem.
All non-trivial work in this organization is tracked in AgilePlus. Before opening a PR for a feature or substantive change:
- Check the AgilePlus spec registry for an existing spec.
- If none exists, open one (
agileplus specify --title "<feature>" --description "<desc>") and link it from your PR description. - Trivial fixes (typos, dependency bumps, doc tweaks) do not require a spec.
This repository is polyglot. Build the language(s) you are touching:
git clone https://github.com/KooshaPari/TestingKit.git
cd TestingKit
# Rust (rust/ subtree)
( cd rust && cargo build --workspace && cargo test --workspace && cargo clippy -- -D warnings )
# Go (go/ subtree)
( cd go && go build ./... && go test ./... && go vet ./... )
# Python (python/ subtree)
( cd python && uv sync && uv run pytest && uv run ruff check . )Use kebab-case prefixed by intent:
feat/<scope>-<short-desc>— new featurefix/<scope>-<short-desc>— bug fixchore/<scope>-<short-desc>— tooling, deps, infradocs/<scope>-<short-desc>— docs onlyrefactor/<scope>-<short-desc>— non-behavioral change
Follow Conventional Commits. Examples:
feat(api): add token refresh endpointfix(parser): handle empty inputchore(deps): bump tokio to 1.40
If a commitlint.config.* exists in the repo, it is enforced; otherwise the convention above is the floor.
- Keep PRs focused and small; split unrelated changes.
- Ensure the build, tests, lint, and format checks above pass locally before pushing.
- Describe what changed and why. Link the AgilePlus spec, issue, or ADR.
- Expect review from a maintainer; be responsive to feedback.
- Squash-merge is the default; the PR title becomes the commit subject.
This repo participates in the Phenotype quality regime: zero new lint suppressions without justification, traceability to FR IDs where applicable, and 0-error CI on Linux runners. See AGENTS.md / CLAUDE.md if present for repo-specific governance.
Open a GitHub issue with reproduction steps, expected vs. actual behavior, and environment details (OS, toolchain version).