Skip to main content

PR Process

All changes to CleverThis go through pull requests. This page describes the expected steps from writing code to landing a change.

Before you open a PR

  • Run nox -s lint typecheck test and fix any failures.
  • Run pnpm test for webapp changes.
  • If your change adds a new feature or modifies public behavior, update the relevant documentation page(s) in docs/.
  • For significant architectural changes, open a discussion issue first or write an ADR. See ADR Process.

Opening the PR

  1. Push your branch and open a pull request against main.
  2. Fill in the PR template: summary, motivation, testing notes, and any migration considerations.
  3. The CI pipeline runs automatically. It must pass before the PR can be merged.
  4. A reviewer is auto-assigned based on the files changed. Tag an additional reviewer if the change touches a critical path (auth, billing, the Actor executor).

CI pipeline

The CI pipeline on every PR runs:

  • nox -s lint typecheck test (Python)
  • pnpm test (TypeScript)
  • Docker build (verifies the production image builds)
  • Database migration check (verifies migrations apply cleanly)

Review expectations

  • Reviewers aim to respond within 2 business days.
  • Address all review comments with either a code change or a clear explanation.
  • Prefer resolving discussions rather than marking them outdated — leave a reply confirming the change.
  • Do not force-push after a review has started unless asked to rebase.

Merging

PRs are merged using squash merge to keep the main branch history clean. The squash commit message is taken from the PR title — make sure it is descriptive and uses the conventional commit format (feat:, fix:, docs:, refactor:, test:, chore:).

Coming soon

Documentation for the release process (changelog generation, tagging, PyPI/npm publishing) is being added.