Contribuindo com o Ioruba
Stack ativa
O caminho atual do produto vive em:
- apps/desktop para o app desktop Tauri + React
- apps/desktop/src-tauri para o backend Rust
- packages/shared para logica de protocolo e runtime compartilhada pela UI
- firmware/arduino/ioruba-controller para o firmware Arduino
Tudo que esta em legacy/ e material de referencia arquivado e so deve ser alterado quando voce estiver documentando ou comparando comportamento antigo.
Setup local
Instale as dependencias:
npm install
Passe de validacao recomendado:
npm run verify
Se voce estiver alterando o shell desktop em si, tambem gere o binario Tauri:
npm run desktop:tauri:build
Se voce editar o source do icone em apps/desktop/src-tauri/icons/app-icon.svg, regenere todos os assets derivados para desktop, Android, iOS, icns e ico com:
npm run desktop:icons
Se voce estiver alterando firmware:
arduino-cli compile --fqbn arduino:avr:nano firmware/arduino/ioruba-controller
Workflow
- Mantenha as mudancas focadas na stack ativa, a menos que a tarefa mire explicitamente legacy/.
- Atualize docs quando caminhos, comandos ou comportamento de runtime mudarem.
- Prefira adicionar testes junto de packages/shared, apps/desktop ou apps/desktop/src-tauri quando houver mudanca de comportamento.
- Regenere assets gerados, incluindo icones desktop, sempre que os arquivos-fonte mudarem.
- Nao reintroduza arquivos Haskell na raiz nem tooling antigo de release fora de legacy/.
Pull requests
Antes de abrir um PR, garanta que:
- npm run verify passa
- npm run desktop:tauri:build passa para mudancas no shell desktop
- firmware continua compilando quando arquivos de firmware mudarem
- docs refletem o layout atual do repositorio