Skip to content

Commit 8d5fa5d

Browse files
committed
docs: git commit message policy changes, warn about async issues
1 parent 354b338 commit 8d5fa5d

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

AI-POLICY.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
The most important rule: be honest and inform about it!
66

7-
Keep a log of the prompts used - prompts may be included in the
8-
git commits.
7+
Keep a log of the prompts used - prompts should be included in the
8+
git commits
99

1010
Tools should be used for improving the quality of the project, not for
1111
rapidly adding new features.

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,13 @@ This project should adhere to [Semantic Versioning](https://semver.org/spec/v2.0
2727
* raised `KeyError` when the server did not include the `supported-calendar-component-set` property in its response. RFC 4791 section 5.2.3 states this property is optional and that its absence means all component types are accepted; the method now returns the RFC default `["VEVENT", "VTODO", "VJOURNAL"]` in that case, trimmed by any known server limitations from the compatibility hints (e.g. if `save-load.todo` is `unsupported`, `VTODO` is excluded). Fixes https://github.com/python-caldav/caldav/issues/653
2828
* async path returned an unawaited coroutine instead of the actual result.
2929
* `accept_invite()` (and `decline_invite()`, `tentatively_accept_invite()`) now fall back to the client username as the attendee email address when the server does not expose the `calendar-user-address-set` property (RFC6638 §2.4.1). A `NotFoundError` with a descriptive message is raised when the username is also not an email address. Fixes https://github.com/python-caldav/caldav/issues/399
30+
* `get_object_by_uid()` now passes `include_completed=True` so completed todos are found by UID lookup (previously they were silently missed). `get_todo_by_uid()` now uses `comp_class=Todo` instead of a raw VTODO `CompFilter`, aligning it with the rest of the search API. Closes https://github.com/python-caldav/caldav/issues/586
31+
* Sync `_put()` now updates `self.url` from the `Location` header on a 302 redirect, mirroring the existing async behaviour.
3032

3133
### Housekeeping
3234

3335
* Added `funding.json` (https://fundingjson.org/) at the repository root. Closes https://github.com/python-caldav/caldav/issues/608
3436
* Code quality: reduced ruff ignore list (https://github.com/python-caldav/caldav/issues/634) — removed unused imports (`copy`, `lxml.etree`, `CalendarSet`, `cdav/dav` re-exports, `Optional`, `timezone`, `Event`/`Todo` type stubs), replaced bare `except:` clauses with specific exception types (`KeyError`, `AttributeError`, `Exception` where broad catching is intentional), and removed unused local variables.
35-
* Sync `_put()` now updates `self.url` from the `Location` header on a 302 redirect, mirroring the existing async behaviour.
3637

3738
### Test framework, compatibility hints, documentation, examples
3839

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ The types used should (as for now) be one of:
1515
* "refactor" - a code change in the codebase that is neither a bugfix or a feature, but makes the code more readable, shorter, better or more maintainable.
1616
* "test" - fixes, additions or improvements that only affects the test code or the test framework. The commit may include documentation.
1717
* "docs" - changes that *only* is done to the documentation, documentation framework - this includes minor typo fixes as well as new documentation, and it includes both the user documentation under `docs/source`, other documentation files (including CHANGELOG) as well as inline comments and docstrings in the code itself.
18-
* "other" - if nothing of the above fits
18+
* "chore" - if nothing of the above fits
1919

2020
The `compatibility_hints.py` has been moved from the test directory to the codebase not so very long ago. Some special rules here:
2121

docs/source/async.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ The caldav library provides an async-first API for use with Python's
99
* Integrate with async web frameworks (FastAPI, aiohttp, etc.)
1010
* Build responsive applications that don't block on I/O
1111

12+
Caveat
13+
======
14+
15+
A "Sans-IO" design pattern was followed, in a hope that it would make it possible to have one library serve both the async and sync use case through relatively similar APIs without duplicating too much code. In retro-perspective I'm not sure this was the best idea for the CalDAV library. Be aware that there are still exists code paths that works well with the sync code but will blow up if you try using it with the async code.
16+
1217
Quick Start
1318
===========
1419

0 commit comments

Comments
 (0)