유의적 버전
Table of Contents
Semantic Versioning
유의적 버전 2.0.0 | Semantic Versioning에 잘 설명되어 있다:
버전을 주.부.수 숫자로 하고:
기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고, 기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部) 버전”을 올리고, 기존 버전과 호환되면서 버그를 수정한 것이라면 “수(修) 버전”을 올린다.
1. 연산자
잘 호환되는 패키지 범위를 정의하는 연산자가 있는데, 각 패키지 매니저마다 연산자의 형태나 의미가 조금씩 다르다. 주요 차이는 아래와 같다:
- 주를 고정하거나, 주와 부를 고정하거나
- 수를 생략했을 때의 동작 차이
- 1.0.0 미만에서의 동작 차이
| 패키지 매니저 | 연산자 | 예시 | 의미 |
|---|---|---|---|
| npm | ~ | ~1.2.3 | ≥1.2.3 ∧ <1.3.0 |
| npm | ^ | ^1.2.3 | ≥1.2.3 ∧ <2.0.0 |
| mix, rubygems | ~> | ~>1.2.3 | ≥1.2.3 ∧ <1.3.0 |
| mix, rubygems | ~> | ~>1.2 | ≥1.2.0 ∧ <1.3.0 |