Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Contributing to InferenceX

Thanks for contributing! PRs are welcome. This page covers the review process every PR goes through before it can be merged.

## PR review flow

1. Open your PR and get it through PR validation (a green full sweep, including evals, on a commit in your PR).
2. Request a review from your respective company's [CODEOWNER](.github/CODEOWNERS).
3. The CODEOWNER reviews and posts the **PR Review Checklist** sign-off (see below) in their approval comment.
4. Only after the checklist sign-off is posted should you ping a core maintainer on Slack for final approval.

## The PR Review Checklist (CODEOWNER sign-off)

When a CODEOWNER approves a PR, they must fill in the latest [PR_REVIEW_CHECKLIST.md](docs/PR_REVIEW_CHECKLIST.md) template in their approval comment.

A friendly reminder — please follow the latest checklist template **correctly**:

- Always copy the template from the **current** [docs/PR_REVIEW_CHECKLIST.md](docs/PR_REVIEW_CHECKLIST.md) on `main`. The checklist evolves; a sign-off made from a stale copy will be flagged as missing items.
- Keep the template's opening phrase intact:

> As a PR reviewer and CODEOWNER, I have reviewed this and have:

Our CI verification workflow, [`codeowner-signoff-verify.yml`](https://github.com/SemiAnalysisAI/InferenceX/blob/main/.github/workflows/codeowner-signoff-verify.yml), triggers on exactly this phrase. **If your approval comment does not follow the checklist template — including that phrase — the sign-off verification CI will not trigger at all**, and your sign-off won't count toward merge.
- The sign-off can be posted as a regular conversation comment, a review summary, or an inline review comment — all three trigger verification.
- Fill in the "Additional detail section" with the links the checklist asks for (validation/eval workflow runs, the corresponding [vLLM recipe](https://github.com/vllm-project/recipes) / [SGLang cookbook](https://github.com/sgl-project/sglang/tree/main/docs_new) PR, and any exception reasoning).

Once the sign-off is posted, CI independently re-verifies the claims that gate a merge — CODEOWNER status, a green sweep + evals on a commit in the PR, the linked recipe, the `/reuse-sweep-run` command, use of the latest checklist template, upstream [vLLM](https://hub.docker.com/u/vllm)/[SGLang](https://hub.docker.com/u/lmsysorg) images, no architecture-changing benchmark hacks, and chat-template usage for speculative decoding — and posts a verdict comment on the PR. Checkmarks are not taken on trust, so please only check items you have actually verified.

## After merging

**PR authors are responsible for ensuring that after merging, all GitHub Action jobs fully pass.** A lot of the time, failures are just flakes and simply re-running the failed jobs will fix it. [See GitHub's docs on re-running failed jobs](https://docs.github.com/en/actions/how-tos/manage-workflow-runs/re-run-workflows-and-jobs#re-running-failed-jobs-in-a-workflow).