Wiki

Orientações técnicas/Geração de release v1

Liberação de versão (release) com o novo build #

Este tutorial explica o processo de liberação de versão (release), subdividido em duas etapas:

  • Preparação:
    • Identificar os projetos que estão prontos para serem liberados;
    • Atualizar as notas de versão do projeto e consolidá-las no Subversion.
  • Execução:
    • Baixar o projeto consolidado diretamente do Subversion;
    • Gerar a baseline (tag) no Subversion;
    • Gerar e publicar os produtos da baseline: Repositório Maven, Site do Projeto e Pacote para download no SourceForge.

Ferramentas #

As seguintes ferramentas são necessárias:

  • IDE de sua preferência;
  • Maven >= 2.0.x;
  • Subversion >= 1.4.x.

Convenções #

  • SF_PROJECT: Nome do projeto no SourceForge (e.g. component, wizard, sample, framework)
  • PROJECT: Nome do subprojeto (ex: demoiselle-mail, demoiselle-jsf-ui, escola, auction5)
  • VERSION: Versão do subprojeto (ex: 1.0.6)
  • USERNAME: Nome do usuário do SourceForge
  • PASSWORD: Senha da conta do SourceForge

Preparação #

Recomenda-se que a etapa de preparação seja feita com auxílio de uma IDE.

  • Baixar o projeto:
    • Utilizando a IDE, baixe o projeto do repositório Subversion:
https://demoiselle.svn.sourceforge.net/svnroot/demoiselle/${SF_PROJECT}/trunk/${PROJECT}
  • Identificar no Mantis os projetos prontos para liberação:
  • Atualizar o release-notes do projeto com base no “Roadmap”:
    • Acesse o arquivo release-notes.apt e certique-se que está coerente com o Roadmap do projeto. Caso não esteja, atualize-o com as informações do Roadmap seguindo o seguinte padrão:
* ../1.1.0
 * http://sourceforge.net/apps/mantisbt/demoiselle/view.php?id=148: [Feature] Refatorar mecanismo de injeção.

Faça o mesmo com o release-notes.apt do site em inglês (se existente); Efetue o commit para consolidar as modificações do projeto no Subversion.

  • Configurar o arquivo settings.xml do Maven:
    • Abra o arquivo settings.xml do repositório Maven local (e.g. /.m2/settings.xml);
    • Caso não exista, defina uma seção <server> para o projeto:
<settings xmlns="http://maven.apache.org/POM/4.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
          http://maven.apache.org/xsd/settings-1.0.0.xsd">
          <servers>
                <server>
                      <id>demoiselle.sourceforge.net</id>
                      <username>${USERNAME},${SF_PROJECT}</username>
                      <password>${PASSWORD}</password>
                      <filePermissions>664</filePermissions>
                      <directoryPermissions>775</directoryPermissions>
                </server>
                ...
          </servers>
          ...
</settings>

OBS: Para garantir a confidencialidade de suas informações e segurança do projeto, siga este o passo-a-passo (http://maven.apache.org/guides/mini/guide-encryption.html) para criptografar a sua senha no arquivo 'settings.xml'.

Caso você tenha configurado acesso ao SourceForge via Chaves SSH (vide guia em https://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys) a tag <password> contendo a senha pode ser omitida no arquivo settings.xml.

Execução #

Para evitar incompatibilidade entre as versões dos plug-ins da IDE e as versões das ferramentas de linha de comando, esta seção do passo-a-passo deve ser executada exclusivamente via linha de comando.

  • Criar um diretório vazio para hospedar o projeto.
mkdir temp
cd temp
  • Fazer o checkout do projeto para a pasta local release.
svn checkout https://demoiselle.svn.sourceforge.net/svnroot/demoiselle/${SF_PROJECT}/trunk/${PROJECT} release

OBS: Não reutilize o mesmo diretório local que você escolheu na etapa de Preparação utilizando a IDE, pois pode gerar incompatibilidade das versões do Subversion (IDE x linha de comando).

  • Acessar a pasta release.
cd release
  • Abrir uma conexão com o shell do SourceForge em um novo terminal:
    • Abra um novo terminal e execute o seguinte comando:
ssh -t <username,demoiselle>@shell.sourceforge.net create
  • Gerar e publicar a baseline (tag) e seus produtos:
    • Volte para o primeiro terminal e execute o seguinte comando para gerar a baseline (tag) no Subversion:
mvn release:prepare -Dusername=${USERNAME} -Dpassword=${PASSWORD}

Execute o seguinte comando para gerar e publicar os produtos da baseline (e.g. Repositório Maven, Site do Projeto e Pacote para download no SourceForge):

mvn release:perform -Dusername=${USERNAME} -Dpassword=${PASSWORD}

Devido a problemas de conexão ao SourceForge, a geração de release via Maven muitas vezes é interrompida no meio do processo e somos obrigados a executar o comando novamente. Para automatizar esse processo, abra o shell do SF em um terminal (timeout de 4 horas) e execute a instrução abaixo:

while ! mvn -e release:perform; do date; echo "Rodando de novo..."; sleep 60; done
  • Rotular os arquivos para download no SourceForge:
    • Acesse o gerenciador de arquivos do projeto no SourceForge;
    • Acesse o arquivo /${PROJECT}/${VERSION}/${PROJECT}-bin.zip:
      • Coloque a descrição: Binaries and required libraries;
      • Marque todas as plataformas;
    • Acesse o arquivo /${PROJECT}/${VERSION}/${PROJECT}-src.zip:
      • Coloque a descrição: Source code files;
  • Atualizar os casos no Mantis para o status FECHADO.
  • Atualizar a versão do projeto no Mantis como liberada e criar a versão seguinte.

Arquétipos #

No caso dos arquétipos, é preciso atualizar o seguinte arquivo XML correspondente ao catálogo:

http://demoiselle.sourceforge.net/repository/archetype-catalog.xml
0 Anexos
4186 Visualizações
Média (0 Votos)
A média da avaliação é 0.0 estrelas de 5.
Comentários
Sem comentários ainda. Seja o primeiro.