Semantic Versioning
SemVer
ELI5 — The Vibe Check
Semantic versioning uses three numbers — MAJOR.MINOR.PATCH — where each number means something. PATCH (1.0.1) = bug fix. MINOR (1.1.0) = new feature, nothing breaks. MAJOR (2.0.0) = breaking changes, your code might break. It's a contract between the library author and you: 'I promise this update won't break your stuff unless I bump the major version.' When authors follow it. Which is... sometimes.
Real Talk
Semantic Versioning (SemVer) is a versioning convention using MAJOR.MINOR.PATCH format (e.g., 2.4.1) where MAJOR indicates incompatible API changes, MINOR indicates backward-compatible functionality additions, and PATCH indicates backward-compatible bug fixes. Pre-release versions use suffixes (1.0.0-beta.1). SemVer is the standard for npm, Cargo, and most package ecosystems. It enables dependency resolution tools to safely auto-update within compatible ranges (~, ^).
When You'll Hear This
"Bump the major version — this PR changes the API response format." / "The caret (^) in package.json means 'any compatible minor/patch update.'"
Related Terms
Breaking Change
A Breaking Change is a modification to your API or library that will BREAK existing code that uses it.
Changelog
A Changelog is a file (usually CHANGELOG.md) that records what changed in each version of your software.
Conventional Commits
Conventional Commits is a format for writing commit messages that humans AND machines can understand.
npm
npm is like a vending machine for code. You say 'I want React' and it delivers React, plus React's 47 friends, plus their friends' friends.
Package Manager
A package manager is the app store for your code — it downloads libraries, manages versions, and makes sure everything plays nice together. It's like a gro