Contribution Guidelines
Seja open-source ou interno, repos Solana precisam de regras claras de contribuição: quem revisa mudanças de programa, como propor ADRs e como este guia aceita correções de artigos.
Receita
Cartão de receita para referência rápida - pronto para copiar e colar.
## PR checklist
- [ ] Tests pass (anchor test / LiteSVM)
- [ ] IDL updated if program interface changed
- [ ] ADR linked if architectural
- [ ] Runbook updated if ops changed
- [ ] No secrets in diffQuando usar:
- Publicar
CONTRIBUTING.mdno GitHub - Onboarding de contractors
- Lançamento de comunidade open-source
- Correção do guia por leitor
Exemplo Prático
# CONTRIBUTING.md (excerpt)
## Branches
- `main` protected; require 2 approvals on `programs/`
- Feature: `feat/withdraw-v2`
## Commits
feat(lending): add withdraw_v2 instruction
fix(client): bigint amount parsing
docs(incident): update pause runbook
## Security
security@company.com - do not open public issues for exploits# CODEOWNERS
programs/ @solana-team-leads
docs/runbooks/ @sre-oncall
site/solana/ @docs-maintainersO que isso demonstra:
- Proteção de branch alinhada ao risco
- Conventional commits para release notes
- Canal privado de segurança
- Roteamento CODEOWNERS
Aprofundamento
Tipos de contribuição
| Mudança | Revisores | Gates extras |
|---|---|---|
| Lógica de programa | 2 sêniores + segurança | Testes de atacante LiteSVM |
| Só cliente | 1 sênior | Smoke de simulação |
| Guia docs | 1 mantenedor | lint-docs |
| Runbook | Owner ops | Drill opcional |
Contribuições ao guia
- Corrija erros factuais via PR em
site/solana/ - Corresponda versões da stack em manifest.json
- Sem em dash; footer da stack na última linha
Erros comuns
- PR de programa drive-by sem contexto - Rejeite educadamente; exija link RFC. Correção: Template CONTRIBUTING.
- Issue pública de exploit - Risco de copycat. Correção: Política de segurança em destaque.
- Docs sem lint - Links quebrados vão para produção. Correção: CI
lint-docscomo check obrigatório. - Dependência sem licença - Risco jurídico. Correção: Allowlist de licença em
cargo deny. - Force push em main - Incidente à espera. Correção: Proteção de branch.
Alternativas
| Alternativa | Use quando | Não use quando |
|---|---|---|
| Só fork + PR | Open source | Monorepo interno |
| Trunk merge | Mantenedor solo | Programa com fundos |
| DCO sign-off | Projetos Apache | Equipe interna pequena |
FAQs
Primeira contribuição?
Escolha good first issue em cliente ou docs; não segurança de programa.
CLA obrigatório?
Política da org; open source frequentemente sim.
SLA de review?
Documente em CONTRIBUTING - ex.: primeira resposta em 2 dias úteis.
Quem faz merge?
Autor não pode fazer merge do próprio PR de programa; merge on-call para hotfix com aprovação IC.
Release notes?
De conventional commits na tag; bump de versão IDL incluído.
Traduzir docs?
Inglês primeiro; pipeline translate-es pós-lançamento.
PRs gerados por IA?
Humano deve verificar afirmações Solana; responsabilidade do revisor inalterada.
Deprecação?
ADR + semver + data de sunset no CHANGELOG.
RFC da comunidade?
Discussão GitHub -> triagem interna -> RFC eng se aceita.
Estilo de página do guia?
Siga spine sme-content-article; veja páginas irmãs na seção.
Relacionados
- Documentation Conventions - onde docs vivem
- Coding & Program Standards - estilo de código
- Audit & Bug-Bounty Program - intake de segurança
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.