RSS feed GUIDs are unstable when multi-architecture wheels arrive at different times

Đang mở
#1,381 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ó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
backend

Hướng nghiên cứu

Start at iter_releases(), where releases are grouped and annotated with file_added_at, and trace how the RSS GUID uses link and pubdate. Update the query and GUID construction according to the proposed build-tag approach, then verify that later platform wheels keep the same GUID while a new build tag changes it.

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

Mô tả

Summary

The GUID fix from #1374 (appending #timestamp to make rebuilds visible) causes feed readers to show duplicate entries when platform-specific wheels for the same (name, version, build_tag) arrive at different times.

Root cause

iter_releases() groups by (name_normalized, version) and annotates added_at=Max("file_added_at"). The GUID is link#pubdate.isoformat(). When a new architecture wheel is promoted (e.g., s390x arriving an hour after x86_64/aarch64/ppc64le), Max(file_added_at) shifts, producing a different GUID. Feed readers treat the new GUID as a new item.

Proposed fix

Replace the timestamp-based GUID fragment with a build-tag-based fragment. Use ArrayAgg("filename") in the query, extract PEP 427 build tags from wheel filenames in Python, and construct GUIDs like link#builds=1,2.

This makes GUIDs:

  • Stable when additional platform wheels arrive for the same build tag
  • Different when a genuine rebuild introduces a new build tag (the original #1374 requirement)
Ngôn ngữ chính
Python
Star
49
Fork
88
Merge trung bình
1 ngày 10 giờ
Pull request đã merge (30 ngày)
31

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

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 pulp/pulp_python

Tất cả issue của pulp/pulp_python

Issue tương tự

Thêm issue về Python

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.