Chức năng này không được phép, nó chỉ không phổ biến do kết quả của hầu hết các thư viện đánh số công việc và vì sự bất tiện của việc thay đổi tên gói.
Nếu sử dụng lược đồ số phiên bản rải rác XYZ Phiên bản "micro" Z thường thay đổi trên các lỗi, số "phụ" Y thay đổi theo các thay đổi tương thích ngược và số phiên bản "chính" X phải thay đổi khi thay đổi API (và đôi khi không bật chức năng phụ lớn).
Không bao giờ có lý do mà bạn không muốn sửa các lỗi mới nhất và các thay đổi tương thích ngược cũng không phá vỡ phần mềm của bạn.
Nếu thư viện được phát triển theo cách đó, bạn sẽ luôn có thể thay thế XYZ bằng X. (Y + m). (Z + n). cho bất kỳ m và n đã cho. Tức là bạn phải luôn có thể thay thế thư viện của bạn bằng thư mới nhất trong cùng dãy số chính. Và nếu các nhà phát triển thư viện cẩn thận và số chính tiếp theo tương thích (ví dụ: theo thông báo để loại bỏ mọi thứ, nhưng chưa xóa chúng), bạn thậm chí có thể sử dụng số chính tiếp theo.
Đối với các nhà phát triển gói, điều này có nghĩa là họ có thể sử dụng tên chỉ với một hoặc thậm chí không có tên số để cung cấp cho bạn phiên bản mới nhất chỉ bằng cách cập nhật gói. Nếu họ gửi một thư viện trong một gói abc2
thì họ phải trải qua các vòng để di chuyển phần mềm của riêng họ dựa vào abc2
để nâng cấp để sử dụng abc3
, đôi khi có các gói chuyển tiếp. Sẽ thuận tiện hơn khi bỏ đi số phiên bản chính từ thư viện nếu nó hoạt động với hầu hết các gói phụ thuộc. Vì vậy, ngay cả khi cả hai abc2
và abc3
nên có sẵn tại một số điểm có sẵn trong một bản phân phối, abc3
thường được gọi abc
(giống như abc2
được gọi khi abc3
chưa có) và ngay khi không có gói nào phụ thuộc vào abc2
phân phối, nó có thể bị hủyabc2
hoàn toàn.
Lược đồ đánh số không được tuân thủ một cách thống nhất, nhưng tôi chỉ có thể tưởng tượng rằng với sự ra đời của thông tin phổ biến trên internet về cách sử dụng lược đồ đó và áp lực từ người dùng thư viện (bao gồm cả các nhà phát triển phân phối) để làm rõ những điều quan trọng như khả năng tương thích ngược phải đọc qua một tệp THAY ĐỔI có trong thư viện, đã góp phần rằng điều này đã trở nên phổ biến hơn.
Một ví dụ ngược lại, nhưng không phải của một thư viện là intpreter python, không tương thích với các đối tượng được chia sẻ và định dạng tẩy của nó trên một thay đổi số nhỏ. Do đó, bạn sẽ thấy các gói cho python (mới nhất trong loạt 2.7) và python3 (mới nhất trong loạt python3.4) cũng như các gói rõ ràng cho python 2.6 (không phổ biến hơn) cũng như python 3.3.