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:
- Acesse a aba “Planejamento (Roadmap)”;
- Identifique os projetos que estão 100% concluídos.
- 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