📍참고
Semantic Versioning 2.0.0
Semantic Versioning spec and website
semver.org
📍시맨틱 버저닝(semantic versioning - semver)
✅소프트웨어 버전 관리를 위해 버전 번호를 정하는 법칙
버전을 major, minor, patch 로 나눠 구분한다
예) 1.0.0 버전의 patch 버전은 0
✅각 버전 번호가 바뀌는 상황
- major : 기존 버전과 호환되지 않게(하위호환성 보장 X) API가 바뀌는 경우
- minor : 기존 버전과 호환되면서(하위호환성 보장) 새 기능 추가
- patch : 기존 버전과 호환되면서 버그를 수정
✅기타
- 1.0.0 이 첫 공개 API이다
- 0.y.z 는 개발 단계이며 공개 전이므로 아무렇게나 변경할 수 있다.
- 특정 버전으로 패키지가 배포되면, 그 버전의 내용을 변경해서는 안된다. 새로운 변경이 있다면 새로운 버전으로 배포해야 한다
📍NPM 에서는?
✅캐럿(^)으로 최소로 적용될 버전을 명시할 수 있다
아래에서 react 버전은 ^18.2.0 = 18.2.0 이상 19.0.0 미만 이 가능함을 나타낸다
예시
// package.json
// ...
"dependencies": {
"@testing-library/jest-dom": "^5.16.5", // 5.16.5 이상 ~ 6.0.0 미만 사용할 것!
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"react": "^18.2.0", // 18.2.0 <= 이 범위의 React를 사용! < 19.0.0
"react-dom": "^18.2.0",
"react-scripts": "5.0.1"
}