서로 다른 소프트웨어 구성 요소의 버전 번호를 매길 수있는 좋은 방법을 결정하려고합니다.
좀 더 구체적으로합시다 :
소프트웨어 구성 요소 A는 내장 장치에서 실행되는 펌웨어이고 구성 요소 B는 일반 PC (Linux / Windows 시스템) 용 해당 드라이버입니다. 그들은 사용자 정의 프로토콜을 사용하여 서로 통신하고 있습니다. 당사의 제품은 개발자를 대상으로하기 때문에 두 구성 요소의 안정적이고 불안정한 (실험적) 버전을 제공합니다 (펌웨어는 비공개 소스이고 드라이버는 공개 소스입니다). 가장 큰 어려움은 통신 프로토콜에서 API 변경을 처리하는 방법입니다.
드라이버에서 호환성 검사를 구현하는 동안 (펌웨어 버전이 드라이버 버전과 호환되는지 확인) 여러 가지 버전 번호 지정 방법에 대해 논의하기 시작했습니다.
우리는 하나의 해결책을 생각해 냈지만, 바퀴를 재창조하는 것처럼 느꼈습니다. 이것이 일반적인 문제라고 생각하기 때문에 프로그래머 / 소프트웨어 개발자 커뮤니티로부터 피드백을 받고 싶습니다.
그래서 우리의 해결책은 다음과 같습니다.
널리 사용되는 major.minor.patch 버전 번호 를 따르고 안정 / 불안정 버전에 짝수 / 홀수 부 번호를 사용할 계획 입니다. API에 변경 사항을 도입하면 부수가 증가합니다.
이 컨벤션은 다음 예제 상황으로 이어질 것입니다.
현재 안정 분기는 1.2.1이고 불안정은 1.3.7입니다. 이제 불안정한 새 패치로 API가 변경되어 불안정한 새 버전 번호가 1.5.0이됩니다. 일단 불안정한 브랜치가 안정적인 것으로 간주되면 1.5.3에서 1.4.0으로 릴리스 할 것입니다.
아래 관련 질문에 대한 답변에 대해 기쁘게 생각합니다.
- 위에서 설명한 문제를 처리하기위한 모범 사례를 제안 할 수 있습니까?
- "맞춤형"컨벤션이 좋다고 생각하십니까?
- 설명 된 규칙에 어떤 변경 사항을 적용 하시겠습니까?