Diretrizes de Contribuição
As diretrizes de contribuição definem como o código e a base de conhecimento da SME Rust se mantêm saudáveis: templates de PR, CODEOWNERS, portões de CI e quando atualizar os artigos de site/rust/ juntamente com mudanças de comportamento.
Receita
Cartão de receita de referência rápida - pronto para copiar e colar.
# Essenciais do CONTRIBUTING.md
1. Fork/branch a partir de `main`
2. `cargo fmt && cargo clippy -- -D warnings && cargo test`
3. Descrição do PR usa template (intenção, risco, rollback)
4. Atualizar docs se for visível para o usuário ou tiver impacto on-call
5. Atualização do artigo do site SME se o padrão da frota mudarQuando usar isto:
- Publicação de código aberto
- Novo engenheiro pergunta "como contribuo?"
- Desvio da base de conhecimento em relação ao código
- Auditoria de controle de mudanças
Exemplo de Trabalho
# .github/pull_request_template.md
## Intenção
## Risco (migração / unsafe / perf / segurança)
## Evidência de teste
## Plano de Rollback
## Docs
- [ ] rustdoc / README
- [ ] runbook
- [ ] Site SME (link do PR)# CODEOWNERS
/crates/orders-domain/ @bob @alice
/migrations/ @dba-team @bob
**/unsafe/ @security-rustMergulho Profundo
Fluxo de Contribuição
- Issue ou RFC para trabalho M/L.
- Pequenos correções: issue opcional, mas descrição do PR obrigatória.
- CI deve passar: teste, clippy, auditoria/deny, verificação de migração.
- Squash merge com mensagem de commit convencional opcional por equipe.
Manutenção do Site SME
Atualize site/rust/ quando:
- O padrão da frota muda (novo deny do clippy, política de implantação).
- Artigo referenciado no onboarding está incorreto.
- Novo estudo de caso de post-mortem aprovado pela guild.
Não duplique segredos específicos do serviço ou SHAs em artigos SME - use placeholders.
Contribuintes Externos
Labels good-first-issue; MSRV e edição no README; referência ao CoC.
Armadilhas
- CONTRIBUTING existe, mas CI difere - Correção: Fonte única; badges de CI no README.
- CODEOWNERS desatualizado - Revisores errados. Correção: Auditoria trimestral na retro.
- PRs apenas de docs ignorados - Degradação do conhecimento. Correção: Mesma gentileza de revisão que o código.
- Atualizações órfãs do site SME - Correção: Link do PR do artigo no PR de implementação.
Alternativas
| Alternativa | Usar Quando | Não Usar Quando |
|---|---|---|
| Trunk-based all | CI maduro + flags | Aprendendo a base de código Rust |
| Fork PR only OSS | Contribuintes externos | Monorepo interno |
| Commits assinados obrigatórios | Alta segurança | Atrito inicial de startup |
FAQs
Quem aprova edições SME?
Mesma guild dos mantenedores de docs/adr; link para os proprietários da seção do manifesto.
Processo de mudança de API que quebra compatibilidade?
Aumento de Semver + changelog + guia de migração no PR.
PRs do bot de dependência?
Auto-merge de patch se CI verde; minor precisa de revisão do proprietário.
Cabeçalhos de licença?
Política da frota em CONTRIBUTING; verificação de licença cargo deny.
Correções de segurança sob embargo?
Fluxo de trabalho de fork privado; atualização pública SME após o lançamento.
Relacionados
- Cultura de Revisão de Código - normas de revisão
- Convenções de Documentação - onde escrever
- Governança de Dependências e Unsafe - dependências
- Melhores Práticas de Git - controle de versão
- Melhores Práticas de Governança - resumo
Versões da Stack: Esta página foi escrita para Rust 1.97.0 (edição 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.