버전 번호 규칙은 major.minor.build
입니다.
major
은 공용 인터페이스가 호환되지 않는 경우 변경됩니다. 예를 들어, 메소드가 제거되거나 서명이 변경됩니다. 라이브러리를 사용하는 클라이언트는 다른 주요 버전의 라이브러리를 사용할 때주의해야합니다.
minor
은 공용 인터페이스가 호환되는 방식으로 변경되면 증가합니다. 예를 들어, 메소드가 추가됩니다. 클라이언트는 새로운 버전을 사용하는 것에 대해 걱정할 필요가 없습니다. 보는 데 익숙한 모든 기능이 그대로 유지되고 작동하기 때문입니다.
build
은 기능 구현이 변경 될 때 증가되지만 서명은 추가되거나 제거되지 않습니다. 예를 들어 버그를 발견하고 수정했습니다. 클라이언트는 새 버전으로 업데이트해야하지만, 깨진 동작에 의존하기 때문에 작동하지 않으면 쉽게 다운 그레이드 할 수 있습니다.
여기 까다로운 문제는 누군가 다른 사람이 작성하고 발표 한 코드를 수정하는 것처럼 들리는 것입니다. 여기에서 컨벤션은 내가 본 것처럼 -yourname-version
또는 단지 version
으로 버전 번호를 붙이는 것입니다. 예를 들어, linux-image-2.6.28-27
은 우분투 커널 이미지의 가능한 이름입니다.
Maven에서 아티팩트 좌표를 구별하기 위해 대시를 사용 했으므로 혼란을 피하기 위해 .version
을 추가하는 것이 좋습니다 (아주 오래간만에, 분명히). 따라서이 경우 3.6.2.1
입니다.
좋은 답변입니다. 또한 시맨틱 버전 관리에 대해 읽어 보시기 바랍니다 : http://semver.org/ – Nicholas