Thank you for considering contributing. This short guide will help you get started.
Compatibility: µcBlockly v3 requires Blockly 13 (blockly ^13 and aligned @blockly/* plugins). See the root README and KERNEL.md.
See ARCHITECTURE.md for:
src/ and subfolders: core/, host/, demo/)npm install npm run dev for development with hot reload npm run build for production build (demo + core bundle) npm run build:core for the embeddable kernel only npm run lint — ESLint (including eslint-plugin-tsdoc for comment syntax) npm run test — Arduino generator and Blockly@rduino converter tests npm run check-translations — after editing src/languages/ npm run build:lib — ensure TypeScript compiles @packageDocumentation, @description, @remarks, @param, @returns for public APIs (see TYPEDOC.md) | Task | Where to look |
|---|---|
| Add or change a block (UI) | src/categories/blockly/ + index.ts |
| Add or change code generation for a block | src/generators/arduino/blocks/ + src/generators/arduino.ts |
| Add block types / compatibility | src/generators/arduino/block_types/, block_types.ts, block_types_registry.ts — TYPES_ET_COMPATIBILITES.md |
| Change toolbox or categories | src/toolbox.ts |
| Add a board or change pins | src/boards.ts |
| Add or edit a language | src/languages/ — then npm run check-translations |
| Convert Blockly@rduino project | npm run convert-rduino — see CONVERT_RDUINO.md |
| Regenerate functions inventory | npm run extract-functions → docs/functions-list.md |
Keeping ARCHITECTURE.md and this file up to date when you change the project layout or workflow is appreciated.