Processo de Lançamento

Realizando uma novo lançamento

As etapas variam um pouco, dependendo do tipo de lançamento que você está fazendo (major, minor ou patch)

Para liberar uma nova versão patch (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 (substituir 0.xx-stable com o nome correto da branch)

Para liberar uma nova versão minor ou major (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. Isto será:
    • Cria a branch 0.xx-stable e a tag 0.xx.0
    • Aumentará master para a próxima versão minor (ex. depois de lançar 0.29.0, master será aumentada para 0.30.0)
    • Envie tudo para origin

Para marcar um lançamento RC como estável

Uma vez que um RC foi testado pela comunidade por um tempo e todos os principais erros 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 está ausente dessa lista, você pode modificá-lo 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

Verifique o lançamento no GitHub para qualquer artefatos ausentes. O número de versão do script de lançamento não bate com o número de versão no site, e ambos os artefatos, Linux e Windows foram anexados para o lançamento.

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

Verifique o 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 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 para lançamento, mas o site ainda aponta para a versão antiga

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


Como fazê-lo manualmente

A maioria dos lançamentos já foi automatizado 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 da maneira mais difícil), você pode manualmente executar as etapas de lançamento.

Criando um novo lançamento

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

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

  4. Assinatura Authenticode .msi artefatos: 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. Criar novo lançamento no GitHub e anexar todos os artefatos. Para o MSI, certifique-se de anexar a versão assinada!
  6. Publicar o tarball no npm: npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
  7. Executar etapas pós-lançamento abaixo

Atualizando RC para versão estável

  1. Modificar a tag do 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çado)
  3. Executar etapas pós-lançamento abaixo

Pós-lançamento

  1. Bump version number in _config.yml on the 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)