Semver
Semver
ELI5 — The Vibe Check
Semver is the numbering system for software versions: MAJOR.MINOR.PATCH. Bump PATCH for bug fixes, MINOR for new features that don't break anything, MAJOR for breaking changes. So 2.0.0 warns you 'things changed, update your code carefully'.
Real Talk
Semantic Versioning is a version numbering convention (MAJOR.MINOR.PATCH) that communicates the nature of changes. Libraries publish new versions following semver so consuming packages know when upgrades are safe (minor/patch) or breaking (major).
Show Me The Code
# package.json version ranges
"dependencies": {
"lodash": "^4.17.21", // ^ = compatible with 4.x.x
"express": "~4.18.0", // ~ = compatible with 4.18.x
"stripe": "12.0.0" // exact version pinned
}
When You'll Hear This
"It's a major version bump — check the changelog for breaking changes." / "Always follow semver when publishing your packages."
Related Terms
Dependency
A dependency is a package your project relies on to work. Your app depends on React to render UI, axios to make requests, and dotenv to read config.
Lock File
A lock file is a snapshot of the exact versions of every package your project is using right now.
Open Source
Open source means the recipe is public. Anyone can read it, copy it, tweak it, and share their version. It's the opposite of a secret sauce.
Package
A package is a bundle of code someone else wrote and published so you don't have to reinvent the wheel. Need to parse dates? There's a package for that.