Processo de Lançamento
Para lançar uma nova versão do Yarn
- Certifique-se que o branch master atual está verde no Circle, Travis e AppVeyor
- Certifique-se de que sua cópia local do Yarn está atualizada, então execute
./scripts/release-branch.sh
. Isso criará um branch0.xx-stable
, atribuirá a tag0.xx.0
para o HEAD e dará push em tudo para o gitorigin
- CircleCI e Appveyor vão automaticamente criar um lançamento no Github se a compilação estiver passando. Eles vão compilar os artefatos e anexá-los ao lançamento do GitHub. E também irão publicar uma nova versão para o npm com a tag
rc
(significando que não será instalada com o padrão, mas estará disponível) - Garanta que todos os artefatos estão anexados na release (
.tar.gz
,.deb
,.rpm
e.msi
). Não continue antes de garantir isto - Gera novas notas de versões com o comando
git-release-notes v0.yy.0..v0.xx.0 markdown > release-notes.md
usando git release notes tool, onde v.0.yy.0 é a tag estável Sugestões de ferramentas alternativas são bem-vindas
Para corrigir um bug em uma versão do Yarn
- Troque para a branch lançada
git checkout 0.x-stable
, exemplo: 0.7-stable - Faça cherry-pick das correções a partir da branch master
- Crie a tag para a nova versão de lançamento
npm version patch
. Isto irá criar um commit com o package.json alterado e a tagv0.xx.1
para aquele commit - Faça push no origin
git push origin 0.x-stable --follow-tags
Para marcar um lançamento como estável
- Remova a tag
rc
do lançamento no npm e defina a versão considerada estável comolatest
:
npm dist-tag rm yarn rc
npm dist-tag add yarn@<version> latest
- Incremente
latest_version
no arquivo _config.yml no website. Isto atualiza a URL de download (/latest.tar.gz
etc) para apontar para a nova versão. Isto vai, eventualmente, ser automatizado (#187) - Repositórios do Debian e CentOS deveriam ser automaticamente atualizados com a última versão dentro de 5 minutos (fique de olho nos commits)
Processo manual antigo
Esta é a forma que as versões eram lançadas antigamente, para referência (se caso algum passo automatizado quebrar). Gerar uma nova versão de lançamento era um processo de dois passos - A maior parte das coisas é feita no Linux, e algumas coisas são específicas para Windows (como o instalador do Windows), que é gerado no Windows.
No Linux:
./scripts/release-branch.sh
- Gere os pacotes do Debian e RPM:
./scripts/build-deb.sh
- Anexe os arquivos
.deb
e.rpm
do diretórioartifacts
para a versão de lançamento do GitHub
No Windows:
- Faça o build do Yarn normalmente (
yarn install && yarn run build
) powershell .\scripts\build-dist.ps1
- Gerando o instalador do Windows:
yarn run build-win-installer
- A FAZER: Adicionar assinatura Authenticode para o instalador (#619) - Gere o pacote para o Chocolatey:
yarn run build-chocolatey
- Anexe o arquivo
.msi
resultante do diretórioartifacts
para a versão de lançamento do GitHub - Suba o pacote do Chocolatey (no futuro nós devemos automatizar isto). - Nota: Só faça isto quando o MSI for anexado à versão de lançamento do GitHub, pois o Chocolatey puxa o MSI pelo link de download - Outra nota: O pacote do Chocolatey vai quebrar se você modificar o MSI depois de fazer o upload do pacote, pois ele contém uma hash para o MSI. Certifique-se de sempre atualizar ambos ao mesmo tempo!