Abréviation courante de Semantic Versioning, voir aussi semantic-versioning.
SemVer est l'abréviation courante de Semantic Versioning, le standard de versioning MAJOR.MINOR.PATCH formalisé par Tom Preston-Werner. Cette entrée est un alias pour faciliter la recherche. Voir l'entrée 'semantic-versioning' pour la définition complète.
Rappel rapide : (1) MAJOR pour breaking changes (3.0.0) ; (2) MINOR pour ajouts compatibles (2.5.0) ; (3) PATCH pour bug fixes compatibles (2.5.13). Exemple lecture : si vous utilisez `"react": "^18.2.0"`, npm acceptera n'importe quelle version 18.x.x (18.2.0, 18.3.0, 18.99.99) mais pas 19.0.0 qui contiendrait breaking changes.
Opérateurs npm/yarn courants : (1) ^x.y.z — minor+patch updates allowed (most common default) ; (2) ~x.y.z — patch updates only ; (3) x.y.z — exact version (most restrictive, use for reproducible builds with lockfile) ; (4) >=x.y.z — minimum version ; (5) latest — bleeding edge (dangerous in production).
Lockfile importance : package.json déclare ranges, mais package-lock.json (npm), yarn.lock (yarn), pnpm-lock.yaml (pnpm), Pipfile.lock (Python), Gemfile.lock (Ruby), Cargo.lock (Rust) freezent les versions exactes installées pour reproductibilité builds. Toujours commit lockfile dans VCS pour apps, optionnellement pour libraries.
Les incidents célèbres rappellent l'importance : (1) left-pad (mars 2016, 11 lignes de code yanked de npm cassent moitié de l'écosystème JavaScript pendant 2h30) ; (2) event-stream (npm 2018, dependency hijack injecte malware cible Bitcoin wallets) ; (3) Log4Shell (déc 2021, CVE Log4j) — illustre cascading transitive dependencies impact. Tools mitigation : Dependabot, Renovate, Snyk, npm audit, GitHub Advanced Security.
Voir entrée semantic-versioning pour détails complets sur ranges, alternatives (CalVer), tooling (semantic-release, release-please), et best practices.
200+ certifications, 400 000+ questions, examens blancs chronométrés.
Voir le catalogue →