mucahid
.dev
  • Home
  • About
  • Projects
  • Blog
  • Media
  • Contact
  • Links
en

Semantic Versioning (Version ruleset in package.json (^,~,>,>=,<,<=,=,-,||))

Written by Mucahid Yazar on November 17, 2021

instagramlinkedincodepenmail
Semantic Versioning (Version ruleset in package.json (^,~,>,>=,<,<=,=,-,||))
git
packagejson
semantic-versioning
nodejs
npm

Node.js packageslerinde en g├╝zel ┼čey kesinlikle packageler i├žin version numaraland─▒rma s├╝r├╝mlerinde semantic versioning kullanmalar─▒ diyebiliriz.

Semantic Versioning konsepti olduk├ža basittir. B├╝t├╝n version sadece 3 digit yani say─▒dan olu┼čur:┬áx.y.z.

  • ─░lk say─▒ yani x, major┬áversion
  • ─░kinci say─▒ yani y, minor┬áversion
  • ├ť├ž├╝nc├╝ say─▒ yani z, patch┬áversion

Yeni bir s├╝r├╝m ├ž─▒kmak istedi─činizde istedi─činiz gibi bir say─▒y─▒ artt─▒rmazs─▒n─▒z. Baz─▒ kurallar dahilinde bu say─▒lar─▒ artt─▒r─▒r─▒z.

  • APIÔÇÖda eskiye g├Âre uyumsuz ├Ânemli de─či┼čikliklerde MAJOR versionu artt─▒r─▒r─▒z
  • Geriye d├Ân├╝k uyumlu bir ┼čekilde ├ž─▒kartt─▒─č─▒m─▒z yeni ├Âzellik ve functionalitylerde MINOR versionu artt─▒r─▒r─▒z
  • Geriye d├Ân├╝k uyumlu bir ┼čekilde bug fixlerde veya k├╝├ž├╝k d├╝zeltmelerde veya typolarda PATCH versionu artt─▒r─▒r─▒z

The convention is adopted all across programming languages, and it is very important that every npm package adheres to it, because the whole system depends on that.

Bu yap─▒ b├╝t├╝n pro─čramlanma dillerinde bu ┼čekilde benimsenmi┼čtir. Ve npm packagelerininde bu kurallara ba─čl─▒ kalmas─▒ hem bizim hem de sistem i├žin ├žok ├Ânemlidir. ├ç├╝nk├╝ b├╝t├╝n sistem ucunda buna ba─čl─▒d─▒r.

Why is that so important?

├ç├╝nk├╝npm baz─▒ kurallar ayarlar ve biz bu kurallara g├Âre package versionlar─▒n─▒ ayarlar─▒z uygulamam─▒z─▒npackage.json i├žinde. Ve bu packagelerimize baz─▒ ruleslar ekleriz package.json i├žinde. Bu rullara g├Âre npm update yapt─▒─č─▒m─▒zda d├╝zg├╝nce y├╝klemelerimizi ger├žekle┼čtiririz.

The rules use those symbols:

  • ^
  • ~
  • >
  • >=
  • <
  • <=
  • =
  • -
  • ||

LetÔÇÖs see those rules in┬ádetail:

  • ^: E─čer version number olarak bir packageye ^0.13.0 yazarsan─▒z npm update yapt─▒─č─▒m─▒zda e─čer bu packagenin yeni minor veya patch releasesi (0.13.1, 0.14.0gibi) payla┼č─▒lm─▒┼čsa bu payla┼č─▒lan yeni versionlar─▒ y├╝kler, e─čer yoksa yaz─▒lm─▒┼č versionu┬áy├╝kler.
  • ~: E─čer version number olarak bir packageye ~0.13.0 yazarsan─▒z npm update yapt─▒─č─▒m─▒zda e─čer bu packagenin yeni patch releasesi (0.13.1 gibi) payla┼č─▒lm─▒┼čsa bu payla┼č─▒lan yeni versionlar─▒ y├╝kler, e─čer yoksa yaz─▒lm─▒┼č versionu┬áy├╝kler.
  • >: Herhangi bir y├╝ksek versionu kabul┬áeder.
  • >=: Herhangi bir y├╝ksek veya e┼čit versionu kabul┬áeder
  • <=: Herhangi bir d├╝┼č├╝k veya e┼čit versionu kabul┬áeder
  • <: Herhangi bir d├╝┼č├╝k versionu kabul┬áeder.
  • =: Tam olarak belirtti─čimiz versionu kabul┬áeder
  • -: Belirlik bir aral─▒kta ki versionu kabul eder. Example: 2.1.0 -┬á2.6.2
  • ||: Birden fazla rule set ederiz pipelarla. Example: < 2.1 || >┬á2.6

Yukar─▒daki formu├╝llerden bir ka├ž─▒n─▒ kullanarak kendinize ├Âzeli kurallarda ayarlayabilirziniz, for example use 1.0.0 || >=1.1.0 <1.2.0 to either use 1.0.0 or one release from 1.1.0 up, but lower than┬á1.2.0.

Ba┼čka kurallarda var:

  • no symbol: Her hangi bir i┼čaret koymazsak sadece belirtti─čimiz versionu y├╝klemesini istedi─čimizi s├Âyleriz. Bir nevi = i┼čareti gibi.┬á(1.2.1)
  • latest: packagenin latest yani en son s├╝r├╝m├╝ hangisi ise onu kullanmak istedi─čimizi s├Âyleriz.

About semantic versioning | npm Docs

Comments

6 Comments

BOOST YOUR FRONTEND CAREER

THE FRONTEND DEVELOPER