v6: VersionSupport rejects every 2.x server (major and minor are concatenated)

Đang mở Phù hợp với người mới
#631 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
78/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
api, backend

Hướng nghiên cứu

Đọc src/main/java/io/weaviate/client6/v1/internal/VersionSupport.java, đặc biệt là SemanticVersion.compareTo, và tìm các bài kiểm tra hiện có cho VersionSupport. Tái hiện các kết quả được báo cáo cho các phiên bản 1.39.13, 2.0.0, 2.5.1 và 10.0.0, sau đó xác minh rằng phép so sánh xử lý chính xác các thành phần major và minor. Công việc được xem là hoàn tất khi các phiên bản 2.x được chấp nhận so với mức tối thiểu 1.32 và hành vi hiện có đối với 1.x vẫn chính xác.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Summary

VersionSupport.SemanticVersion.compareTo builds an integer by concatenating major and minor ("%d%d"), so 1.32 becomes 132 and 2.0 becomes 20. Any 2.x server is therefore judged older than the 1.32 minimum, and the client refuses to connect with WeaviateUnsupportedVersionException.

https://github.com/weaviate/java-client/blob/ff57caed14df5778ef715132d618383da559c1cc/src/main/java/io/weaviate/client6/v1/internal/VersionSupport.java#L42-L46

Reproduction (client 6.3.2)

VersionSupport.isSupported("1.39.13"); // true
VersionSupport.isSupported("1.100.0"); // true
VersionSupport.isSupported("2.0.0");   // false
VersionSupport.isSupported("2.5.1");   // false
VersionSupport.isSupported("10.0.0");  // false

Expected

Compare major first, then minor (e.g. Comparator.comparingInt(SemanticVersion::major).thenComparingInt(SemanticVersion::minor)). This is latent until a 2.0 server ships, but then every deployed client would refuse to connect.

Ngôn ngữ chính
Java
Star
34
Fork
29
Merge trung bình
2 ngày 10 giờ
Pull request đã merge (30 ngày)
2

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của weaviate/java-client

Tất cả issue của weaviate/java-client

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.