Processo de Lançamento

Realizando uma novo lançamento

As etapas variam um pouco, dependendo do tipo de lançamento que você está enviando (maior, menor ou correção)

Para lançar uma nova versão de correção (ex. de 0.28.1 para 0.28.2)

  1. Faça um cherry-pick de todas as alterações para a branch -stable (por exemplo. 0.28-stable para 0.28).
  2. Certifique-se de que está na branch -stable localmente.
  3. Execute npm version patch para aumentar o número de versão e criar um Git commit e tag
  4. Execute git push origin 0.xx-stable --follow-tags (substitua 0.xx-stable com o nome correto da branch)

Para lançar uma nova versão menor ou maior (ex. de 0.28.x para 0.29.0)

  1. Certifique-se que o branch master atual está verde no Circle, Travis e AppVeyor
  2. Certifique-se você está na branch master e sua cópia local está atualizada
  3. Execute ./scripts/release-branch.sh. Isso irá:
    • Criar a branch 0.xx-stable e a tag 0.xx.0
    • Subir master para a próxima versão menor (ex. depois de lançar 0.29.0, a master será incrementada para 0.30.0)
    • Enviar tudo para a origin

Para marcar um lançamento RC como estável

Uma vez que uma versão candidata a lançamento (RC) foi testada pela comunidade por um tempo e todos os principais bugs eliminados, ele pode ser marcado como estável. Para fazer isso, vá para https://release.yarnpkg.com/ e clique no botão “Promote RC to stable”.

Nota: Existe uma lista de usuários autorizados que são capazes de acessar esta página. Se um mantenedor estiver ausente nessa lista, você pode modificá-la aqui.

Depurando um lançamento

Às vezes as coisas dão errado. Aqui está uma maneira de depurar alguns problemas comuns:

Eu alterei a tag, mas o site ainda aponta para a versão antiga

Dê uma olhada no lançamento no GitHub para ver se existem quaisquer artefatos faltando. Os scripts de lançamento não incrementarão o número de versão no site até que ambos os artefatos, para Linux e Windows, sejam anexados ao lançamento.

Artefatos Linux (. tar. gz, .deb, etc) estão faltando

Verifique o build no CircleCI e tente executá-lo novamente, em caso de falha. Se a compilação foi bem-sucedida, verifique os logs de webhook para ver se existe algum erro.

Artefatos Windows (.msi) estão faltando

Verifique o build no AppVeyor e tente executá-lo novamente, em caso de falha. Se a compilação foi bem-sucedida, verifique os logs de webhook para ver se existe algum erro.

Todos os artefatos estão anexados ao lançamento, mas o site ainda aponta para a versão antiga

Verifique build job do Jenkins yarn-version e verifique se há algum erro.


Como fazê-lo manualmente

A maior parte do processo de lançamento já foi automatizada e é bastante simples. Normalmente, você pode parar de ler aqui. No entanto, se o lançamento automatizado quebrar (ou se você gosta de fazer as coisas do jeito difícil), você pode executar manualmente as etapas de lançamento.

Criando um novo lançamento

  1. Execute yarn build-dist && yarn build-deb para fazer a build de uma tarball e de pacotes Debian e RPM para o lançamento
  2. Execute yarn build-dist && yarn build-win-installer em alguma máquina Windows para criar o instalador para Windows
  3. Assine via GPG os artefatos .tar.gz e .js : sh gpg -u 9D41F3C3 –armor –detach-sign yarn-0.xx.xx.tar.gz Isso irá gerar arquivos

    .asc que você também deve anexar ao lançamento

  4. Assine via Authenticode os artefatos .msi : sh osslsigncode sign -t http://timestamp.digicert.com -n “Yarn Installer” -i https://yarnpkg.com/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -h sha1 -in yarn-0.xx.xx-unsigned.msi -out yarn-0.xx.xx.msi osslsigncode sign -t http://timestamp.digicert.com -n “Yarn Installer” -i https://yarnpkg.com/ -pkcs12 yarn-20161122.pfx -readpass yarn-20161122.key -nest -h sha2 -in yarn-0.xx.xx.msi -out yarn-0.xx.xx.msi

  5. Crie um novo lançamento no GitHub e anexe todos os artefatos. Para o MSI, certifique-se de anexar a versão assinada!
  6. Publique a tarball no npm: npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
  7. Execute as etapas de pós-lançamento abaixo

Atualizando uma versão RC para estável

  1. Modifique o release no GitHub para marcá-lo como estável
  2. Execute npm dist-tag add yarn@0.xx.xx latest (onde 0.xx.xx é o número de versão sendo lançada)
  3. Execute as etapas de pós-lançamento abaixo

Pós-lançamento

  1. Incremente o número da versão no _config.yml do website
  2. Execute ./scripts/build-chocolatey.ps1 para enviar para o Chocolatey
  3. Execute ./scripts/update-homebrew.sh para enviar para o Homebrew
  4. Repositórios do Debian e CentOS deveriam ser automaticamente atualizados com a última versão dentro de 5 minutos (fique de olho nos commits)