You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20-3Lines changed: 20 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,16 +12,32 @@ Changelogs prior to v2.0 is pruned, but was available in the v2.x releases
12
12
13
13
This project should adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), though for pre-releases PEP 440 takes precedence.
14
14
15
-
## [Unreleased]
15
+
## [3.0.1] - 2026-03-04
16
+
17
+
Highlights:
18
+
19
+
* Minor bugfix to support old versions of httpx
20
+
* New test server docker container: OX
21
+
* Minor other fixes and workarounds
22
+
* Started working on proper documentation for the 3.x-series
23
+
24
+
### Test runs before release
25
+
26
+
* Xandikos, Radicale, all docker servers (including OX), an external Zimbra server, but no other external servers.
16
27
17
28
### Added
18
29
19
-
***OX App Suite**compatibility hints added; the library is now tested against OX App Suite via a new Docker test server (`tests/docker-test-servers/ox/`).
20
-
* New `search.unlimited-time-range` feature flag with a workaround in `search.py` that injects a broad time range (1970–2126) for servers that return an empty result set when no time range is specified.
30
+
***OX App Suite**included in the docker test servers. Compatibility hints added. To get OX running it's needed to do an extra build step. See `tests/docker-test-servers/ox/`. However, OX is undertested as both the caldav-server-checker and the test suite does not play well with OX (events with historic DTSTART etc are used, OX doesn't support that).
31
+
* New `search.unlimited-time-range` feature flag with a workaround in `search.py` that injects a broad time range (1970–2126) for servers that return an empty result set when no time range is specified (but this still doesn't help to OX).
21
32
22
33
### Fixed
23
34
24
35
*`AsyncDAVClient` failed to initialize when using httpx < 0.23.0 because `proxy=None` was unconditionally passed to `httpx.AsyncClient` which did not accept a `proxy` keyword argument in older releases. Fixes https://github.com/python-caldav/caldav/issues/632
36
+
* Stalwart (like purelymail) includes extra "not found" error data in some responses. This could trigger a spurious `"Deviation from expectations found"` log error in production, or an assertion failure in debug mode.
37
+
38
+
### Security
39
+
40
+
* UUID1 was replaced with UUID4 before releasing v3.0 ... some places. Unfortunately I forgot to grep for UUID1 before preparing the release. When UIDs are generated by UUID1, it may embed the host MAC address in calendar data shared with third parties. Switched to UUID4 throughout.
25
41
26
42
### Potentially Breaking Changes
27
43
@@ -222,6 +238,7 @@ Additionally, direct `DAVClient()` instantiation should migrate to `get_davclien
222
238
223
239
### GitHub Issues Closed
224
240
241
+
* #71 - `add_object` vs `save_object` (reopened, reverted and closed)
225
242
* #128 - Calendar constructor should accept name parameter (long-standing issue) -- Tobias Brox (@tobixen)
226
243
* #342 - need support asyncio -- @ArtemIsmagilov
227
244
* #424 - implement support for JMAP protocol -- @ArtemIsmagilov
0 commit comments