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)
- Faça um cherry-pick de todas as alterações para a branch
-stable
(por exemplo.0.28-stable
para 0.28). - Certifique-se de que está na branch
-stable
localmente. - Execute
npm version patch
para aumentar o número de versão e criar um Git commit e tag - Execute
git push origin 0.xx-stable --follow-tags
(substituir0.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)
- Certifique-se que o branch master atual está verde no Circle, Travis e AppVeyor
- Certifique-se você está na branch
master
e sua cópia local está atualizada - Execute
./scripts/release-branch.sh
. Isto será:- Cria a branch
0.xx-stable
e a tag0.xx.0
- Aumentará
master
para a próxima versão minor (ex. depois de lançar0.29.0
, master será aumentada para0.30.0
) - Envie tudo para
origin
- Cria a branch
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
- Execute
yarn build-dist && yarn build-deb
para criar um novo tarball de lançamento, Debian e RPM - Execute
yarn build-dist && yarn build-win-installer
em alguma máquina Windows, para criar o instalador Windows -
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 -
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 - Criar novo lançamento no GitHub e anexar todos os artefatos. Para o MSI, certifique-se de anexar a versão assinada!
- Publicar o tarball no npm:
npm publish ./artifacts/yarn-v0.xx.xx.tar.gz
- Executar etapas pós-lançamento abaixo
Atualizando RC para versão estável
- Modificar a tag do GitHub para marcá-lo como estável
- Execute
npm dist-tag add yarn@0.xx.xx latest
(onde0.xx.xx
é o número de versão sendo lançado) - Executar etapas pós-lançamento abaixo
Pós-lançamento
- Aumente o número de versão em _config.yml no website
- Execute
./scripts/build-chocolatey.ps1
para enviar para o Chocolatey - Execute
./scripts/update-homebrew.sh
para enviar para o Homebrew - Repositórios do Debian e CentOS deveriam ser automaticamente atualizados com a última versão dentro de 5 minutos (fique de olho nos commits)