Processus de Release
Pour publier une nouvelle version de Yarn
- Assurez-vous que la branche master courante est verte sur Circle, Travis et AppVeyor
- Vérifiez que votre copie local de Yarn est à jour, puis lancez
./scripts/release-branch.sh
. Cela créera une branche0.xx-stable
et assignera un tag0.xx.0
au HEAD, puis publiera le tout sur gitorigin
- CircleCI et AppVeyor créeront automatiquement une release GitHub si le build passe. Ils vont builder les artefacts et les attacher à la release GitHub. Ils publieront également la nouvelle version sur npm avec le tag
rc
(cela signifie qu’elle ne sera pas installée par défaut par les utilisateurs, mais sera néanmoins disponible) - Vérifiez que tous les artefacts sont attachés à la release (
.tar.gz
,.deb
,.rpm
et.msi
). Ne continuez pas tant que cette étape n’est pas validée - Générez une nouvelle release notes avec la commande
git-release-notes v0.yy.0..v0.xx.0 markdown > release-notes.md
utilisant l’outil git de release notes où v.0.yy.0 est le dernier tag stable. Les suggestions pour d’autres outils sont les bienvenues
Pour patcher une version existante de Yarn
- Basculez sur la branche releasée
git checkout 0.x-stable
, par exemple 0.7-stable - Faites des cherry-pick des fix depuis la branche master
- Taguez la nouvelle release avec
npm version patch
, ce qui va créer un commit avec le package.json modifié et le tagv0.xx.1
sur ce commit - Faites un push vers origin avec
git push origin 0.x-stable --follow-tags
Pour marquer une release comme stable
- Supprimez le tag
rc
sur la release sur npm et mettez la version considérée comme stable àlatest
:
npm dist-tag rm yarn rc
npm dist-tag add yarn@<version> latest
- Mettez à jour
latest_version
dans _config.yml sur le site. Cela va mettre à jour les URLs de téléchargement (/latest.tag.gz
, etc) pour pointer vers la nouvelle release. Cela va éventuellement être automatisé (#&87) - Les repo Debian et CentOS devraient automatiquement être mis à jour avec la dernier release en moins de 5 minutes (gardez un oeil sur les commits)
Ancien Processus Manuel
C’est l’ancienne façon de faire des release, en guise de référence (dans le cas où l’automatisation casse). La construction d’une release se faisait en deux étapes - La plupart des choses sont construites sous Linux et certaines choses spécifiques à Windows (comme le Windows installer) sont construites sous Windows.
Sous Linux :
./scripts/release-branch.sh
- Construisez les packages Debian et RPM :
./scripts/build-deb.sh
- Attachez les fichiers
.deb
et.rpm
depuis le répertoireartifacts
à la release GitHub
Sous Windows :
- Construisez Yarn normalement (
yarn install && yarn run build
) powershell .\scripts\build-dist.ps1
- Construisez le Windows installer :
yarn run build-win-installer
- TODO: Ajouter la signature Authenticode pour l’installer (#619) - Construisez le package Chocolatey :
yarn run build-chocolatey
- Attachez le fichier
.msi
du répertoireartifacts
à la release GitHub - Uploadez le package Chocolatey (dans le future nous devrions automatisez ça). - Remarque : ne faites ça qu’une fois que le MSI est attaché à la release GitHub, étant donné que Chocolatey va récupérer le MSI via le lien de téléchargement - Notez également : la modification du MSI après avoir uploadé le package Chocolatey va casser le package Chocolatey, étant donné qu’il contient le hash du MSI. Assurez-vous de toujours uploader les deux en même temps !