# Versionamento de pipelines

## Versionamento de pipelines

O versionamento é uma parte fundamental do ciclo de vida de desenvolvimento. Ele permite rastrear alterações, recuperar estados anteriores e gerenciar o ciclo de vida de integração entre diferentes ambientes (Test, Prod).

## Arquitetura de versões: Major e Minor

A Digibee utiliza um modelo de versionamento semântico simplificado baseado em dois níveis (X.Y):

<table data-full-width="false"><thead><tr><th>.</th><th>Versão Major (X.0)</th><th>Versão Minor (0.Y)</th></tr></thead><tbody><tr><td><strong>Impacto</strong></td><td>Significativo (mudanças estruturais ou críticas).</td><td>Incremental (ajustes, correções ou otimizações).</td></tr><tr><td><strong>Simultaneidade</strong></td><td>Permite múltiplas versões ativas em paralelo.</td><td>Apenas uma versão ativa por vez no ambiente.</td></tr><tr><td><strong>Criação</strong></td><td>Sempre manual.</td><td>Automática (ao salvar uma implementação anterior) ou Manual (via histórico).</td></tr></tbody></table>

### Versões Major (X.0)

As versões **Major** são as versões principais de um pipeline, destinadas a alterações profundas. Elas organizam o ciclo de vida do projeto, agrupando suas respectivas versões Minor em históricos distintos. É possível manter múltiplas versões Major de um pipeline em execução simultaneamente.

* **Quando utilizar:** Mudanças no contrato de entrada/saída, novas funcionalidades complexas ou alterações que exijam que sistemas consumidores se adaptem para evitar falhas de integração.
* **Lógica de numeração:** Se a versão atual é 1.5, a criação de uma Major resultará na 2.0.

#### Como criar uma versão Major

1. Na plataforma Digibee, acesse a tela de **Build**.
2. Localize o pipeline desejado através da barra de pesquisa.
3. No card do pipeline, clique no menu **Opções** (três pontos) e selecione **Nova versão**.
4. Confirme a ação no pop-up de segurança clicando em **Criar versão**.
5. Realize as alterações no Canvas, clique em **Salvar** e o pipeline estará pronto para implantação.

### Versões Minor (0.Y)

As versões **Minor** são iterações secundárias voltadas para melhorias contínuas dentro de uma mesma linhagem Major. Diferente das versões Major, o sistema não permite a execução simultânea de duas versões Minor (ex: 1.1 e 1.2) no mesmo ambiente.

A plataforma gera uma nova versão Minor automaticamente ao salvar o pipeline, desde que a versão atual já tenha sido implantada.

* **Quando utilizar:** Correções de bugs (hotfixes), otimizações de performance ou ajustes lógicos que não alteram a interface de comunicação do pipeline.
* **Lógica de numeração**: Se a versão atual é 1.1, a nova Minor será a 1.2.

#### Como criar uma versão Minor (via histórico)

Além do salvamento automático, você pode criar uma nova versão Minor a partir de uma versão antiga, desde que ela não esteja arquivada.

1. No card do pipeline (tela de **Build**), clique no menu **Opções** (três pontos) e selecione **Visualizar histórico**.
2. Na coluna **Ações**, clique no **sinal de mais (+)** para gerar uma nova versão Minor.
3. Faça as alterações necessárias no pipeline e clique em **Salvar**.

## Histórico e gerenciamento de versões do pipeline

O histórico de versões do pipeline lista todas as versões Minor de um pipeline associadas à sua versão Major. Nele, é possível visualizar quem realizou modificações e verificar o status de implantação por ambiente.

1. No card do pipeline (tela de **Build**), clique no menu **Opções** (três pontos) e depois selecione **Visualizar histórico**.
2. Ao acessar o histórico, os seguintes campos são exibidos:
   * **Versão:** Identificador numérico (X.Y).
   * **Autor:** Nome e e-mail do responsável pela última modificação.
   * **Data/Hora:** Timestamp da última atualização.
   * **Descrição:** Notas inseridas sobre as mudanças realizadas.
   * **Ações:** Comandos disponíveis para aquela versão específica.

Você também pode escolher quantas versões deseja visualizar por página no histórico de versões do pipeline e navegar pelo histórico usando a paginação no canto inferior direito.

### Ações disponíveis

Você pode usar o acesso ao histórico de versões do pipeline para executar ações como:

* **Editar (✏️):** Permite modificar a última versão Minor (desde que não esteja arquivada). Triggers e conectores estruturais não podem ser editados nesta visualização.
* **Visualizar (👁️):** Abre o pipeline em modo de leitura no Canvas.
* **Arquivar (🗃️):** Remove a versão da visualização principal na página de Build. Pipelines na Digibee não são deletados permanentemente por questões de integridade.
* **Restaurar (🕐):** Reativa uma versão previamente arquivada.

{% hint style="info" %}
Registros anteriores a 01/02/2022 podem exibir "No data" no campo de autor. Datas exibidas como 31/12/1969 indicam ausência de metadados em pipelines criados antes de 15/02/2021 (padrão do sistema Unix).
{% endhint %}

## Comparação visual de versões do pipeline (Visual Diff)

Para facilitar o troubleshooting e code review, a ferramenta **Visual Diff** permite comparar duas versões minor de pipelines implementados, lado a lado.

1. Acesse a página de **Run** e localize o pipeline.
2. No menu de três pontos, selecione **Abrir diferenças entre versões**.
3. Selecione as versões do pipeline que você quer comparar.
   1. Do lado **esquerdo** selecione as versões mais recentes do pipeline.
   2. Do lado **direito** selecione as versões anteriores à versão mais recente selecionada.
4. Clique em cada uma das etapas do pipeline para visualizar as mudanças nas configurações dos conectores. Etapas adicionadas ou removidas são destacadas com cores diferentes: verde para adições e vermelho para remoções.

No menu lateral esquerdo, é possível ver o número e tipo de mudanças executadas entre os pipelines selecionados. Você também pode usar a **barra de pesquisa** para localizar mudanças específicas.

* **Componentes adicionados:** Número de novos elementos no fluxo.
* **Componentes removidos:** Número de elementos ausentes na versão mais recente.
* **Componentes modificados:** Número de alterações em configurações internas (parâmetros, expressões, triggers) e mudanças nas conexões entre os elementos.
* **Resumo de alterações:** Número total de passos adicionados, removidos ou modificados.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/pipeline-versioning.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
