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

Apply vcal.fix() fixups on save, not only on load

Đang mở
#774 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ó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Tính năng
Độ 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 from CalendarObjectResource._set_data and vcal.fix() to see where fixups run on load, then trace the save path that sends the icalendar data to the server unchanged. The open questions are which fixups are safe to apply on save and how this interacts with sending given bytes unchanged (issue 763). Done means fixups run on save without breaking byte passthrough, with the warning behaviour settled.

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

Mô tả

Disclaimer: AI-generated text below the line, generated by Claude Opus 5.5, from the prompt:

Cleanup on save is not something going into 3.5.0. Fix the message to point this out, but also file an issue so that we can do fixups on save later.


vcal.fix() only runs when raw icalendar data is set on an object (CalendarObjectResource._set_data, on load). Data built or edited through the icalendar instance and then saved goes to the server as-is.

A concrete case: reading component.categories on a component without categories makes the icalendar library insert an empty CATEGORIES: (https://github.com/collective/icalendar/issues/1722). If the object is saved after that, the empty line is stored on the server. The fixup added for it in vcal.fix() (https://github.com/python-caldav/caldav/pull/773, for 3.5.0) only drops it the next time the object is loaded.

Running the fixups on save as well would stop such breakage from reaching the server. Things to consider:

  • Which fixups are safe to apply on the way out.
  • It interacts with https://github.com/python-caldav/caldav/issues/763: sending given bytes unchanged must stay possible.
  • The fixup warning is logged on every modification, so it would also fire on save.
Ngôn ngữ chính
Python
Star
412
Fork
113
Merge trung bình
1 ngày 2 giờ
Pull request đã merge (30 ngày)
41

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.