-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
github-actions[bot] edited this page Apr 26, 2026
·
2 revisions
Full guide: CONTRIBUTING.md. This page is the wiki summary.
git clone https://github.com/glloq/General-Midi-Boop.git
cd General-Midi-Boop
npm install
npm run dev # backend with hot reloadFor the frontend dev server only:
npm run dev:frontend- Open a feature branch off
main. - Keep changes focused — one feature or fix per PR.
- Follow the commit-message style visible in
git log(imperative mood, scope-prefixed where useful).
-
Linter: ESLint, configured in
.eslintrc.json. Runnpm run lintandnpm run lint:fix. -
Formatter: Prettier, configured in
.prettierrc. Runnpm run format. -
Type-checking: TypeScript ambient types in
src/types/. Runnpm run typecheck. -
Pre-commit hook: Husky + lint-staged auto-lints staged files (
.husky/pre-commit). Don't bypass with--no-verify.
| Command | What it runs |
|---|---|
npm test |
Backend unit + integration tests (Jest, ESM) |
npm run test:coverage |
Same with coverage report |
npm run test:frontend |
Frontend tests (Vitest) |
npm run test:frontend:watch |
Frontend tests in watch mode |
npm run bench |
Performance benchmarks under tests/performance/
|
Tests live under tests/ (unit, integration, performance, frontend).
Significant design choices are tracked as ADRs in docs/adr/. Read existing ADRs before proposing structural changes; add a new ADR when you make one.
- Update
docs/for deep technical changes. - Update the relevant wiki page in
wiki/for user-facing changes — it auto-syncs to the GitHub Wiki on merge tomain. - Add a note to
CHANGELOG.mdfor anything user-visible.
- Create or edit a module under
src/api/commands/. - Export
{ commands: { my_command: handler } }— theCommandRegistryauto-discovers it. - Cover it with a unit test.
- Document parameters and return shape in
docs/API.md. - Mention it in API-Reference if the count or example list changes.
- Subclass
BaseLightingDriver. - Register it in the lighting manager's driver map.
- Add fixture profiles to
DmxFixtureProfiles.jsif the driver speaks DMX. - Update Lighting with the new driver row.
Use GitHub Issues. Helpful information:
- OS, Node version, hardware (Pi 3B+ / 4 / 5)
- Output of
npm startwithGMBOOP_LOG_LEVEL=debug - Steps to reproduce, expected vs. actual behaviour
- Relevant section of
CHANGELOG.mdif upgrading
Général Midi Boop · MIT License · Sources tracked in wiki/ — edits synced on push to main.
Getting Started
Interface — Pages & Modals
- Interface-Main-Page
- Interface-Instrument-Creation
- Interface-Virtual-Piano
- Interface-Loop-Manager
- Interface-Lighting-Control
- Interface-Playlist
- Interface-Microphone
- Interface-Settings
- Interface-Hand-Management
Core Concepts
Reference
Operations
Community