flowral.docs

Contribuindo com Flowral Linux

Antes de começar

Leia README, decisões, arquitetura, performance, segurança e roadmap. O repositório contém especificações, ainda não produto funcional.

Desenvolvimento

  • Principal linguagem de apps: Rust; UI de apps próprios Slint; compositor é Swirl, não reescrever.
  • Base da distro: Void glibc/runit; proibir dependência incondicional de systemd.
  • Projetos separados em crates por domínio, funções pequenas, nomes descritivos, comentários e docs explicativas; sem abreviações crípticas.
  • Config em $XDG_CONFIG_HOME, estado em $XDG_STATE_HOME, cache em $XDG_CACHE_HOME; evitar paths hardcoded do usuário.
  • Nunca colocar segredos, dados pessoais, endereços, MAC, serial e tokens em commits ou fixtures.
  • Sem alterar arquivos ou configurações pessoais sem preview + backup/rollback.
  • Interfaces Slint seguem Flower Paper tokens; sem componentes paralelos com estilos hardcoded.
  • Mudança de tema atualiza adaptadores com transação; mudanças de MCP/providers devem preservar campos desconhecidos.
  • Prioridade para acessibilidade por teclado, mensagens curtas e claras, suporte a light/dark + reduced motion.

Fluxo de PR

  1. Abra issue com problema, critério de aceite, riscos e componente.
  2. Faça branch focada feat/<feature> ou docs/<topic>.
  3. Acrescente testes unitários/integração antes de alegar compatibilidade com hardware, APIs ou GUI.
  4. Atualize documentos de decisão e roadmap no mesmo PR, se aplicável.
  5. Rode cargo fmt, cargo clippy e testes Rust quando o workspace existir; não afirmar que testes foram rodados se não foram.
  6. Para alterações do build/ISO: executar em VM e disco de teste, capturar artefatos sem segredos; testar com BIOS/UEFI.
  7. Descrever métricas de memória usando protocolo versionado.

Política de dependências

  • Preferir APIs estáveis, pequenas, mantidas e auditadas.
  • Não trocar Slint por Tauri/egui/Qt sem ADR; testar integração Layer Shell separadamente.
  • Não distribuir software proprietário não redistribuível, ROMs/fonts/imagens sem licença.
  • Exigir manifest de origem/hash/versão para downloads upstream.
  • Evitar curl|sh automático sem auditoria e controle de versão.

Segurança

Não publicar credenciais mesmo mascaradas parcialmente se puderem ser recuperadas; segredos nunca em logs; confirmar código executado por MCP; não alterar o bootloader/discos em ambiente do usuário ao testar.

ADR

Nova decisão relevante: adicionar em docs/02-decisoes.md com FL-xxx + status proposto/aprovado/aberto, justificativa, alternativas, testes, rollback e data. Não confundir proposta da assistência com autorização explícita.