Cyrille Perois
Lead front-end developer @ Wandi Teaches front-end development @ IUT Paris Descartes
Respecter SemVer (presque) sans avoir à y penser avec semantic-release
X.Y.Z
Major
Minor
Patch
Breaking
Feature
1.0.0
1.0.1
1.1.0
2.0.0
Fix d'un bug
Ajout d'une feature, sans modification de l'API existante
Modification de l'API
SemVer est un contrat que vous signez avec vos utilisateurs, une forme de respect qui leur permet d'adapter leur code ou non en fonction des versions que vous proposez.
-- « SemVer, c'est quoi ? », putaindecode.io
Incrémente X, Y ou Z dans le package.json; crée un commit de version et un tag
$ npm version [major | minor | patch]
Envoie les fichiers du module sur le registry npm
$ npm publish
after all.
🤔
Major ?
Minor ?
Patch ?
Breaking or not breaking ?
MEH.
type(scope): subject body footer
type
: feat / fix / chore / refactor / perf / style / test...
scope
: décrit la partie du code à laquelle les changements s'appliquent
subject
: description succinte des changements
: description longue des changements
: références, breaking changes
feat(pencil): add 'graphiteWidth' option
fix(graphite): stop graphite breaking when width < 0.1 Closes #28
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reason.
Patch release
Minor release
Major release
Mettre à jour le master local
Incrémenter la version dans le package.json (en respectant semver)
Mettre à jour le changelog (à générer avec lerna-changelog, qui se base sur les tags des PR pour savoir ce qui est un fix, une feature, un breaking change)
Mettre à jour les liens en bas du changelog
Commit et push ces changements
Créer la release dans l'interface Github
feat(pencil): add 'graphiteWidth' option
perf(pencil): remove graphiteWidth option BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reason.
fix(graphite): stop graphite breaking when width < 0.1 Closes #28
Bug fixes
New features
Performance improvements
Breaking changes
📦🚀 semantic-release
Fully automated version management and package publishing
Push sur la
« release branch »
Build CI
Tests
Release
La publication d'une nouvelle release ne nécessite plus d'autre action humaine qu'un git push
By Cyrille Perois