Thank you for your interest in contributing to OpenReview! This document covers the process for contributing to this project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone git@github.com:<your-username>/OpenReview.git cd OpenReview
- Install dependencies:
nvm use # Node 22 via .nvmrc pnpm install - Create a branch for your work:
git checkout -b feat/your-feature-name
pnpm build # all workspaces
pnpm --filter @openreview/core build # single workspacepnpm test # all tests
npx vitest run core/src/config/env.test.ts # single file
pnpm test:watch # watch mode# Review a real PR (fast mode)
GITHUB_TOKEN=ghp_xxx node cli/dist/main.mjs review --url <PR-URL> --output text
# Review + post findings to GitHub
GITHUB_TOKEN=ghp_xxx node cli/dist/main.mjs review --url <PR-URL> --submit
# Run the 10-PR QA suite
node tests/qa/test-10-prs.mjspnpm lint # check
pnpm lint:fix # auto-fix
pnpm format # format all files
pnpm format:check # check formattingAll code must pass pnpm lint, pnpm typecheck, and pnpm test before submitting a PR.
core/ # @openreview/core — review engine, LLM router, GitHub client
cli/ # openreview — CLI (npx openreview)
action/ # @openreview/action — GitHub Action
web/ # Phase 2 placeholder (React 19 + Vite 8)
core/contains all business logic.cli/andaction/are thin wrappers.- All packages use ESM (
"type": "module"). - ESLint 10 flat config (
eslint.config.js) — no.eslintrcfiles. - Vitest for testing — no Jest.
- tsdown for bundling — no tsup.
- Ensure your branch is up to date with
main:git fetch origin git rebase origin/main
- Run all checks:
pnpm lint && pnpm typecheck && pnpm test
- Push your branch and open a PR against
main. - Fill in the PR template with a description of your changes.
- Wait for CI to pass and a maintainer to review.
| Prefix | Use |
|---|---|
feat/ |
New features |
fix/ |
Bug fixes |
refactor/ |
Code refactoring |
docs/ |
Documentation only |
test/ |
Test additions or fixes |
chore/ |
Build, CI, dependency updates |
Use conventional commits:
feat: add copy/move detection to diff parser
fix: handle rate limit 403 in GitHub client
docs: update CLI examples in README
Open an issue on GitHub with:
- Steps to reproduce
- Expected vs actual behavior
- Node.js version, OS, and relevant environment details
- CLAUDE.md — Architecture overview, commands, conventions for AI coding agents
- REVIEW.md — OpenReview's own review rules (code style, architecture, testing, security)
- SETUP.md — Detailed setup guide with configuration reference and troubleshooting
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
By contributing, you agree that your contributions will be licensed under the MIT License.