Modelo de Branches
Esta pagina documenta o fluxo oficial de branches do projeto.
Branches permanentes
main: branch estavel e publica do repositoriodevelop: branch de integracao para a proxima rodada de melhorias
Branches curtas recomendadas
feat/*: novas funcionalidadesfix/*: correcoesdocs/*: documentacao, wiki e textos oficiaischore/*: manutencao, limpeza e toolinghotfix/*: correcoes urgentes que nasceram demainrelease/*: preparacao de release
Padrao exato
Nomes aceitos:
maindevelopfeat/<slug-kebab-case>fix/<slug-kebab-case>docs/<slug-kebab-case>chore/<slug-kebab-case>hotfix/<slug-kebab-case>release/vX.Y.Z
Exemplos validos
feat/add-branch-policyfix/checkpoint-restore-bugdocs/update-wiki-linkschore/reorganize-ci-cachehotfix/fix-release-linkrelease/v2.4.0
Exemplos invalidos
feature/nova-coisadocs/wiki linksFeat/maiuscularelease/2.4.0minha-branch
Fluxo sugerido
- criar uma branch curta a partir de
develop - implementar a mudanca
- validar com
python -m rede_neural_do_zero verify --build-package - validar nome e destino do PR
- integrar em
develop - promover
developparamainquando a rodada estiver pronta para release
Destino correto do pull request
feat/*->developfix/*->developdocs/*->developchore/*->develophotfix/*->mainrelease/*->maindevelop->mainmain->develop
Comando util:
python -m rede_neural_do_zero check-branch --name feat/add-branch-policy --target develop
Verificacao automatica
O repositorio agora valida esse padrao de tres formas:
- comando local:
python -m rede_neural_do_zero check-branch --name feat/add-branch-policy --target develop - script leve para automacao:
python src/interfaces/branch_policy.py --name feat/add-branch-policy --target develop --json - workflow
Branch Policyno GitHub Actions para pushes e pull requests, incluindo a branch-base do PR
Regras praticas
maindeve representar o estado mais confiavel do projeto- tags e releases saem de
main developpode receber trabalho em andamento da proxima versao- mudancas urgentes em
maindevem ser sincronizadas de volta paradevelop
Governanca adicional
Para deixar esse fluxo menos manual, o projeto tambem usa:
- protecao oficial em
mainedevelop CODEOWNERSpara areas sensiveis do repositorio- reviewers padrao baseados no
CODEOWNERS - labels automaticas de PR por prefixo da branch
- workflow
Hotfix Syncpara abrir PR demainparadevelopdepois de um hotfix - release notes em draft geradas a partir do
CHANGELOG.md - squash merge como padrao oficial de merge no GitHub
- template de release PR em
.github/PULL_REQUEST_TEMPLATE/release.md
Objetivo desse modelo
O foco aqui e manter o projeto:
- profissional
- organizado
- facil de manter
- simples o bastante para um repositorio educacional e de portfolio