meta données pour cette page
- fr
Contributing to µcBlockly
Thank you for considering contributing. This short guide will help you get started.
Before you start
Compatibility: µcBlockly v3 requires Blockly 13 (blockly ^13 and aligned @blockly/* plugins). See the root README and KERNEL.md.
- Read the architecture
See ARCHITECTURE.md for:
- Source layout (
src/and subfolders:core/,host/,demo/) - Conventions (comments, TSDoc / TypeDoc, block definitions vs code generation)
- Where to change what (new blocks, types, toolbox, boards, languages, themes)
- Set up the project
npm installnpm run devfor development with hot reloadnpm run buildfor production build (demo + core bundle)npm run build:corefor the embeddable kernel only
- Quality checks before a PR
npm run lint— ESLint (includingeslint-plugin-tsdocfor comment syntax)npm run test— Arduino generator and Blockly@rduino converter testsnpm run check-translations— after editingsrc/languages/npm run build:lib— ensure TypeScript compiles
- Code style
- Documentation comments (TSDoc, consumed by TypeDoc) in English
- Use
@packageDocumentation,@description,@remarks,@param,@returnsfor public APIs (see TYPEDOC.md)
Common tasks
| 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 |
Reporting issues and pull requests
- Bugs and feature requests: use the GitHub issue tracker.
- Pull requests: welcome. Please keep changes focused and reference any related issue.
Keeping ARCHITECTURE.md and this file up to date when you change the project layout or workflow is appreciated.