Repository navigation
feat: hints for task values, X- params, ghosts - #848
Merged
Merged
Conversation
SOGo, Zimbra, Bedework and Posteo delete an object on a stale If-Match (delete.if-match broken), so delete(if_match=...) deleted a version someone else had saved since. There it now reads the ETag with a PROPFIND first and raises ETagMismatchError on a changed object, as save() stands in for the wildcard preconditions a server gets wrong. A window remains between the read and the DELETE. Prompt: (In the calendaring client library) Please continue work on getting the conformance tests passing. (earlier prompt: It's better to fix things properly than to make workarounds. It's within the scope to do changes in [the caldav and caldav-server-tester checkouts] if needed) Followup-Prompt: You can let the old uncommitted changes piggy-back into the same commit. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
Zimbra answers a calendar-multiget naming an href without .ics with 200 and an XML declaration but no document. DAVResponse let lxml's XMLSyntaxError escape, so a lookup of a missing object crashed rather than finding nothing. Such a body now counts as no content, and a response without content has no multistatus responses. Prompt: (In the calendaring client library) Please continue work on getting the conformance tests passing. (earlier prompt: It's better to fix things properly than to make workarounds. It's within the scope to do changes in [the caldav and caldav-server-tester checkouts] if needed) Assisted-By: Claude Opus 5.5 <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
#846 delete(if_match=...) on servers that delete on a stale If-Match now reads the ETag with a PROPFIND first and raises ETagMismatchError if the object changed. A window remains between the read and the DELETE. An answer holding only an XML declaration now counts as no content, rather than letting lxml's XMLSyntaxError escape. Commits: - de11ec1 fix: refuse a stale ETag a server's DELETE ignores - 67d61e6 fix: an XML declaration alone is no content Assisted-By: Claude Opus 5.5 <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
Probing Ox and Zimbra for the calendaring conformance suite found more data they lose than the profiles said. New hints record which task STATUS (RFC 5545's, and RFC 10051's in a child) and PRIORITY values a server keeps, maps or refuses; whether it advertises RFC 10051 (supported-task-modes); X- parameters dropped; multiget answering for deleted objects (Zimbra); and Ox naming only tasks <uid>.ics. Prompt: [fix the unmapped caldav hints, new caldav-server-tester checks and caldav profile updates now] Prompts (comments made inline in the document while reviewing it): > (on the save-load.todo.status hint) Note for "save-load.todo.status" - a server may or may not support RFC 10051. We can only demand it to support FAILED and PENDING if the server declares support for RFC 50051 (sic). If there are many servers acceptign (sic) all the RFC 5545 statuses but not accepting FAILED and PENDING, then maybe we need to split out a child for the RFC 10051-statuses Followup-Prompt: There exists a DAV-property in the RFC for querying for support as far as I remember. The probe for it should be added in the caldav-server-tester as for now. save-load.todo.status.rfc10051 is fine. (...) [the DAV property: CALDAV:supported-task-mode-set, RFC 10051 section 13.1] Assisted-By: Claude Opus 5.5 <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
tobixen
force-pushed
the
feat/hints-tester-group-b
branch
from
November 4, 2026 20:08
d68589e to
59a64fe
Compare
tobixen
added a commit
to python-caldav/caldav-server-tester
that referenced
this pull request
Nov 6, 2026
The tester now defines the six features from caldav's merged but unreleased python-caldav/caldav#848 in FUTURE_FEATURES, copied from caldav's master: save-load.todo.status and .rfc10051, save-load.todo.priority, supported-task-modes, save-load.icalendar.x-parameter and multiget.deleted. With them, the tests pass against the released caldav 3.7.0 that CI installs; 60 of them failed without. The CHANGELOG says so. Prompt: Fix PR52, update or delete obsoleted memory notes. Assisted-By: Claude Opus 5.5 <noreply@anthropic.com> Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Needed by python-caldav/caldav-server-tester#52 and PyCalendar/calendaring#46, whose CI stays red until this is merged.
Commit message:
feat: hints for task values, X- params, ghosts
Probing Ox and Zimbra for the calendaring conformance suite found more
data they lose than the profiles said. New hints record which task
STATUS (RFC 5545's, and RFC 10051's in a child) and PRIORITY values a
server keeps, maps or refuses; whether it advertises RFC 10051
(supported-task-modes); X- parameters dropped; multiget answering for
deleted objects (Zimbra); and Ox naming only tasks .ics.
Prompt: [fix the unmapped caldav hints, new caldav-server-tester checks and caldav profile updates now]
Prompts (comments made inline in the document while reviewing it):
Followup-Prompt: There exists a DAV-property in the RFC for querying for support as far as I remember. The probe for it should be added in the caldav-server-tester as for now. save-load.todo.status.rfc10051 is fine. (...) [the DAV property: CALDAV:supported-task-mode-set, RFC 10051 section 13.1]
Assisted-By: Claude Opus 5.5 noreply@anthropic.com
🤖 Generated with Claude Code