Skip to content

Latest commit

 

History

History
75 lines (56 loc) · 2.95 KB

File metadata and controls

75 lines (56 loc) · 2.95 KB

Contributing to Fluidd

Fluidd is an independent web client for Klipper (via Moonraker), built with Vue 2.7 and TypeScript.

Contributions of all kinds are welcome — bug reports, feature requests, code, and translations. This document covers the process and rules. For setup instructions and a tour of the codebase, see the Development guide.

Before you start

  • Read the Development guide — it covers the Dev Container, running Fluidd locally, and a quick architecture overview.
  • After cloning, run npm ci && npm run bootstrap to install dependencies and set up the Git hooks that pre-validate your commits.

Branching and pull requests

  • Create your work on a feature branch from develop — for example, feat/my-feature branched from develop. Do not open pull requests from develop or master directly.
  • Pull request titles must follow conventional commits. This is enforced by CI.
  • Accepted pull requests are squashed and rebased onto develop when merged.

Commits

  • Use conventional commits for every commit message. Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, types, i18n.

  • The commit subject must be 50 characters or fewer — enforced by the commit-msg Git hook.

  • Every commit must include a Signed-off-by line. The easiest way is to commit with git commit -s. Signing off acknowledges the Developer Certificate of Origin and must contain your real name and a current email address. Example:

    feat: my feature
    
    Some description of what changed and why.
    
    Signed-off-by: Your Name <your@email>
    

Code quality

Source must pass linting and type-checking with zero warnings and zero type errors. Before pushing, run:

npm run lint
npm run type-check
npm run test

CI runs the same checks (plus npm run circular-check and a production build) on every pull request.

Translations

Translations are managed via Weblate — do not edit non-English files in src/locales/ directly. New strings should be added to src/locales/en.yaml; Weblate handles the rest. See the Localization section of the Development guide for more.

A note on CLAUDE.md

The CLAUDE.md file in the repository root is an exhaustive reference written for AI coding assistants (Claude Code, Cursor, and similar tools). It documents architecture, patterns, and gotchas in detail. Humans are welcome to read it as a deeper second source, but the canonical onboarding doc for human contributors is the Development guide.