Semantic Versioning
아래 보는 것과 같이 노드 패키지들의 버전은 세 자리로 되어있다. 이는 세 자리가 모두 의미가 있다는 뜻의 Semantic Versioning이라고 하며 줄여서 SemVer이라고도 한다.
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env":"^1.0.0"
}
Semantics
프로그래밍에서 시맨틱은 코드 조각의 의미를 나타낸다. 이를테면 이 JavaScript 라인을 실행하는 것은 어떤 효과가 있는가 또는 이 HTML 앨리먼트가 가진 목적이나 역할은 무엇인가 등이 있다.
버전 번호 MAJOR.MINOR.PATCH가 주어지면 다음을 증가시킨다.
1. 호환되지 않는 api 변경 시 MAJOR버전
2. 이전 버전과 호환되는 방식으로 기능을 추가하는 경우의 MINOR 버전
3. 이전 버전과 호환되는 버그 수정 시 PATCH 버전
시험판 및 빌드 베타데이터에 대한 추가 레이블은 MAJOR.MINOR.PATCH 형식의 확장으로 사용할 수 있다.
틸드(~)
- patch 버전까지만 설치 또는 업데이트 한다.
- 또는 현재 지정한 버전의 마지막 자리 내의 범위에서만 자동으로 업데이트한다.
~0.0.1: >= 0.0.1 < 0.1.0
~0.1.1: >= 0.1.1 < 0.2.0
~0.1: >= 0.1.0 < 0.2.0
~0: >= 0.0 < 1.0
버전을 명시했을 때 위와 같은 범위 내에서 자동으로 업데이트 한다.
캐럿 (^)
MINOR 버전까지만 설치 또는 업데이트한다.
캐럿은 Node.js 모듈이 Semantic Versioning의 규약을 따른다는 것을 신뢰한다는 가정하에서 동작하며 그러기에 MINOR나 PATCH 버전은 하위 호환성이 보장되므로 그 내에서는 자동으로 업데이트 한다.
^1.0.5: >= 1.0.5 <2.0
^1.0: >= 1.0.0 < 2.0
^1: >= 1.0.0 < 2.0
버전이 1.0.0 미만인 경우에는 예외사항
^0.1.4: >= 0.1.4 < 0.2.0
^0.1: >= 0.1.0 < 0.2.0
^0.0.1 == 0.0.1
소프트웨어 1.0 버전 전에는 API 변경이 계속 일어난다. 그래서 0.3을 쓰다가 0.4를 사용하면 API가 호환이 안될 수 있다. 그래서 0.x.x에서는 지정한 버전 자리수 내에서만 업데이트 된다.
참고
npm semantic version calculator
Use the caret (aka hat) symbol, ^ Examples ^2.2.1 ^0.1.0 ^0.0.3 Note: caret behavior is different for 0.x versions, for which it will only match patch versions.
semver.npmjs.com
'NODE.JS' 카테고리의 다른 글
[Node.js] package-lock.json (0) | 2024.01.15 |
---|---|
[Node.js] npm이란 무엇인가 (1) | 2024.01.15 |
[Node.js] CommonJS와 ECMAScript (0) | 2024.01.15 |
[Node.js] 여러 가지 export 방법 (0) | 2024.01.15 |
[Node.js] 모듈을 사용하는 이유와 모듈 생성해보기 (0) | 2024.01.15 |
Semantic Versioning
아래 보는 것과 같이 노드 패키지들의 버전은 세 자리로 되어있다. 이는 세 자리가 모두 의미가 있다는 뜻의 Semantic Versioning이라고 하며 줄여서 SemVer이라고도 한다.
"dependencies": {
"follow-redirects": "^1.15.0",
"form-data": "^4.0.0",
"proxy-from-env":"^1.0.0"
}
Semantics
프로그래밍에서 시맨틱은 코드 조각의 의미를 나타낸다. 이를테면 이 JavaScript 라인을 실행하는 것은 어떤 효과가 있는가 또는 이 HTML 앨리먼트가 가진 목적이나 역할은 무엇인가 등이 있다.
버전 번호 MAJOR.MINOR.PATCH가 주어지면 다음을 증가시킨다.
1. 호환되지 않는 api 변경 시 MAJOR버전
2. 이전 버전과 호환되는 방식으로 기능을 추가하는 경우의 MINOR 버전
3. 이전 버전과 호환되는 버그 수정 시 PATCH 버전
시험판 및 빌드 베타데이터에 대한 추가 레이블은 MAJOR.MINOR.PATCH 형식의 확장으로 사용할 수 있다.
틸드(~)
- patch 버전까지만 설치 또는 업데이트 한다.
- 또는 현재 지정한 버전의 마지막 자리 내의 범위에서만 자동으로 업데이트한다.
~0.0.1: >= 0.0.1 < 0.1.0
~0.1.1: >= 0.1.1 < 0.2.0
~0.1: >= 0.1.0 < 0.2.0
~0: >= 0.0 < 1.0
버전을 명시했을 때 위와 같은 범위 내에서 자동으로 업데이트 한다.
캐럿 (^)
MINOR 버전까지만 설치 또는 업데이트한다.
캐럿은 Node.js 모듈이 Semantic Versioning의 규약을 따른다는 것을 신뢰한다는 가정하에서 동작하며 그러기에 MINOR나 PATCH 버전은 하위 호환성이 보장되므로 그 내에서는 자동으로 업데이트 한다.
^1.0.5: >= 1.0.5 <2.0
^1.0: >= 1.0.0 < 2.0
^1: >= 1.0.0 < 2.0
버전이 1.0.0 미만인 경우에는 예외사항
^0.1.4: >= 0.1.4 < 0.2.0
^0.1: >= 0.1.0 < 0.2.0
^0.0.1 == 0.0.1
소프트웨어 1.0 버전 전에는 API 변경이 계속 일어난다. 그래서 0.3을 쓰다가 0.4를 사용하면 API가 호환이 안될 수 있다. 그래서 0.x.x에서는 지정한 버전 자리수 내에서만 업데이트 된다.
참고
npm semantic version calculator
Use the caret (aka hat) symbol, ^ Examples ^2.2.1 ^0.1.0 ^0.0.3 Note: caret behavior is different for 0.x versions, for which it will only match patch versions.
semver.npmjs.com
'NODE.JS' 카테고리의 다른 글
[Node.js] package-lock.json (0) | 2024.01.15 |
---|---|
[Node.js] npm이란 무엇인가 (1) | 2024.01.15 |
[Node.js] CommonJS와 ECMAScript (0) | 2024.01.15 |
[Node.js] 여러 가지 export 방법 (0) | 2024.01.15 |
[Node.js] 모듈을 사용하는 이유와 모듈 생성해보기 (0) | 2024.01.15 |