Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Collission avoidance

Đang mở
#152 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

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
45/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
python
Lĩnh vực
backend-api-design

Hướng nghiên cứu

The save method in the caldav library needs improved collision avoidance. Start by locating the save method and understanding its current UID-check and check-then-PUT logic. Research caldav-standard approaches to collision detection, including path-name handling and race-condition prevention. The fix will require changes to how new items are created and existing items are updated.

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

Mô tả

enhancement

Also ref #143 ...

The save method have parameter that should prevent one from overwriting existing calendar items or creating new calendar items, but it seems not to be robust enough ...

  • caldav objects have a path name which may or may not correspond to the UID. A UID check is not sufficient to prevent overwriting exisitng calendar items (and possibly on some calendar servers it may be possible to create two calendar items with the same UID but different path names).
  • There is also a potential race condition as we first check and then PUT the new item.

(This would have been trivial if the caldav standard would have imposed some restrictions on the UID, asserted that the pathname and the UID should match, and used POST for new items and PUT for updating existing items ... did I ever mention that the caldav standard sucks, and the only reason for getting involved in this library was that I wanted to interface with it through some abstracted library rather than having to deal with the standard myself)?

Ngôn ngữ chính
Python
Star
412
Fork
113
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
34

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

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 python-caldav/caldav

Tất cả issue của python-caldav/caldav

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.