Skip to content

fix: Bedework and GMX hints from the conformance run - #855

Open
tobixen wants to merge 2 commits into
masterfrom
fix/conformance-hints
Open

tobixen wants to merge 2 commits into
masterfrom
fix/conformance-hints

Conversation

@tobixen

@tobixen tobixen commented Nov 11, 2026

Copy link
Copy Markdown
Member

Disclaimer: AI-generated code and text below the line, generated by Claude Opus 5.5, from the prompt(s):

[pick from the task list: "calendaring: remaining conformance failures on Ox, Zimbra and others"]
... First priority is to get the conformance tests passing for all the caldav servers available ...


Compatibility hints found while getting the calendaring conformance suite to pass on every test server, all probed with caldav-server-tester on 2026-11-11:

  • Bedework 3.10 and 5.0: save.if-none-match is ungraceful. A PUT of a new object under a name another object holds is refused with 500 "duplicatename", with or without If-None-Match: *, so save(no_overwrite=True) raised a 500 error rather than ConsistencyError. With the hint it checks the name with a GET before the PUT. The save.if-none-match description now defines ungraceful. The probe change that found it: https://github.com/python-caldav/caldav-server-tester/tree/fix/if-none-match-other-uid
  • Bedework 3.10: save-load.icalendar.x-parameter is unsupported; an X- parameter on SUMMARY is dropped.
  • GMX: save-load.todo.status.rfc10051 is ungraceful; a task with STATUS:PENDING or FAILED is refused with 403.

The last two are features not released yet, so they extend the existing "added" changelog fragment instead of getting fragments of their own.

Bedework (3.10 and 5.0) answers a PUT of a new object under a name
another object holds with 500 "duplicatename", whether or not it
carries If-None-Match: *; only the same UID gets the 412.  With
save.if-none-match "ungraceful", save(no_overwrite=True) checks the
name with a GET instead.  Bedework 3.10 also drops an X- parameter on
SUMMARY.  Both found with caldav-server-tester, the first one with a
probe that now also PUTs another UID.

Prompt: [pick from the task list: "calendaring: remaining conformance failures on Ox, Zimbra and others"]
Followup-Prompt: ... First priority is to get the conformance tests passing for all the caldav servers available ...
Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
GMX answers 403 to a task with STATUS:PENDING or STATUS:FAILED, the two
values RFC 10051 adds, so save-load.todo.status.rfc10051 is
"ungraceful" there, with both values refused.  Probed with
caldav-server-tester.

Prompt: [pick from the task list: "calendaring: remaining conformance failures on Ox, Zimbra and others"]
Followup-Prompt: ... First priority is to get the conformance tests passing for all the caldav servers available ...
Assisted-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant