Gerenciamento do Branch de Versão

Descrição de todas as etapas realizadas durante a "vida útil" de um Branch de Versão, desde a abertura até o fechamento.

Índice

Resumo

O livro "Gerenciamento do Branch de Versão" é composto por três capítulos principais. Cada qual contendo as informações referentes à uma etapa do ciclo de vida do branch da versão. Desde sua criação, passando pela sua manutenção até o processo de fechamento e liberação. Este livro, apesar de ser dirigido à equipe da qualidade, também conta com a participação da equipe de desenvolvimento para a realização de algumas etapas do processo.


Sumário

Abertura do branch de versões

Neste capítulo são tratados os assuntos iniciais à abertura do branch de versões, como criação do caso no mantis, criação do branch no SVN e os detalhes do processo.

Manutenção do branch de versões

Neste capítulo são passadas as informações sobre a manutenção do branch durante sua "vida útil", como relacionar as versões dos módulos que serão liberados e a atualização do código do branch para que esteja sempre atualizado em relação ao trunk.

Fechamento do branch e liberação das versões

O último capítulo diz respeito ao processo de fechamento e liberação do branch de versões, que sem dúvida é a etapa que exige mais atenção e possui mais itens à serem feitos, podemos citar, a atualização dos arquivos altver e config.ini, geração dos executáveis, publicação e etc.

Definição do Processo

Resumo do processo

Em termos de desenvolvimento, um Branch é um galho de um tronco (Trunk), que é o repositório principal do código fonte do sistema. Na prática o Branch é uma cópia do código onde os desenvolvedores farão as correções/implementações necessárias, preservando assim a integridade do código  no Trunk. Se as mudanças funcionarem conforme o planejado, elas serão mescladas de volta para o "tronco principal" (Trunk).

Essa prática é usada o tempo todo durante o desenvolvimento, onde apesar de o Trunk ser o repositório principal do código fonte, todas as alterações devem ser feitas nos Branchs, por isso a nomenclatura Branch de Versão ou Branch de Versão de Trabalho.


Envolvidos no processo

Indiretamente, toda a equipe de desenvolvimento e qualidade fazem parte do gerenciamento do Branch de Versões. Diretamente cada Branch de Versão terá uma dupla responsável por sua abertura, manutenção e fechamento, ou seja, um desenvolvedor e um testador que darão início ao Branch da Versão e o acompanharão até que o mesmo seja finalizado. Arquivo com a programação dos responsáveis pelo branch de cada versão Clique Aqui.


Etapas do processo

Ponto inicial do processo

Por se tratar de um processo cíclico, ou seja, o início do processo de gerenciamento do branch X é iniciado logo após a finalização do processo referente ao branch Y (sendo que Y = X - 1). O seu ponto inicial será sempre após a finalização do fechamento do Branch da Versão anterior, onde a dupla responsável pelo próximo Branch deverá providenciar a abertura do mesmo, repetindo sempre esse ciclo.


Ponto final do processo

A etapa final do gerenciamento do Branch da Versão será a liberação e finalização do fechamento do Branch da Versão, quando o mesmo poderá ser considerado como concluído, dando início à abertura do próximo Branch e repetindo o ciclo.


Resultado esperado

É esperado que com essa estruturação de Trunk, Branch de Versão e Branch por caso (pasta de trabalho de cada desenvolvedor, por caso) mantenha-se a integridade do código fonte do sistema no Trunk e que todas as correções/implementações necessárias não sejam realizadas no Trunk, evitando problemas e garantindo maior segurança nas liberações e entrega das versões aos clientes.

 

Abertura do branch de versões

Detalhamento do processo de como realizar a abertura de um novo Branch de Versão

Abertura do branch de versões

Definição do Processo

Resumo do processo

O processo de gerenciamento do Branch de Versões é um ciclo, onde sempre após o fechamento do Branch atual, deverá ser realizada a abertura de um novo Branch, que passará a ser o atual Branch da Versão ou Branch da Versão de Trabalho, onde o mesmo será utilizado até ser fechado e as versões à ele relacionadas sejam liberadas aos clientes. 

O pré-requisito para abertura/início de um novo Branch de Versão será que o Branch da Versão atual tenha sido finalizado.


Envolvidos no processo

Sempre será uma dupla que ficará responsável pela abertura, manutenção e fechamento do Branch da Versão, sendo um desenvolvedor e um testador.


Etapas do processo
  1. Decisão do Fechamento do Branch da Versão
  2. Atualização dos arquivos "Config.ini"
  3. Atualização dos arquivos "Altver.rtf"
  4. Solicitar a inclusão do Branch da versão no main
  5. Geração dos executáveis das versões
  6. Validação e assinatura dos executáveis
  7. Geração das Customizações (DLLs) para liberação das versões
  8. Geração das pastas com as novas versões
  9. Publicação dos executáveis e instaladores
  10. Finalização do fechamento do Branch da Versão
  11. Criação de novos casos para o Branch da Versão
  12. Criação do repositório do Branch de Versão no Azure
  13. Publicação do novo Branch da Versão para a equipe

Ponto inicial do processo

Por se tratar de um processo cíclico, ou seja, o início do processo de gerenciamento do branch X é iniciado logo após a finalização do processo referente ao branch Y (sendo que Y = X - 1). O seu ponto inicial será sempre após a finalização do fechamento do Branch da Versão anterior.


Ponto final do processo

Será a criação do novo Branch da Versão no Azure e a publicação desse novo Branch para a equipe de Desenvolvimento e Qualidade.


Resultado esperado

Realizar toda a documentação do novo Branch da Versão, criando os novos casos no Mantis e publicar os novos casos para as equipes de Desenvolvimento e Qualidade.

Abertura do branch de versões

Criação do repositório do Branch de Versão no Azure

Após o caso do Branch da Versão ter sido criado no Mantis, será necessário realizar um "New Branch" no Azure.

Essa etapa só poderá ser realizada quando o Branch da Versão anterior já tiver sido vinculado ao main. Portanto antes de realizar essa etapa, confirmar com o desenvolvedor se o Branch já foi vinculado ao main e se pode ser criado o novo Branch de Versão.

O repositório do Branch da Versão deverá ser criado dentro do repositório https://dev.azure.com/SuperSoftDelphi/_git/SistemaERPFISCO

No repositório ir em Branches -> "New Branch" e seguir o modelo:

Em Name:

Número do Branch da Versão+Caso+Número do caso no mantis. Exemplo: "167-Caso-0053630"

Em Base on:

Seguir sempre o padrão deixando em "main"

Após criar o Branch ir em Branches -> 3 pontinhos -> Branch policies

image.png

Acessar a aba Policies deixar essa configuração padrão

image.png

Na aba Security, deixar como padrão:

image.png

Abertura do branch de versões

Criação dos novos casos para Branch de Versão

Após a liberação e fechamento de um Branch de Versão sempre será necessário realizar a abertura de um novo Branch e, com isso, abrir os casos no Mantis para documentação e manutenção do mesmo.


Criação do Branch da Versão no Mantis

O primeiro passo será a abertura do novo caso do Branch da Versão no Mantis, para isso deveremos preencher os campos conforme exemplos abaixo:

Tipo do Projeto: "Outros";
Categoria: "Outros";
Resumo: "BRANCH DE VERSÕES XXX - GERENCIAMENTO DE CASOS" (sempre incremental em +1);
Descrição: Adicionar a mensagem padrão:

"Caso para controle e gerenciamento dos casos adicionados ao Branch de Versões.

O Branch de Versões é a centralização dos códigos de todos os módulos que estão sendo trabalhados para liberação (Versões cheias).
Todos os casos testados na versão "Por Caso", serão adicionados no Branch de Versões para ser trabalhado para liberação.

Após os casos passarem por testes e retestes e estarem prontos para liberação, os casos são adicionados no TRUNK da Versão de liberação.
O TRUNK será o repositório apenas dos casos que estão 100% finalizados."

Aplicar marcadores: "BRANCH_ERP" ou "BRANCH_FISCO" e "BRANCH_VERSAO"; 
Departamento: Qualidade ERP;
Tipo e Estado: "Nova Versão".

imagem_1.png

imagem_2.png

Após criar o caso, relacioná-lo ao caso 0044448 - Gerenciamento das Versões Correntes:

imagem_5.png

Após a criação do caso do Branch da Versão no Azure  feito pelo Desenvolvedor, copiar o endereço "URL" para o caso no Mantis, no quadro "Informações Adicionais", conforme exemplo:

imagem_3.png

imagem_4.png

Criação dos casos de versionamento dos módulos (Casos pai)

Assim como após a liberação e fechamento de um Branch de Versão é necessário fazer a abertura de um novo, também é necessário criar novos "casos pai" para os módulos que foram liberados no Branch da Versão anterior.

O processo para abertura dos "casos pai" é basicamente o mesmo do que o da abertura do caso do Branch da Versão, salvo algumas exceções. Para a abertura dos casos pai seguir as regras abaixo:

Tipo do Projeto: Deve ser o tipo de projeto de cada módulo, exemplo "Compras", "Vendas", "Estoque", etc.
Categoria: "Outros";
Resumo: "Versão 5.191 - COMPRAS" (Número da versão incremental em +1 e o módulo referente ao caso pai);
Descrição: "Versão 5.191 - COMPRAS" (repetir o campo "Resumo");
Aplicar marcadores: "Não é necessário aplicar marcadores;
Departamento: Qualidade ERP;
Tipo e Estado: "Nova Versão".

imagem_6.png

Após a abertura dos casos, também relacioná-lo ao caso 0044448 - Gerenciamento das Versões Correntes  e também ao Branch atual de versões:

imagem_7.png

Abertura do branch de versões

Aviso de publicação do novo Branch da Versão para a equipe

Processo feito pelo Desenvolvimento

Após o Branch da Versão ter sido criado tanto no Mantis quanto no Azure, é necessário avisar à equipe de Desenvolvimento e Qualidade que o novo Branch está pronto e que deverão passar a utilizá-lo.

Para isso, no comunicador padrão utilizado pela equipe (atualmente é o Rocket Chat), no canal "Equipe.Delphi.ERP" deverá ser enviada uma mensagem seguindo o padrão:

Pessoal!
BRANCH 168 foi liberado na data 07/04/2026.

Foi criado o caso e pasta no SVN para o BRANCH 169.
https://dev.azure.com/SuperSoftDelphi/SistemaERPFISCO/_git/SistemaERPFISCO?version=GB169-Caso-0053778
Favor utilizar esse BRANCH a partir de hoje.

Obrigado!

Abertura do branch de versões

[extinto] Criação do repositório do Branch de Versão no SVN

Após o caso do Branch da Versão ter sido criado no Mantis, será necessário realizar um "Copy to" no SVN, copiando o Trunk (https://svn.supersoft.com.br/svn/desenvolvimento/trunk/CodigoBaseSkin) para um novo repositório que será criado para o Branch da Versão.

Essa etapa só poderá ser realizada quando o Branch da Versão anterior já tiver sido vinculado ao Trunk. Portanto antes de realizar essa etapa, confirmar com o desenvolvedor se o Branch já foi vinculado ao Trunk e se pode ser criado o novo Branch de Versão.

O repositório do Branch da Versão deverá ser criado dentro do caminho

ERP:
(https://svn.supersoft.com.br/svn/desenvolvimento/branches/Versoes/ERP)

Fisco:
(https://svn.supersoft.com.br/svn/desenvolvimento/branches/Versoes/Fisco)

e deverá seguir o modelo:

Número do Branch da Versão+Caso+Número do caso no mantis. Exemplo: "042-Caso-0044323"

Dessa forma o endereço completo do Branch da Versão ficará parecido com:

https://svn.supersoft.com.br/svn/desenvolvimento/branches/Versoes/ERP/042-Caso-0044323.

Após inserir o caminho de repositório, uma tela de mensagem de log será aberta, e deverá seguir o modelo: 

Número do caso: BRANCH DE VERSÕES + Número do Branch da versão - GERENCIAMENTO DE CASOS. 
Exemplo: "0044760: BRANCH DE VERSÕES 048 - GERENCIAMENTO DE CASOS"

Após a realização de todos os passos, o resultado final deverá ser semelhante a: 

image-1616422198821.png

Manutenção do branch de versões

Descrição dos processos de manutenção do branch de versões. Processos que serão realizados após a abertura da versão corrente até o fechamento da mesma.

Manutenção do branch de versões

Definição do Processo

Resumo do processo

Após a abertura de um novo Branch de Versão, durante a "vida útil" do Branch, ou seja, até que ele seja liberado e fechado será necessário realizar algumas rotinas de manutenção para manter o Branch sempre atualizado e evitar erros na hora da liberação da versão.


Envolvidos no processo

Sempre será uma dupla que ficará responsável pela abertura, manutenção e fechamento do Branch da Versão, sendo um desenvolvedor e um testador.


Etapas do processo

Ponto inicial do processo

Inicia-se logo após a abertura do Branch da Versão.


Ponto final do processo

Deverá ser realizado diariamente até o fechamento e liberação  do Branch da Versão.


Resultado esperado

Manter o Branch da Versão atualizado tanto no Mantis quanto no SVN, facilitando para a equipe saber em tempo real quais casos e versões estão relacionados ao mesmo.

 

Manutenção do branch de versões

Etapas de manutenção do Branch da Versão

Após a abertura de um novo Branch de Versão, durante a "vida útil" do Branch, ou seja, até que ele seja liberado e fechado será necessário realizar algumas rotinas de manutenção para manter o Branch sempre atualizado e evitar erros na hora da liberação da versão.

No mantis, conforme os casos de erros/implementações forem relacionados ao branch de versões, deve-se verificar se o caso da versão do respectivo módulo que será liberado com o caso tratado já se encontra relacionado no branch de versões, caso não esteja, então deve-se relacionar.

No azure o branch da versão está sempre atualizado, pois nenhum PR deve ser feito diretamente na main. Atualmente a equipe Fisco e ERP utilizam o mesmo branch de versão que é gerenciado pela equipe ERP.

No SVN, a única rotina que precisará ser feita é a realização de um update, merge e commit diário, de preferência no início do dia, para que o Branch da Versão sempre fique atualizado em relação ao trunk.

Fechamento do branch e liberação de versões

Descrição dos processos à serem realizados para realizar a liberação e fechamento do Branch da Versão corrente.

Fechamento do branch e liberação de versões

Decisão do fechamento do Branch da Versão

Processo feito pela qualidade

Após ser definido que o Branch da Versão será fechado, deve-se avisar à equipe de Desenvolvimento e Qualidade para que não subam mais nenhum tratamento e/ou façam alterações no Branch. Para isso, no Rocket Chat (ferramenta utilizado internamente para comunicação) no canal "Equipe.Delphi.ERP" deve ser enviada uma mensagem padrão, conforme exemplo abaixo:


"Pessoal,

Por favor, não subir mais nenhum tratamento para o Branch XXX.
Irei começar a fazer a liberação dos módulos.

Obrigado!"

Após comunicar a equipe sobre o fechamento da versão, confirmar no Mantis se todos os casos vinculados ao Branch foram realizados os testes e revisão de testes e se estão com o status "Aguardando liberação de versão". Confirmar também se todos os casos do versionamento dos módulos que serão liberados foram vinculados ao caso do Branch, conforme exemplo abaixo:

1.jpg

O quadro em verde está demonstrando todos os casos de versionamento de módulos e que serão liberados no Branch da Versão. Neste exemplo, no Branch 041 serão liberados os módulos Vendas e Compras.

No quadro em vermelho estão todos os casos de erros, solicitações ou melhorias que estão relacionados ao Branch 041 e que serão entregues através dos módulos de Vendas e Compras.

Os casos de versionamento de módulos que serão relacionados ao Branch da Versão dependerão dos casos de erro, solicitação ou melhorias que serão liberados. Se no Branch houver apenas casos do Financeiro, por exemplo, não há necessidade de liberação dos demais módulos, a não ser que para correção de algum destes casos seja necessária alguma correção em uma unit comum, nesta situação precisarão ser liberados todos os módulos que fazem uso da unit em questão.

Casos de versionamento de DLLs também devem ser vinculados ao caso do Branch da Versão.

Fechamento do branch e liberação de versões

Atualização dos arquivos "Config.ini"

Processo feito pela qualidade em um computador que possui o Delphi

Os arquivos "Config.ini" são os arquivos onde informamos o número do caso pai (caso de versionamento das versões), número da versão e data de liberação dos módulos, portanto é necessário atualizar estes arquivos à cada liberação de versão.

Antes de começar a atualizar estes arquivos precisaremos selecionar o Branch da versão no Azure e em seguida siga os passos abaixo para atualização dos arquivos:

Na pasta do Branch da Versão (Exemplo "C:\Codigo Fonte"), acessar "WorkingCopies > Sistemas", conforme exemplo:

2.jpg

No quadro "Pesquisar Sistemas" digitar "config.ini" para que sejam filtrados apenas os arquivos que contenham esse nome e extensão:

14.jpg

15.jpg

Selecionar os arquivos de todos os módulos que serão liberados, clicar com o botão direito do mouse e em seguida clicar em "Edit with Notepad++":

Neste exemplo faremos a liberação do Branch 041, portanto serão liberados apenas os módulos de Compras, Vendas e NFe.

16.jpg

Os arquivos serão abertos com o aplicativo do Notepad++, conforme demonstrado abaixo. Em todos os arquivos será necessário atualizar os campos "CasoPai", "DataLiberacao", "Versao1" e "Versao2". Após atualizar os campos clicar no botão "Salvar":

Caso Pai

Caso do versionamento do módulo, no Branch 41 o caso pai do módulo de Vendas é o 0044227, por exemplo.

Data Liberação

Data que serão compilados os executáveis para liberação.

Versao1

Preencher com o número da versão anterior ao "ponto". No exemplo do Branch 041 será liberada a versão 6.555 do Vendas, portanto o campo "Versao1" deve ser preenchido com "6".

Versao2

Preencher com os números após o ponto. No exemplo da versão 6.555, preencher o campo "Versao2" com "555".

17.jpg

Atenção: Somente para o arquivo do módulo NE é necessário preencher também os campos "Versao1Principal" e "Versao2Principal".

O módulo NE utiliza as mesmas configurações do projeto do Vendas, portanto o arquivo "Config.ini" do NE deve apontar qual a versão principal do módulo do Vendas que ele estará vinculado.
No exemplo da liberação do Branch 41, que iremos liberar a versão 6.555 do Vendas, os campos deverão ser preenchidos da seguinte forma:

18.jpg

Fechamento do branch e liberação de versões

Atualização dos arquivos Altver.rtf

Processo feito pela qualidade em um computador que possui o Delphi

O que são os arquivos "Altver"?

Os arquivos "Altver" contém as informações do que será liberado em cada versão. Existem versões que apenas trataram ajustes/erros no sistema e outras versões que além de correções de erro, liberam também alguma melhoria do sistema, novo recurso, etc, então os mesmos precisarão ser preenchidos de acordo com essas informações.

Geração dos arquivos:

O arquivo deverá ser criado sempre através do WordPad, devendo conter o número da versão que será liberada e quais as implementações da versão, conforme exemplos abaixo:

Exemplo de arquivo Altver onde foram realizados apenas ajustes ou correções de erro no sistema:

19.jpg

Exemplo de arquivo Altver onde houveram melhorias no sistema:

20.jpg

Para o módulo NFE não é necessário criação do arquivo Altver, pois utilizará o mesmo arquivo que o módulo de Vendas.

Atualização dos arquivos "Altver.rft" no SVN e módulos

Após gerar os arquivos Altver de todos os módulos que serão liberados, será necessário atualizá-los no SVN e no projeto de cada módulo.

Atualização dos arquivos Altver no SVN

Para isso, acessar a pasta do Branch da Versão e em seguida "WorkingCopies > Sistemas > Vendas", por exemplo. Deverá eliminar o arquivo "Altver.rtf" já existente e substituir pelo novo arquivo gerado, mantendo a nomenclatura "Altver.rtf":

1.jpg

Esse processo deverá ser repetido para todos os módulos que serão liberados, exceto o módulo NFE, que utilizará o mesmo arquivo que o módulo Vendas. 
O arquivo "AltverNE.rtf" não deve ser excluído ou substituído.

Atualização dos arquivos Altver nos módulos (projetos)

Após fazer a substituição do arquivo "Altver.rtf" da pasta de cada um dos módulos que serão liberados, será necessário alterar o projeto de cada um dos módulos para que ele passe a "enxergar" o novo arquivo adicionado. Para isso deveremos acessar a pasta "project" e executar o programa "VD.dproj":

2.jpg

O projeto do módulo que executou, "VD.dproj", "CC.dproj", "FN.dproj" (...) será aberto aberto no Delphi:

image-1610106069108.png

Na tela do Delphi, utilizar o comando "CTRL + F12" para abrir a tela de pesquisa de units "Search for units". No campo de pesquisa digite "altver", em seguida selecione a unit "ALTVER1.pas" e clique em "OK". Será aberta a unit "ALTVER1" em uma nova aba:

26.jpg

27.jpg

Clicar na aba "VD", pesquisar novamente por "altver" e agora selecionar a primeira opção, "AltVer.pas". Clicar em "OK" e será aberta uma nova aba com a unit "AltVer":

28.jpg

29.jpg

A ordem de abertura das units sempre devem seguir o padrão "ALTVER1.pas" e depois "AltVer.pas" por motivos relacionados ao código(herança).

Na unit "AltVer" aperte a tecla F12 do teclado e será aberta a tela "Correções e Implementações da Versão Corrente":

Observar que por enquanto o número da versão e as implementações não foram atualizadas. 

30.jpg

Clicar com o mouse dentro do quadro "Correções e Implementações da Versão Corrente" para selecioná-lo e em seguida, nas propriedades do canto inferior esquerdo da tela, clicar no DLG da propriedade "LoadRTF". Será aberta uma tela para buscar o arquivo à ser importado:

31.jpg

Na tela "Selecione um RTF", certifique-se de que está dentro da pasta do projeto correto, ou seja, do mesmo projeto que estiver fazendo as alterações no Delphi e então selecione o arquivo "Altver.rtf" e clique em "Abrir".

32.jpg

Após importar o novo arquivo "Altver.rft", verifique que no quadro "Correções e Implementações da Versão Corrente" o número da versão e o conteúdo serão atualizados conforme o arquivo importado. Clique no botão "Salve All (Shift+Ctrl+S)" para salvar o projeto e em seguida pode fechar o Delphi:

33.jpg

O altver do NE é atualizado dentro do projeto do VD pela parte lateral "PagesControl1" onde tem os dois altver "TS_ALTVER" e "TS_ALTVERNE":

Clipboard - 19 de Julho de 2023 às 08_49.png

É só clicar no "TS_ALTVERNE" e selecionar o arquivo AltverNE.rtf conforme feito nos demais projetos:

Clipboard - 19 de Julho de 2023 às 08_50.png

Fechamento do branch e liberação de versões

Solicitar a inclusão do Branch da versão no main

Processo feito pela qualidade

Após concluir a revisão de teste de todos os casos que foram incluídos no branch da versão e a atualização dos arquivos "config.ini" e "altver.rtf", uma anotação solicitando a inclusão do branch da versão no main deverá ser enviada para o desenvolvedor responsável no Mantis (branch da versão atual). Informando os módulos que foram alterados e os casos que foram tratados. 

A anotação de solicitação deverá seguir o seguinte padrão: 

imagem_16.png

A anotação não só ajuda na conferência dos arquivos altver e config.ini antes do commit, como facilita muito a busca por casos quando necessário buscar um tratamento de uma determinada versão.

Fechamento do branch e liberação de versões

Geração de executáveis das versões

Processo feito pelo desenvolvimento

Compilando os executáveis

Para gerar os executáveis que faremos a liberação, deveremos acessar a pasta do projeto dentro do main, exemplo (C:\Codigo Fonte\CodigoBaseSkin\WorkingCopies\Sistemas\SSVendas\project) e em seguida abrir o arquivo ".dproj":

1.jpg

Será aberto o Delphi, digitar "Shift+F9" para abrir a tela "Configurações de Compilação". Selecione qual a Empresa (ambiente) será gerado o executável e confira se os campos "Caso Pai", "Data de liberação" e "Versão" estão corretos. No quadro "Diretório" selecione onde o executável deverá ser salvo e então clique em "OK (F5)":

39.jpg

Será exibida a tela "Information". Clique em "Yes to All" e em seguida em "OK":

40.jpg41.jpg

Será iniciada a compilação do executável:

42.jpg

Quando a compilação for finalizada, no canto inferior esquerdo será exibida a mensagem "Sucess" e o tempo de compilação:

43.jpg

Verifique que o executável terá sido gerado dentro do diretório indicado anteriormente. Confirmar se o executável foi gerado corretamente de acordo com as opções selecionadas, observando as informações de "Data de modificação", "Marcas Registradas", "Nome do produto" e "Versão do produto":

44.jpg

Até aqui fizemos a compilação do executável do Vendas apenas para o ambiente Nooven, então precisaremos compilá-lo ainda para o ambiente SuperSoft e depois compilar os executáveis das demais versões que serão liberadas. Para não perder os executáveis que já geramos e ir fazendo a separação, é aconselhável criar os diretórios "SS", "NV" e "EC" e ir alocando os executáveis gerados em cada uma dessas pastas, conforme o ambiente do executável:

45.jpg

Recortar o executável e colá-lo dentro da pasta do ambiente correspondente. Neste exemplo, "NV":

46.jpg

Agora compilaremos o executável do Vendas para o ambiente Supersoft. Voltar no Delphi, digitar "Shift+F9", selecionar a empresa "SuperSoft" e clicar em "OK (F5)" e seguir os passos:

47.jpg

49.jpg50.jpg

48.jpg

43.jpg

Observar que agora terá sido gerado o executável do ambiente "SuperSoft". Recortar e colar o executável dentro da pasta do diretório correspondente:

51.jpg

Os passos acima deverão ser realizados para todos os executáveis que serão liberados.

O módulo NE estará dentro do projeto do Vendas, para compilá-lo deverá executar o arquivo "NE.dproj".

Para os módulos "NE" e "FN" é necessário compilar também os executáveis para o ambiente E-Contab.

Fechamento do branch e liberação de versões

Validação e assinatura dos executáveis

Processo feito pela qualidade

Conferência dos executáveis

Após todos os executáveis terem sido compilados, o desenvolvedor responsável irá passar o caminho que foi gerado os executáveis e customizações vinculados ao branch.

Copie as pastas referentes à cada ambiente para que possam ser conferidos.

image.png


Validação das informações na abertura dos executáveis

Copiar os executáveis para o local da instalação dos sistemas SuperSoft e executá-lo para abertura do sistema:

54.jpg

Verifique se a versão que será exibida e se nome, ambiente e versão do sistema estarão corretos:

55.jpg

Após atualizar o sistema, acessar o menu "Ajuda > Sobre" e verificar se o número da versão, data da liberação e número do caso pai estarão corretos (dados do arquivo "Config.ini"):

56.jpg

Em seguida acesse o menu "Ajuda > Correções e Implementações da Versão" e confira se a versão e as implementações/melhorias estão corretas (dados do arquivo "Altver.rtf"):

57.jpg


Validação das informações do executável (propriedades)

Clique com o botão direito do mouse no executável e em seguida clique me "Propriedades". Será aberta a tela com as propriedades do executável:

58.jpg

Clique na aba "Detalhes" e confira se os dados "Descrição do arquivo", "Versão do arquivo", "Nome do produto", "Versão do produto", "Direitos autorais" e "Marcas registradas" estarão corretos:

Exemplo de dados das propriedades do módulo Vendas do ambiente Supersoft.

60.jpg

Exemplo de dados das propriedades do módulo Vendas do ambiente Nooven.

61.jpg

62.jpg

Os passos acima deverão ser realizados para todos os módulos que serão liberados e para todos os ambientes.


Assinando os executáveis

Após ter conferido todos os executáveis será necessário assiná-los. Para isso precisará ter em mãos o certificado digital da SuperSoft, (atualmente a assinatura dos exes está sendo realizado pelo Filipe.Erbetta).

Com o certificado já plugado na máquina, execute o programa "Assinador de Arquivos", disponível no caminho (\\ss\qualidade\Compilador\Assinador de exe):

67.jpg

Clique no botão "Add Arquivos" e será aberta a tela "Arquivos Executáveis". Selecione todos os executáveis e clique em "Abrir":

68.jpg

Todos os executáveis que foram selecionados serão listados, então clique no botão "Assinar" para iniciar a assinatura:

69.jpg

O sistema irá solicitar a senha do certificado para que os executáveis sejam assinados. Preencher a senha:

70.jpg

Após assinar os executáveis, o programa "Assinador de arquivos" adicionará um "OK" na frente de cada um dos executáveis selecionados e que foram assinados:

71.jpg

Para conferir se todos os executáveis foram assinados corretamente, verifique se nas "Propriedades" de cada um dos executáveis foi adicionada a aba "Assinaturas Digitais":

72.jpg

Fechamento do branch e liberação de versões

Geração de Customizações (DLLs) para liberação das versões

Processo feito pelo desenvolvimento

Atualmente a Custom está sendo gerada conforme o passo a passo do Azure

https://dev.azure.com/SuperSoftDelphi/CustomDLL/_wiki/wikis/CustomDLL.wiki/1/Procedimento-de-Cria%C3%A7%C3%A3o-e-Configura%C3%A7%C3%A3o-de-Reposit%C3%B3rio-de-Customiza%C3%A7%C3%A3o

Compilando uma Custom SVN (extinto)

Para a compilação de uma Custom será necessário baixar a pasta específica dela que fica em "https://svn.supersoft.com.br/svn/desenvolvimento/outros/DLLs/EmFireDac Skin" com o nome do módulo + o nome do cliente, exemplo "CustomVDOasis":

image-1684245788082.png

Para compilar será necessário copiar essa pasta do EmFireDac Skin para o trunk -> CodigoBaseSkin -> WorkingCopies -> Sistemas, e colar:

image-1684245947113.png

Após isso abrir a CustomVD.dproj (sempre será o nome do módulo da custom que está sendo compilada) que está dentro da Custom -> Project:

image-1684247717109.png

Atualização da versão dentro da Custom

Ao abrir, antes de compilar será necessário ajustar o número da verão em da custom, ir em "Project -> Options -> Version Info" e corrigir para o número da versão que será liberada, e clicar em OK:

image-1684247625792.png

Na pagina inicial, abaixar a barra e corrigir o número da versão e conferir o nome da Custom:

image-1684247840484.png

Após isso crie uma pasta em: \\ss\qualidade\LIBERADO_DLLs + o nome do cliente + o nome do projeto da custom, exemplo: "\\ss\qualidade\LIBERADO_DLLs\Oasis\CustomVD"

Pasta das Customizações

Crie uma pasta com o número do caso + versão + data de liberação, assim sempre terá as versão antigas salvas

image-1684254498813.png

Antes de compilar será necessário ajustar o caminho para salvar a dll em "Project -> Options -> Delphi Compiler -> Output directory" e clicar em OK:

image-1684248169511.png

Salve o projeto:

image-1684248319119.png

Compilando a Custom

Digitar "Shift+F9" para iniciar o processo de compilação, será exibido no canto inferior esquerdo será exibida a mensagem "Sucess" e o tempo de compilação:image-1684248344813.png

Commit da Custom

Depois acesse novamente a pasta em que foi compilado o projeto e copie os arquivos .dpr e .dproj:

image-1684249123487.png

E cole (clique em SIM para substituir) dentro da pasta "EmFireDac Skin" -> nome do projeto -> Project:

image-1684249185806.png

Após isso é só clicar com o botão direito na tela TortoiseSVN -> Commit, como padrão sempre usamos o resumo do caso:

image-1684249350744.png

Depois ao dar o showlog na pasta será possível ver a alteração na versão da Custom:

image-1684249438175.png


Validação das informações das Custom

Após a custom ser compilada será necessário conferir se foi gerada a versão correta, acesse o caminho em que foi compilada:

image-1684254657480.png

Selecione ela, clique com o botão direito e vá em "Propriedades" -> "Detalhes" e veja se a versão do arquivo está correta:

image-1684249706458.png

Fechamento do branch e liberação de versões

Geração das pastas com as novas versões

Processo feito pela qualidade


Publicação no diretório da Qualidade Assinados Temp

É necessário copiar os executáveis da versão (assinados) para para cada ambiente que será liberado no diretório: \\ss\qualidade\LIBERADO_VERSOES_EXECUTAVEIS\Assinados_Temp

image.png

Nesse exemplo será liberado o FN e NE do ambiente eContab:

image.png

Também é necessário substituir os arquivos altver.rtf para os novos do branch atual:

image.png


Publicação das Versões liberadas no diretório da Qualidade 

Primeiramente deverá ser criada uma pasta para cada módulo que será liberado, seguindo o padrão "Número do caso pai_Versão_Número da Versão_liberado_data da liberação", conforme exemplo: "0053706_Versão_5.190_liberado_07-04-2026". Dentro dessa pasta deverão ser criadas uma pasta para cada ambiente que será liberado:

image.png

No exemplo do módulo de Compras, uma pasta "SS" e outra pasta "NV" e o arquivo "Altver" referente ao módulo também deverá ser incluído nesta pasta, com o padrão "Altver+módulo (neste exemplo, AltverCC)":

image.png

Dentro da pasta de cada ambiente deverá ser salvo o executável (já conferido e assinado) correspondente:

image.png

Este processo deverá ser realizado para todos os módulos que serão liberados.

Após os passos acima serem realizados, copiar a pasta de cada um dos módulos que foram criadas, acessar o caminho "\\ss\qualidade\LIBERADO_VERSOES_EXECUTAVEIS" e colá-las dentro das pastas dos respectivos módulos:

image.png


Publicação das Customizações no diretório da Qualidade 

Será necessário copiar a pasta as custom que foram geradas pelo desenvolvimento para o  caminho "\\ss\Qualidade\LIBERADO_DLLs" + Cliente + Projeto:

image.png

Criar uma pasta para cada Custom que será liberada, seguindo o padrão "Número do caso pai_Versão_Número da Versão_liberado_data da liberação", conforme exemplo: "0053725_Versão_5.00_liberado_07-04-2026"

image.png


Publicação das Versões Liberadas no diretório Sistemas 

Será necessário disponibilizar essas pastas também no diretório \\ss\sistemas\VERSOES LIBERADAS\01. Atualizações + sigla do Módulo:

image.png


Publicação das Customizações no diretório Sistemas 

Será necessário disponibilizar essas pastas também no diretório \\ss\sistemas\DLLS_NOVO_SKIN + Cliente + Projeto:

image.png

Fechamento do branch e liberação de versões

Publicação dos executáveis e instaladores

Processo feito pela qualidade

Publicação no Mantis

No Mantis a publicação dos módulos liberados deverá ser apontada em cada um dos casos pai (casos de versionamento dos módulos) que estão vinculados ao Branch que está sendo liberado. Seguindo o padrão de mensagem:

*Adicionar usuários do Suporte, Projetos, Comercial e Qualidade na anotação

[b]COMPRAS 5.190[/b] (Módulo + Número da versão)
Data da publicação: 07/04/2026
Ambientes: SuperSoft / Nooven (Adicionar E-Contab quando for liberação dos módulos NE e FN).

VERSÃO LIBERADA EM: \\ss\sistemas\VERSOES LIBERADAS\01. Atualizações\CC (incluir a sigla do módulo no final)

Suporte, Projetos e Comercial,

Favor verificar os casos vinculados a versão e atualizar os clientes que necessitam da atualização.

Obrigada.

Abaixo segue exemplo de preenchimento no Mantis (caso 53706):

image.png

Quando houver casos onde foram criadas ou alteradas DLLs de algum cliente, é necessário vincular o caso de versionamento da DLL ao caso do Branch e seguir o mesmo procedimento de publicação para o caso de versionamento da DLL. Abaixo exemplo da mensagem de publicação em casos de DLL:

*Adicionar usuários do Suporte, Projetos, Comercial e Qualidade na anotação

CustomXX Nome_do_Cliente (XX = módulo, exemplo CustomVD, CustomFN, CustomCE, etc).
Versão: 5.00 (sempre incremental a partir de 5.00)
Data de liberação: DD/MM/AAAA

Liberar em conjunto com: SSmodulo XX.XXX (Módulo e versão do módulo que deverá ser atualizado em conjunto).

DLL disponível em:

    - \\ss\Sistemas\DLLS_NOVO_SKIN

Qualquer duvida estou a disposição.

Obrigada.

Abaixo segue exemplo de preenchimento no Mantis (caso 53725):

image.png


Publicação nos comunicadores (Atualmente pelo Rocket Chat)

No comunicador que estiver sendo utilizado pelos setores (atualmente é o Rocket Chat, no canal "Entrega_de_Versoes_ERP"), deverá ser enviada uma mensagem avisando os usuários sobre a liberação das versões e relacionando os casos que estão sendo liberados. Abaixo segue exemplo do padrão da mensagem à ser seguido:

Suporte, Projetos e Comercial

Seguem as versões e casos liberados na data de 07/04/2026.

0053705: BRANCH DE VERSÕES 168 - GERENCIAMENTO DE CASOS

0053706: Versão 5.190 - COMPRAS
0053708: Versão 3.951 - FINANCEIRO
0053731: CustomCP - Brascar 5.00
Qualquer dúvida estou a disposição.
Obrigada.

Publicação na Central de Operações

Para o segmento ERP os módulos liberados devem ser publicados na Central de Operações após análise com o líder do desenvolvimento e também mediante autorização do Gerente do setor de Suporte.

Para publicação dos módulos na Central de Operações utilizaremos o programa "GeradorSetupVersao2" disponível em: \\ss\qualidade\FERRAMENTAS\GeradorDeSetup2.0

O executável deverá ser buscado no caminho "\\ss\qualidade\LIBERADO_VERSOES_EXECUTAVEIS\Assinados_Temp", ao abrir o gerador de setups e clicar na opção "Utilizar diretório Assinados_Temp?" ele vai direcionar para a pasta correta e conforme o ambiente selecionado, nesse exemplo publicaremos os eContab

image.png

Selecionar os executáveis que serão publicados, conferir a data de modificação do arquivo:

image.png

 Deverá ser confirmado se os dados do executável estão corretos e em seguida clicar no botão "Publicar", conforme exemplo:

image.png

Este processo deverá ser realizado para todos os módulos e para cada um dos ambientes que será realizada a publicação na Central de Operações.

Após realizar a publicação de todos os módulos e ambientes, conferir se em "\\ss\Sistemas\ASSINADOS", dentro da pasta de cada módulo e cada ambiente, se o executável e o arquivo Altver.rtf foi atualizado com a data de liberação do mesmo:

image.png

Conferir também se em  "\\ss\Sistemas\INSTALADORES", dentro da pasta de cada módulo e cada ambiente, se o instalador foi gerado com a data da publicação:

image.png

A conferência da geração dos executáveis, instaladores e dos arquivos Altver deverão ser realizadas para cada um dos ambientes publicados.


Liberação da versão na Intranet

Para liberação das versões para o cliente é necessário acessar a intranet e nas Ferramentas -> Versões

image.png

Clicar em "Nova Versão":

image.png

Selecionar o módulo, versão e as empresas:

image.png

Tornar a versão oficial na Central OP: Só marcar essa opção quando for necessário disponibilizar essa versão para todos os clientes, caso contrario só de cadastrar a versão já será liberada para uso dos clientes. 

As versões antigas podem ser excluídas do site e manter apenas uma versão oficial na CentralOP.

Fechamento do branch e liberação de versões

Finalização do fechamento do Branch da Versão

Processo feito pela qualidade

Após terem sido realizadas todas as etapas anteriores, agora é necessário apenas fechar todos os casos relacionados ao Branch da Versão (caso de erro/melhoria/customizações e casos de versionamento das versões) para fechar o caso do Branch.

Para isso basta acessar cada um dos casos, começando pelos casos que foram tratados dentro do Branch da Versão atual em questão e seguir os passos abaixo:

imagem_8.png

No mantis, clicar na opção "Gerenciar", depois "Gerenciar Projetos":

imagem_9.png

Encontrar o módulo vinculado ao caso, nesse exemplo o SSCompras e entrar nele:

imagem_10.png

Rolar a tela até a parte das "Versões" aqui será necessário alterar a versão anterior para "Liberada":

imagem_11.png

imagem_11 a.png

Depois no final da listagem Adicionar a nova versão:

imagem_12.png

Voltar no caso que está "Aguardando Liberação de Versão" e Alterar Status para "Fechado":

imagem_13.png

E selecionar a nova versão na opção "Corrigido na Versão" e "Fechar Tarefa":

imagem_14.png

imagem_15.png

Após fechar todos os casos tratados no Branch, o caso do Branch da Versão passará a demonstrar:

99.jpg

Repetir o processo acima para os "casos pai (Versionamento dos módulos)" e depois fechar também o caso do Branch da Versão.

Depois que todos os casos do Mantis e o Branch da Versão for fechado, no Trello mover os casos da coluna "Aguardando Liberação" para a coluna "Entregues":

100.jpg

Sempre após um Branch da Versão ser encerrado é obrigatório realizar o processo da criação de um novo Branch da Versão e criação dos novos "Casos pai (Versionamento dos módulos)".

Fechamento do branch e liberação de versões

[extinto] Commit das alterações dos arquivos "Config.ini" e "Altver.rft" no SVN

Após realizar a atualização dos arquivos "Config.ini" e "Altver.rft" é necessário commitar essas alterações, ou seja, subir as alterações que foram realizadas por enquanto somente em sua máquina para o código fonte do Branch da Versão.

Clique com o botão direito do mouse na pasta do Branch da Versão, exemplo "Caso-BranchVersão-0044433" e em seguida em "SVN Commit":

34.jpg

No quadro das mensagens deverá ser incluída uma mensagem padrão, contendo o Branch da Versão que será liberado, quais casos de versões estão relacionados à ele e quem está realizando o commit (caso esteja utilizando por uma máquina virtual), conforme exemplo abaixo:

35.jpg

No quadro "Changes made" deverão ser selecionados os arquivos que foram modificados e que deverão ser commitados:

Deverão ser selecionados apenas os arquivos com extensões ".dfm", ".Config.ini" e ".rtf".

Dica: Clique no campo "Extension" para que os arquivos sejam ordenados por extensão, assim facilitará selecionar somente os arquivos das extensões ".dfm", ".Config.ini" e ".rtf". 

36.jpg

Após selecionar os arquivos que deverão ser commitados, clicar em "OK". Será aberta a tela abaixo para realização do commit, após finalizar clicar em "OK": 

37.jpg

Pronto, as alterações foram salvas e enviadas ao código fonte do Branch da Versão.

Subprocessos Dependentes

Subprocessos Dependentes

(extinto) Programação dos responsáveis pelo branch das versões

ERP:

Atualizado dia: 02/03/2021

Até branch: 055

Fisco:

Atualizado dia: 12/05/2021

Até branch: 023

Resumo do processo

Cada Branch de Versão terá uma dupla responsável por sua abertura, manutenção e fechamento, ou seja, um desenvolvedor e um testador que darão início ao Branch da Versão e o acompanharão até que o mesmo seja finalizado.

O arquivo em anexo nesta página, é uma programação para os próximos branchs e com seus responsáveis.

Responsáveis por gerar a programação:

- Ainda a decidir, exemplo ERP em anexo gerado por Mateus Joia(Qualidade).

Manutenção da página

No topo da página terá informações relativas a atualização do documento. Quando o mesmo for atualizado, deve-se atualizar essas informações.

Quanto ao anexar o documento, deverá "substituir" o já existente referente ao seu departamento.

Exemplo:

- Editar página

- Clicar no canto direito em Anexos

53.png

- Na tela que abre, clicar em Editar, desta forma conseguiremos substituir o arquivo mas sem alterar nome ou forma lista grande de anexos, já que até o momento o botão Excluir não está funcionando.

54.png

- Arraste para área indicada, o novo arquivo atualizado com a programação, após clique em Salvar

Certifique-se de estar substituindo o arquivo correto de acordo com o departamento.

55.png

Subprocessos Dependentes

(extinto) Incluindo Branch da versão no Trunk

Processo feito pelo desenvolvimento

Resumo do processo

Passar as alterações trabalhadas no branch da versão, para o Trunk.

- Update e Clean Up nas pastas locais C:\Codigo Fonte e pasta da versão.
- Verificar se a pasta da versão está atualizada com Trunk, isso pode ser feito comparando último log do Trunk com última atualização no branch da versão.
- Caso estiver desatualizada, atualize fazendo Merge.
- Copie os arquivos dentro da pasta da versão (sem utilizar CTRL + A para não selecionar o arquivo oculto do .svn), cole dentro de C:\Codigo Fonte.
- Simule o Commit, aperte em None por segurança, deixe marcado a opção "Show unversioned files" para aparecer os arquivos criados na versão.
- Coloque no log a mensagem de liberação da versão.
- Faça as comparações de alterações necessárias.
- Se tudo certo, então aperte em OK.

Envolvidos no processo

Dupla responsável pelo branch da versão, porém processo realizado pelo Dev.

Etapas do processo

Baixar a pasta a seguir para o computador através de um Checkout usando o endereço:

Ou caso já tenha em sua máquina,  atualizar o Trunk local com Update.
Faça o processo de Merge na sua pasta local, com as seguintes alterações:

URL to merge from: Colocar endereço no branch da versão atual
  Ex: https://svn.supersoft.com.br/svn/desenvolvimento/branches/Versoes/ERP/048-Caso-0044760
Merge depth: Working copy Importante essa parte!

56_.png

57.png

Fazer um Commit com as seguintes informações:

Nas Units com Status “modified(property change only)” dar um Revert

58.png

Utilizar como mensagem padrão a seguinte estrutura:

Seguir a estrutura:
Resumo do caso pai do branch da versão
Casos pai (versionamento do módulo)
  Casos filho (casos relacionados ao módulo acima e que serão entregues através da liberação do módulo)

52.png

Ponto inicial do processo

Pedido vindo da qualidade através do caso pai, para que seja incluído no Trunk as alterações do branch da versão.

Ponto final do processo

Avisar no mesmo caso que o código já está no Trunk e avisar na ferramenta de comunicação (Atualmente Rocket) que foi feita a inclusão das alterações e que podem iniciar abertura do casos do próximo branch da versão.

Resultado esperado

Passar para o Trunk o código trabalhado por versão, validado e testado, mantendo a integridade do Trunk para uma eventual versão de urgência "B Erro" no fluxograma.