Jobber/CONTRIBUTING.md
2026-02-22 21:16:20 +00:00

4.0 KiB

Contributing to JobOps

Thanks for helping improve JobOps.

This guide is intentionally short and GitHub-friendly. It focuses on contributor workflow and links to the existing docs for setup, style, and troubleshooting so we do not duplicate documentation.

What You Can Contribute

  • Bug fixes and reliability improvements
  • UI/UX improvements
  • Extractors and integrations
  • Documentation updates
  • Tests and developer experience improvements

Before You Start (Pick a Path)

Use the path that matches your change:

Path Main folders Start command(s) Canonical docs
Docs/content docs-site/docs npm run docs:dev Docs style guide, FAQ
App/UI/API orchestrator, shared npm --workspace orchestrator run dev Self-hosting, Troubleshooting
Extractors extractors/*, sometimes shared Relevant type checks + tests Add an extractor, Extractors overview

Local Setup (Minimal)

For full end-user setup, environment variables, OAuth, and deployment details, use the Self-Hosting Guide and Gmail OAuth Setup.

Contributor baseline from repo root:

npm ci
npm --workspace orchestrator run db:migrate
npm --workspace orchestrator run dev

If you are editing docs:

npm run docs:dev

Local URLs:

  • Orchestrator UI: http://localhost:5173
  • Orchestrator API: http://localhost:3001
  • Docs site: http://localhost:3006

How to Make a Change

  1. Create a branch from origin/main.
  2. Keep the PR focused on one change or one problem.
  3. If the change is user-visible, update docs (or link the relevant docs update in the same PR).
  4. Include screenshots or short clips for UI changes when helpful.
  5. Mention any tradeoffs or follow-up work in the PR description.

Validation Before PR (CI-Parity Checks)

Run from the repository root:

./orchestrator/node_modules/.bin/biome ci .
npm run check:types:shared
npm --workspace orchestrator run check:types
npm --workspace gradcracker-extractor run check:types
npm --workspace ukvisajobs-extractor run check:types
npm --workspace orchestrator run build:client
npm --workspace orchestrator run test:run

If tests fail due to a better-sqlite3 Node ABI mismatch, rebuild it and rerun tests:

npm --workspace orchestrator rebuild better-sqlite3

CI runs on Node 22. If local behavior differs, verify with Node 22 before concluding a change is valid.

Before editing server routes/services, read AGENTS.md for repository standards, especially:

  • /api/* response contract and status/code mapping
  • Correlation/request IDs (x-request-id) and logging context
  • Shared logger usage in core server paths (no direct console.*)
  • SSE helper usage
  • Redaction/sanitization defaults for logs and error details
  • Minimal webhook and LLM payload defaults

Where to Find Deeper Docs