Skip to content

Latest commit

 

History

History
81 lines (59 loc) · 7.75 KB

BRANCHING_MODEL.md

File metadata and controls

81 lines (59 loc) · 7.75 KB

Branching & Release Model (Português (Portugal))

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


O OmniRoute utiliza um modelo de lançamento de ciclos paralelos: um ramo dedicado release/vX.Y.Z para o ciclo ativo, main para a linha publicada e uma etiqueta imutável vX.Y.Z quando esse ciclo é lançado. É normal ver commits a chegar a release/* e a main — não se trata de um engano.

Os detalhes para os responsáveis pela manutenção encontram-se em CLAUDE.md (Regra Rígida n.º 21) e RELEASE_CHECKLIST.md. Esta página é o resumo público destinado aos contribuidores.

Visão geral

Referência Função
release/vX.Y.Z Ciclo ativo — desenvolvimento diário e integração de PRs para essa versão
main Linha publicada — recebe o ciclo através de squash-merge quando a versão é lançada
vX.Y.Z (etiqueta) Marcador de lançamento — ponteiro imutável para «o que foi lançado», criado no momento do lançamento
flowchart LR
  A["ramo feat/fix"] --> B["PR → release/vX.Y.Z"]
  B --> C["ponta de release/vX.Y.Z"]
  C --> D["O PR de lançamento faz squash-merge → main"]
  D --> E["Etiqueta vX.Y.Z"]
  C --> F["Ciclo seguinte: release/vX+1 criado a partir da ponta congelada"]
Loading

Qual deve ser o destino do meu PR?

Defina como destino o ramo ativo release/vX.Y.Z — não main.

  1. Encontre o ramo release/v* aberto com a versão mais elevada (exemplo no momento da redação: release/v3.8.49).
  2. Crie um ramo a partir dessa ponta (git fetch + checkout / rebase sobre a mesma).
  3. Abra o PR com base = esse release/vX.Y.Z.

main não é o ramo de integração diária. Os PRs abertos contra main normalmente têm de ser redirecionados antes da integração.

Congelamento do lançamento (ciclos paralelos)

Quando um lançamento está a ser reconciliado, é aberta uma issue marcadora com a etiqueta release-freeze. Isto não interrompe o desenvolvimento:

  • O release/vX.Y.Z congelado fica a cargo do responsável por esse lançamento.
  • O release/vX+1 do ciclo seguinte é criado a partir da ponta congelada, para que os contribuidores possam continuar a integrar trabalho.
  • Os PRs abertos que ainda tenham como destino o ramo congelado devem ser redirecionados para o ramo release/v* ativo (com a versão mais elevada).

Verifique se existe um congelamento aberto antes de assumir que o ramo pretendido aceita integrações:

gh issue list --repo diegosouzapw/OmniRoute --label release-freeze --state open

A mecânica de integração (etiqueta queue do proprietário → Mergify) está documentada em MERGE_TRAIN.md.

Porquê um ramo e uma etiqueta?

Artefacto Duração Finalidade
release/vX.Y.Z Ciclo em curso Reúne PRs revistos, mantém o CI verde e serve de base para os PRs
Etiqueta vX.Y.Z Permanente Marca os elementos exatos que foram lançados no npm / GitHub Releases

O ramo é a oficina; a etiqueta é o pacote selado. Após o squash-merge para main, o ciclo seguinte prossegue em release/vX+1 sem esperar que o PR do lançamento anterior termine.

Documentação relacionada