SemVer
์๋งจํฑ ๋ฒ์ ๋(SemVer, Semantic versioning) ๋๋ ์ ์์ ๋ฒ์ ์ ์ํํธ์จ์ด์ ๋ฒ์ ์ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ท์น์ด๋ค. ๋ฒ์ ์ <major>.<minor>.<patch>
ํ์์ผ๋ก ํํํ๊ณ , ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด major
๋ฒ์ ์, ๊ธฐ์กด๊ณผ ํธํ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์๋ค๋ฉด minor
๋ฒ์ ์, ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฒ๊ทธ ์์ ๋ง ์์๋ค๋ฉด patch
๋ฒ์ ์ ์ฌ๋ฆฐ๋ค.
์๋งจํฑ ๋ฒ์ ๋์ ๋ช ์ธ๋ ๊ทธ๋ผ๋ฐํ(Gravatars)์ ์ฐฝ์์์ด์, ๊นํ(GitHub)์ ๊ณต๋์ฐฝ๋ฆฝ์์ธ ํฐ ํ๋ ์คํด-๋ฒ ๋ฅด๋(Tom Preston-Werner)๊ฐ ์์ฑํ๋ค.
๋ฒ์
๋ฒ์ ์ ๋ฒ์ ํํ์ SemVer ๋ช
์ธ์ ํฌํจ๋์ด ์์ง๋ ์์ง๋ง, ๋ง์ ํจํค์ง ๋งค๋์ ๋ค์ด ์ด๋ฅผ ์ง์ํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก <
, >
, <=
, >=
, =
๋ฑ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ||
์ฐ์ฐ์๋ก ๋ ๋ฒ์ ์กฐ๊ฑด์ ๊ฒฐํฉํ ์ ์๋ค.
๋ฌผ๊ฒฐ(Tilde) ๋ฒ์๋ ๋ง์ด๋ ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉํ๋, ๋ง์ด๋ ๋ฒ์ ์ด ๋ช ์๋ ๊ฒฝ์ฐ ํจ์น ๋ฒ์ ์ ๋ณ๊ฒฝ๋ง์ ํ์ฉํ๋ค.
~1.2.3
:>=1.2.3 <1.3.0
~1.2
:>=1.2.0 <1.3.0
(1.2.x
์ ๋์ผ)~1
:>=1.0.0 <2.0.0
(1.x
์ ๋์ผ)
์บ๋ฟ(Caret) ๋ฒ์๋ ๋ฒ์ ์์ ๊ฐ์ฅ ์ผ์ชฝ์ 0์ด ์๋ ์ซ์๋ฅผ ์์ ํ์ง ์๋ ๋ณ๊ฒฝ์ ํ์ฉํ๋ค. ์ฆ, ๋ฒ์ 1.0.0
์ด์์ ๋ํด์๋ ํจ์น์ ๋ง์ด๋ ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉํ๊ณ , ๋ฒ์ 0.1.0
๋ณด๋ค ํฐ 0.x
์ ๋ํด์๋ ํจ์น ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉํ๋ค. ์ผ๋ฐ์ ์ผ๋ก 0.x
๋ฒ์ ์ ์ด๊ธฐ ๊ฐ๋ฐ ๋จ๊ณ์ด๊ธฐ ๋๋ฌธ์ x
๊ฐ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ ์ผ์ผํค๋ ๋ฉ์ด์ ๋ฒ์ ์ฒ๋ผ ์ทจ๊ธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ค. ๋ฐ๋ผ์ ์บ๋ฟ ๋ฒ์๋ 0.2.4
์ 0.3.0
๋ฒ์ ์ฌ์ด์ ๋ฉ์ด์ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ๊ฐ๋ฅ์ฑ์ด ์์ ๋ ์ ์ฉํ๋ค.
^1.2.3
:>=1.2.3 <2.0.0
^0.2.3
:>=0.2.3 <0.3.0
^0.0.3
:=0.0.3 <0.0.4
-
, *
, x
๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
1.2.3 - 2.3.4
:>=1.2.3 <=2.3.4
*
:>=0.0.0
(๋ชจ๋ ๋ฒ์ )1.x
:>=1.0.0 <2.0.0
(๋ฉ์ด์ ๋ฒ์ ์ผ์น)1.2.x
:>=1.2.0 <1.3.0
(๋ฉ์ด์ , ๋ง์ด๋ ๋ฒ์ ์ผ์น)