그것은 실제로 프로젝트에 달려 있습니다. 일부 프로젝트는 버전 1.0도 릴리스하지 않습니다.
MAME 개발자는 에뮬레이터 프로그램 버전 1.0을 출시하려고하지 않습니다. 논쟁은 항상 더 많은 아케이드 게임이 있기 때문에 진정한 "완성"이 될 수 없다는 것입니다. 버전 0.99에 이어 버전 0.100 (부 버전 100> 99)이 이어졌습니다. 비슷한 방식으로 Xfire 1.99 다음에 1.100이있었습니다. 6 년간의 개발 끝에 eMule은 아직 0.50 버전에 도달하지 못했습니다. Wikipedia의 소프트웨어 버전 관리
사용하기 시작한 버전 번호 매기기 방법 중 하나는 Semantic Versioning 입니다.
이 체계에서 버전 번호와 변경 방법은 기본 코드와 한 버전에서 다음 버전으로 수정 된 내용에 대한 의미를 전달합니다.
작동 방식 및 / 또는 일부 질문에 대한 추가 아이디어를 제공하는 인용문 :
1.0.0 출시시기를 어떻게 알 수 있습니까?
소프트웨어를 프로덕션 환경에서 사용중인 경우 이미 1.0.0이어야합니다. 사용자가 의존하게 된 안정적인 API가 있다면 1.0.0이어야합니다. 이전 버전과의 호환성에 대해 걱정이된다면 이미 1.0.0 일 것입니다.
이것이 빠른 개발과 빠른 반복을 방해하지 않습니까?
주요 버전 0은 빠른 개발에 관한 것입니다. 매일 API를 변경하는 경우 여전히 버전 0.xx 또는 다음 주요 버전에서 작동하는 별도의 개발 브랜치에 있어야합니다.
아주 작은 이전 버전과의 호환되지 않는 공개 API 변경에도 큰 버전 충돌이 필요한 경우 버전 42.0.0에서 매우 빠르게 끝나지 않습니까?
이것은 책임감있는 개발과 예측의 문제입니다. 종속 코드가 많은 소프트웨어에는 호환되지 않는 변경 사항을 가볍게 도입해서는 안됩니다. 업그레이드에 소요되는 비용은 상당 할 수 있습니다. 호환되지 않는 변경 사항을 릴리스하기 위해 주요 버전을 충돌해야한다는 것은 변경 사항의 영향을 생각하고 관련 비용 / 혜택 비율을 평가한다는 것을 의미합니다.
"알파", "베타"등의 릴리스를 지정하는 방법에 대한 규칙도 있습니다. 자세한 내용은 http://semver.org/ 에서 확인 하십시오 .
[편집] 또 다른 흥미로운 버전 번호 체계는 MongoDB가 사용하는 것입니다 .
MongoDB는 개발 릴리스에 홀수 번호 버전을 사용합니다.
MongoDB 버전에는 3 개의 숫자가 있습니다 : ABC
- A는 주요 버전입니다. 이것은 거의 변하지 않으며 매우 큰 변화를 나타냅니다.
- B는 릴리스 번호입니다. 여기에는 이전 버전과의 호환성을 손상시킬 수있는 기능 및 사항을 포함한 많은 변경 사항이 포함됩니다. B조차도 안정적인 브랜치가되고 홀수 B는 개발이 될 것입니다.
- C는 개정 번호이며 버그 및 보안 문제에 사용됩니다.
예를 들면 다음과 같습니다.
- 1.0.0 : 첫 번째 GA 릴리스
- 1.0.x : 1.0.x 버그 수정-업그레이드를 적극 권장합니다.
- 1.1.x : 개발 릴리스. 여기에는 완전히 완료되지 않은 진행중인 새로운 기능이 포함됩니다. 1.0과 다른 것이있을 수 있습니다
- 1.2.x : 두 번째 GA 릴리스. 이것은 1.1.x 릴리스의 정점이 될 것입니다.