Skip to content

Latest commit

 

History

History
72 lines (50 loc) · 3.68 KB

File metadata and controls

72 lines (50 loc) · 3.68 KB

Contributing to Open CoDesign

Thanks for considering a contribution. This project is in pre-alpha: the architecture is being shaped, the codebase is small, and we are deliberately keeping the surface area lean. The fastest way to help is to file thoughtful issues; the second fastest is to start a discussion before writing code.

Before you start

Running locally

Use Node.js 22 LTS and the pnpm version pinned in package.json (currently 10.33.4). From your local checkout, run:

corepack enable pnpm
pnpm install --frozen-lockfile
pnpm dev

These commands also work in Windows PowerShell. Use pnpm, not npm install or npm run dev: this repository uses pnpm workspaces. If pnpm is not found, enable its Corepack shim and make sure it is on PATH; invoking only corepack pnpm dev is insufficient when Turborepo cannot find the pnpm binary.

pnpm dev starts both the Electron desktop app and the documentation site. To start only the desktop app, use pnpm --filter @open-codesign/desktop dev. The desktop UI opens in an Electron window; opening its Vite URL in an ordinary browser does not provide the desktop IPC APIs.

Filing an issue

Use our issue templates:

  • Bug report — reproduction steps, OS/version, and a diagnostics bundle (Settings → Storage → Export diagnostics) speed up triage significantly.
  • Feature request — explain the user problem before proposing a solution, and confirm the proposal does not conflict with the hard constraints.

Submitting a PR

  1. Open an issue or discussion first for anything bigger than a typo. We may have already considered the change, or have a better path in mind.
  2. Fork, branch, code. Branch name: <type>/<short-slug> (e.g. feat/url-style-steal, fix/cjk-pptx-wrap).
  3. Conventional Commits subject required. Types: feat, fix, docs, chore, refactor, test, perf, ci, build.
  4. Run locally: pnpm lint && pnpm typecheck && pnpm test. If lint only reports Biome formatting or safe autofix issues, run pnpm lint:fix, commit the result, then rerun the checks.
  5. Add a changeset if your change is user-visible: pnpm changeset.
  6. One concern per PR. Refactors, fixes, and features in separate PRs.
  7. Keep PRs small. Anything over ~400 LOC of substantive change should be split or pre-discussed.

Dependency policy

Adding a production dependency requires PR description to include:

  • Install size impact (run pnpm why <pkg> and report the unpacked size)
  • License (must be MIT-compatible permissive software: MIT, BSD, ISC, or similar; never GPL/AGPL/SSPL)
  • Why this and not alternatives
  • Could it be a peer dep instead?

The bar is intentionally high. We're at < 30 prod deps and want to stay there.

Code style

Biome handles formatting and most lint rules. pnpm lint:fix applies fixes. Don't hand-format.

Licensing of contributions

By submitting a PR, you agree that your contributions are licensed under MIT.

Where to ask questions

  • Architecture / direction: GitHub Discussions
  • Bugs / feature requests: GitHub Issues
  • Real-time chat: (Discord link to be added)