이 기능은 허용되지 않으며 대부분의 라이브러리 번호 지정 작업 방식과 패키지 이름 변경으로 인한 불편으로 인해 일반적이지 않습니다.
점으로 구분 된 버전 번호 체계를 사용하는 경우 XYZ "마이크로"버전 Z는 종종 버그 수정에서 변경되며, "부"번호 Y는 이전 버전과 호환되는 변경 사항에서 변경되고 "주"버전 번호 X는 API 변경에서 변경되어야합니다 (때로는 변경됨). 주요 추가 기능).
최신 버그를 수정하지 않으려는 이유가 없어야하며 이전 버전과 호환되는 변경으로 인해 소프트웨어가 손상되지 않아야합니다.
라이브러리가 이런 식으로 개발 된 경우 항상 XYZ를 X. (Y + m). (Z + n)으로 바꿀 수 있어야합니다. 주어진 m과 n에 대해. 즉, 항상 동일한 주요 번호 시리즈의 라이브러리로 라이브러리를 교체 할 수 있어야합니다. 또한 라이브러리 개발자가주의를 기울이고 다음 메이저 번호가 호환 가능한 경우 (예 : 더 이상 사용하지 않지만 아직 제거하지 않겠다는 발표로) 다음 메이저 번호를 사용할 수도 있습니다.
패키지 개발자의 경우 패키지를 업데이트하여 이름을 하나만 사용하거나 숫자를 사용하지 않고 최신 버전을 제공 할 수 있습니다. 그들이 패키지에 라이브러리를 제공하는 경우 abc2
그들은 자신의 소프트웨어 이동할 농구를 통해 이동해야 의존 에 abc2
사용하기로 업그레이드 abc3
전환 패키지 때때로을. 대부분의 종속 패키지에서 작동하는 경우 라이브러리에서 주 버전 번호를 제외하는 것이 더 편리합니다. 그래서 심지어 두 경우 abc2
와 abc3
분포에서 사용할 수있는 몇 가지 지점에서 사용할 수 있어야합니다, abc3
종종라고합니다 abc
(것처럼 abc2
이없는 때 불렀다 abc3
아직), 그리고 곧 어떤 패키지에 의존하지 않기 때문에 abc2
분포 내에서이 드롭 할 수있게된다abc2
전부.
번호 매기기 체계는 균등하게 따르지 않지만 인터넷의 출현으로 그러한 체계를 사용하는 방법에 대한 정보를 전파하고 도서관 사용자 (배포 개발자 포함)의 압력으로 인해 하위 호환성과 같은 중요한 것들을 명확하게 밝히지 않아야한다는 압력을 상상할 수 있습니다. 라이브러리에 포함 된 CHANGES 파일을 읽어야하는 상황에서 이것이보다 일반적이되었습니다.
하나의 카운터 예제이지만 라이브러리는 아닙니다. 파이썬 인터프리터는 공유 객체와 호환되지 않으며 작은 숫자 변경에서 산세 형식입니다. 따라서 python 3.3 (최신 2.7 시리즈) 및 python3 (현재 python3.4 시리즈의 최신) 패키지와 python 2.6 (일반적이지 않음) 및 python 3.3 용 패키지를 볼 수 있습니다.