Quando você usa Aplicar Gates de Fase a Projetos, o Fluid pega sua configuração atual de gates de fase e a aplica a todos os projetos que correspondem aos filtros escolhidos (metodologia, tipo de projeto, categoria, data de início). Antes de fazer isso, você escolhe um modo de aplicação: Mesclar ou Forçar.
Este artigo explica, em termos simples, o que cada modo faz e quando usá-lo.
A resposta rápida
Mesclar (alternância desativada) | Forçar (alternância ativada) | |
|---|---|---|
O que é | Uma atualização suave e aditiva | Uma reinicialização limpa |
Gates concluídos (fechados) | Mantidos | Mantidos |
Gates ainda em andamento | Atualizados no lugar | Limpos e reconstruídos |
A fase atual do projeto | Recalculada, mas normalmente não retrocederá* | Reiniciada e recalculada do zero |
Instâncias de pacote em execução | Mantidas e atualizadas | Limpas e reconstruídas do zero |
Etapas concluídas dentro de uma instância de pacote em execução | Mantidas — mas removidas se a etapa saiu do design do pacote † | Limpas (a instância do pacote é reconstruída) |
Melhor para | Implantações rotineiras de alterações de gates | Corrigir projetos que desviaram ou foram configurados incorretamente |
* Ambos os modos recalculam a fase atual do projeto. O modo Mesclar normalmente impede que um projeto retroceda — exceto quando as fases do projeto não têm datas definidas, caso em que a fase é determinada puramente com base em quais gates ainda estão abertos e pode retroceder. Consulte a seção 'O que acontece com a fase atual do projeto' abaixo.
† Não presuma que o modo Mesclar nunca exclui trabalho concluído. Uma etapa concluída dentro de uma instância de pacote ainda em execução é excluída se essa etapa tiver sido removida do design do pacote. Consulte a seção 'O que acontece com os pacotes de gates de fase' abaixo.
Mesclar é a escolha segura e cotidiana. Forçar é a escolha de "começar do zero" e pode remover trabalho em andamento, portanto, use-o deliberadamente.
Mesclar — a atualização normal e aditiva
O modo Mesclar alinha cada projeto com sua configuração atual de gates sem descartar o trabalho que já está em andamento.
Quando você executa o modo Mesclar:
Os gates concluídos e seu histórico de decisões são preservados. Nada que já foi aprovado é perdido.
Novos gates são adicionados e gates alterados são atualizados no lugar.
Gates que não fazem mais parte da configuração são removidos.
A fase atual do projeto é recalculada, mas o modo Mesclar é projetado para não empurrar um projeto para trás em configurações normais. (Há uma exceção importante quando as fases do projeto não têm datas — consulte 'O que acontece com a fase atual do projeto'.)
As instâncias de pacote em execução são mantidas e atualizadas para corresponder à definição de pacote mais recente. Consulte a seção 'O que acontece com os pacotes de gates de fase' abaixo.
Pense no modo Mesclar como "atualizar tudo para corresponder ao novo design, mas deixar o trabalho concluído e em andamento intacto."
Use o modo Mesclar quando: você fez uma alteração no design do seu gate ou pacote e deseja implantá-la em projetos ativos com o mínimo de interrupção. Esta é a escolha certa na grande maioria das vezes.
Forçar — a reinicialização limpa
O modo Forçar é um "destruir e reiniciar". Ele reconstrói a estrutura de gates de cada projeto a partir do seu design atual e recalcula a posição do projeto.
Quando você executa o modo Forçar:
Os gates concluídos (fechados) ainda são preservados — as aprovações finalizadas são mantidas.
Todo gate que não está concluído é limpo e recriado a partir do design atual. Qualquer decisão ou aprovação que estava em andamento nesses gates é encerrada (itens de processo são arquivados; decisões são canceladas).
A fase atual do projeto é totalmente reiniciada — ela é limpa primeiro e depois determinada novamente do zero em relação aos gates reconstruídos (consulte 'O que acontece com a fase atual do projeto').
As instâncias de pacote em execução são limpas e reconstruídas do zero, em vez de atualizadas.
Pense no modo Forçar como "demolir tudo que ainda não está concluído e reconstruí-lo de forma limpa a partir do design atual."
Use o modo Forçar quando: os gates de um projeto se tornaram inconsistentes ou foram configurados incorretamente, e você deseja uma cópia limpa garantida do design atual. Como ele descarta o trabalho em andamento, trate-o como uma ferramenta corretiva, não rotineira.
O que acontece com a fase atual do projeto
É um equívoco comum pensar que o modo Mesclar deixa a fase do projeto intocada. Não é assim — ambos os modos recalculam a fase atual após a aplicação dos gates. A diferença está em como eles fazem isso:
O modo Mesclar recalcula a fase ainda tratando a fase existente do projeto como ponto de partida, portanto, em uma configuração normal, não arrastará um projeto para trás.
O modo Forçar deliberadamente limpa a fase primeiro e depois a determina novamente do zero, sem memória de onde o projeto estava.
A exceção importante (modo Mesclar): se as fases do projeto não têm datas definidas, o modo Mesclar não tem nada para ancorar a fase, então ele a determina puramente com base em quais gates ainda estão abertos. Nessa situação, o modo Mesclar pode mover a fase atual do projeto para trás até a fase mais antiga que ainda tem gates incompletos (ou limpá-la completamente se nada estiver pendente). Portanto, em projetos sem datas, o modo Mesclar pode alterar a fase de maneiras que parecem uma reinicialização — este é o comportamento esperado, não uma falha.
O que lembrar: se seus projetos não usam datas de fase, não presuma que o modo Mesclar deixará a fase atual onde está. Verifique a fase após a aplicação, da mesma forma que faria com o modo Forçar.
O que acontece com os pacotes de gates de fase
Os pacotes de gates de fase precisam de uma explicação própria, pois se comportam de forma diferente dos gates comuns. Um lembrete rápido dos termos:
Um pacote é um grupo reutilizável de etapas definido na sua metodologia.
Uma instância de pacote é uma cópia em execução desse pacote em um projeto (um projeto pode ter mais de uma).
As etapas dentro de uma instância são seus gates filhos (às vezes chamados de subetapas).
A regra principal a lembrar: os gates filhos não são protegidos individualmente da mesma forma que os gates comuns concluídos. Eles existem e são encerrados junto com a instância de pacote à qual pertencem.
No modo Mesclar — as instâncias são mantidas e atualizadas
As instâncias de pacote em execução são mantidas. Elas não são desmontadas.
Cada instância em execução é alinhada com o design atual do pacote:
Gates filhos (etapas) que não fazem mais parte do pacote são removidos — mesmo que já tenham sido concluídos. Isso é importante: em uma instância ainda em execução, uma etapa concluída não está protegida. Se você remover essa etapa do design do pacote, o modo Mesclar a excluirá da instância e seu histórico de conclusão será perdido.
Etapas que foram adicionadas ao pacote são adicionadas à instância em execução.
As instâncias de pacote concluídas são congeladas e deixadas intocadas — uma vez que todas as etapas de uma instância estão concluídas, o modo Mesclar não a altera, mesmo que o design do pacote tenha mudado.
Após a adição ou remoção de qualquer etapa, o estado geral de conclusão/bloqueio do pacote é recalculado.
Portanto, o Merge mantém as instâncias de pacotes em andamento em execução e simplesmente ressincroniza suas etapas com o design mais recente — mas esteja ciente de que a ressincronização pode remover etapas concluídas de uma instância de pacote ainda em execução quando essas etapas não pertencem mais ao pacote.
Vale destacar: as pessoas frequentemente assumem que o Merge nunca exclui trabalhos concluídos. Isso vale para gates comuns e para instâncias de pacotes totalmente concluídas, mas não para uma etapa concluída dentro de uma instância de pacote ainda em execução — se essa etapa foi removida do design do pacote, o Merge a excluirá.
Com Force — instâncias em execução são desmontadas e reconstruídas
Instâncias de pacotes concluídas sobrevivem intactas — uma instância de pacote totalmente finalizada e suas etapas concluídas são mantidas.
Qualquer instância de pacote que ainda estava em execução é reconstruída do zero. Como o Force recria o gate pai do pacote, a instância em execução é desanexada e removida, e com ela todos os seus gates filhos — incluindo as etapas que já haviam sido concluídas. A instância do pacote é então recriada de forma limpa a partir do design atual.
Em resumo: executar um Force apply em um projeto com uma instância de pacote parcialmente concluída apagará as etapas concluídas dentro dessa instância. Apenas instâncias de pacotes totalmente concluídas mantêm seu histórico com o Force. Este é o principal motivo para preferir o Merge, a menos que você precise especificamente de uma reinicialização completa.
Comparação lado a lado
Situação do pacote | Merge | Force |
|---|---|---|
Instância totalmente concluída | Mantida intacta (congelada) | Mantida intacta (congelada) |
Instância em execução | Mantida, etapas ressincronizadas com o design atual | Removida e reconstruída do zero |
Etapas concluídas em uma instância em execução | Mantidas — exceto se a etapa foi removida do design do pacote, então é excluída | Removidas junto com o restante da instância |
Etapas adicionadas ao design do pacote | Adicionadas às instâncias em execução | Presentes na instância recém-reconstruída |
Etapas removidas do design do pacote | Removidas das instâncias em execução | Ausentes (instância reconstruída com o novo design) |
Como escolher
Comece com o Merge. É seguro, preserva o trabalho e é adequado para quase todos os lançamentos.
Escolha o Force apenas quando um projeto estiver genuinamente mal configurado ou desatualizado, e você entender que gates em andamento e instâncias de pacotes parcialmente concluídas serão reiniciadas.
Se um projeto tiver instâncias de pacotes ativas e parcialmente concluídas, tenha especial cuidado com o Force — considere se essas instâncias devem ter permissão para ser concluídas primeiro.
Bom saber
Ambos os modos se aplicam apenas a projetos que correspondem aos filtros escolhidos. Deixar todos os filtros vazios tem como alvo todos os projetos elegíveis, portanto verifique a contagem de "Aplicar a … Projetos" antes de confirmar.
Ambos os modos sempre mantêm os gates de nível superior concluídos — nenhum dos modos exclui decisões aprovadas em gates comuns.
Cada execução de apply é registrada para auditoria (quem a executou, qual modo, os filtros utilizados e quantos projetos foram afetados).