Processo de Lançamento

Para lançar uma nova versão do Yarn

  1. Certifique-se que o branch master atual está verde no Circle, Travis e AppVeyor
  2. Certifique-se de que sua cópia local do Yarn está atualizada, então execute ./scripts/release-branch.sh. Isso criará um branch 0.xx-stable, atribuirá a tag 0.xx.0 para o HEAD e dará push em tudo para o git origin
  3. 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)
  4. Garanta que todos os artefatos estão anexados na release (.tar.gz, .deb, .rpm e .msi). Não continue antes de garantir isto
  5. 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 tag v0.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

  1. Remova a tag rc do lançamento no npm e defina a versão considerada estável como latest:
npm dist-tag rm yarn rc
npm dist-tag add yarn@<version> latest
  1. 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)
  2. 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:

  1. ./scripts/release-branch.sh
  2. Gere os pacotes do Debian e RPM: ./scripts/build-deb.sh
  3. Anexe os arquivos .deb e .rpm do diretório artifacts para a versão de lançamento do GitHub

No Windows:

  1. Faça o build do Yarn normalmente (yarn install && yarn run build)
  2. powershell .\scripts\build-dist.ps1
  3. Gerando o instalador do Windows: yarn run build-win-installer - A FAZER: Adicionar assinatura Authenticode para o instalador (#619)
  4. Gere o pacote para o Chocolatey: yarn run build-chocolatey
  5. Anexe o arquivo .msi resultante do diretório artifacts para a versão de lançamento do GitHub
  6. 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!