fix(deps): update dependency caldav to v2 #363
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.
This PR contains the following updates:
==1.3.6
->==2.0.0
Release Notes
python-caldav/caldav (caldav)
v2.0.0
Compare Source
Here are the most important changes in 2.0:
davclient.principals()
to search for other principals on the server - and from there it's possible to do calendar searches and probe what calendars one have access to. If the server will allow it.Deprecated
calendar.date_search
- usecalendar.search
instead. (this one has been deprecated for a while, but only with info-logging). This is almost a drop-in replacement, except for two caveats:date_search
does by default to recurrence-expansion when doing searches on closed time ranges. The default value isFalse
in search (this gives better consistency - no surprise differences when changing between open-ended and closed-ended searches, but it's recommended to useexpand=True
when possible).calendar.search
,split_expanded
is set toTrue
. This may matter if you have any special code for handling recurrences in your code. If not, probably the recurrences that used to be hidden will now be visible in your search results.expand='server'
andexpand='client'
in 1.x to force through expansion either at the server side or client side (and the default was to try server side with fallback to client side). The four possible values "True
/False
/client
/server
" does not look that good in my opinion so the two latter is now deprecated, a new parameterserver_expand=True
will force server-side expansion now (see also the Changes section)event.instance
property currently yields a vobject. For quite many years people have asked for the python vobject library to be replaced with the python icalendar objects, but I haven't been able to do that due to backward compatibility. In version 2.0 deprecation warnings will be given whenever someone uses theevent.instance
property. In 3.0, perhapsevent.instance
will yield aicalendar
instance. Old test code has been updated to use.vobject_instance
instead of.instance
.davclient.auto_conn
that was introduced just some days ago has already been renamed todavclient.get_davclient
.Added
event.component
is now an alias forevent.icalendar_component
.get_davclient
(earlier calledauto_conn
) is more complete now - https://github.com/python-caldav/caldav/pull/502 - https://github.com/python-caldav/caldav/issues/485 - https://github.com/python-caldav/caldav/pull/507check_config_file
, defaults to true~/.config/caldav/calendar.conf
,~/.config/caldav/calendar.yaml
,~/.config/caldav/calendar.json
,~/.config/calendar.conf
,/etc/calendar.conf
,/etc/caldav/calendar.conf
as for now)davclient.principals()
will return all principals on server - if server permits. It can also do server-side search for a principal with a given user name - if server permits - https://github.com/python-caldav/caldav/pull/514 / https://github.com/python-caldav/caldav/issues/131todo.is_pending
returns a bool. This was an internal method, but is now promoted to a public method. Arguably, it belongs to icalendar library and not here. Piggybacked in through https://github.com/python-caldav/caldav/pull/526auth_type
in the connection parameters. With this it's possible to avoid an extra 401-request just to probe the authentication types. https://github.com/python-caldav/caldav/pull/529 / https://github.com/python-caldav/caldav/issues/523auth_type
parameter. https://github.com/python-caldav/caldav/pull/522 / https://github.com/python-caldav/caldav/issues/517, by edel-macias-cubix.Documentation and examples
Fixed
Changed
event.vobject_instance
then you need to include the vobject dependency explicitly in your project.event.search(..., expand=True)
or the deprecatedevent.date_search
) will now by default do a client-side expand. This gives better consistency and probably improved performance, but makes 2.0 bug-incompatible with 1.x.Removed
If you disagree with any of this, please raise an issue and I'll consider if it's possible to revert the change.
calendar.build_date_search_query
was ripped out. (it was deprecated for a while, but only with info-logging - however, this was an obscure internal method, probably not used by anyone?)Changes in test framework
v1.6.0
Compare Source
This will be the last minor release before 2.0. The scheduling support has been fixed up a bit, and saving a single recurrence does what it should do, rather than messing up the whole series.
Fixed
Added
event.save(all_recurrences=True)
to edit the whole series when saving a modified recurrence. Part of https://github.com/python-caldav/caldav/pull/500Event.set_dtend
andCalendarObjectResource.set_end
. https://github.com/python-caldav/caldav/pull/499Refactoring and tests
2f61dc7
, the rest was piggybaced in through https://github.com/python-caldav/caldav/pull/500.task.uncomplete
-check for GMX server - https://github.com/python-caldav/caldav/issues/525Time spent and roadmap
Maintainer put down ten hours of effort for the 1.6-release. The estimate was 12 hours.
v1.5.0
Compare Source
Version 1.5 comes with support for alarms (searching for alarms if the server permits and easy interface for adding alamrs when creating events), lots of workarounds and fixes ensuring compatibility with various servers, refactored some code, and done some preparations for the upcoming server compatibility hints project.
Deprecated
Python 3.7 is no longer tested (dependency problems) - but it should work. Please file a bug report if it doesn't work. (Note that the caldav library pulls in many dependencies, and not all of them supports dead snakes).
Fixed
event.load()
fails, it will retry the load by doing a multiget - https://github.com/python-caldav/caldav/pull/460 and https://github.com/python-caldav/caldav/pull/475 - https://github.com/python-caldav/caldav/issues/459Changed
tests/compatibility_issues.py
has been moved tocaldav/compatibility_hints.py
, this to make it available for a caldav-server-tester-tool that I'm splitting off to a separate project/repository, and also to make https://github.com/python-caldav/caldav/issues/402 possible.Refactoring
objects.py
-file has been split into three - https://github.com/python-caldav/caldav/pull/483multiget
in https://github.com/python-caldav/caldav/pull/492Documentation
Test framework
tests/test_caldav.py
totests/conf.py
. This allows for:conf_private.py
tests.client
-method, which is also used in theexamples
-section.check_server_compatibility
-scriptAdded
auto_conn
,auto_calendar
andauto_calendars
may read caldav connection and calendar configuration from a config file, environmental variables or other sources. Currently I've made the minimal possible work to be able to test the caldav-server-tester script.calendar.search(..., sort_keys=("DTSTART")
will work. Sort keys expects a list or a tuple, but it's easy to send an attribute by mistake. https://github.com/python-caldav/caldav/issues/448 https://github.com/python-caldav/caldav/pull/449class_
-parameter now works when sending data tosave_event()
etc.journal=True
. ref https://github.com/python-caldav/caldav/issues/237 and https://github.com/python-caldav/caldav/pull/486Time spent and roadmap
A roadmap was made in May 2025: https://github.com/python-caldav/caldav/issues/474 - the roadmap includes time estimates.
Since the roadmap was made, the maintainer has spent 39 hours working on the CalDAV project - this includes a bit of documentation, quite some communication, reading on the RFCs, code reviewing, but mostly just coding. This is above estimate due to new issues coming in.
v1.4.0
Compare Source
Fixed
accept_invite
-method not working - https://github.com/python-caldav/caldav/pull/403get_duration
: make sure the algorithm doesn't raise an exception comparing dates with timestamps - https://github.com/python-caldav/caldav/pull/381set_due
: make sure the algorithm doesn't raise an exception comparing naive timestamps with timezone timestamps - https://github.com/python-caldav/caldav/pull/381expand
-flag to thesearch
-method. Fixed that it loads regardless of weatherexpand
is set or not. Also in https://github.com/python-caldav/caldav/pull/366Changed
search
a bit, now all data from the server not containing a VEVENT, VTODO or VJOURNAL will be thrown away. I believe this won't cause any problems for anyone, as the server should only deliver such components, but I may be wrong.Mozilla/5
topython-caldav/{__version__}
- https://github.com/python-caldav/caldav/pull/392Added
tests/compatibility_issues.py
expand
should be done on the server side or client side. Default is as before, expanding on server side, then on the client side if unexpanded data is returned. It was found that some servers does expanding, but does not addRECURRENCE-ID
. https://github.com/python-caldav/caldav/pull/447Security
The debug information gathering hook has been in the limbo for a long time, due to security concerns:
Thinking it through three times, I'm not too concerned - if someone has access to alter the environment the process is running under and access to read files run by the uid of the application, then this someone should already be trusted and will probably have the possibility to DoS the system or gather this communication through other means.
Credits
Georges Tooth, Крылов Александр, zhwei, Stefan Ollinger, Matthias Urlichs, ArtemIsmagilov, Tobias Brox has contributed directly with commits and pull requests included in this release. Many more has contributed through reporting issues and code snippets.
Test runs
Prior to release (commit
92de2e2
), tests have been run successfully towards:compatibility_issues.nextcloud + ['no_delete_calendar', 'unique_calendar_ids', 'rate_limited', 'broken_expand']
and with frequent manual "empty thrashcan"-operations in webui.v1.3.9
Compare Source
Some bugfixes.
Fixed
DAVResponse.davclient
was always set to None, now it may be set to theDAVClient
instance. Credits to github user @sobolevn in https://github.com/python-caldav/caldav/pull/323DAVResponse.davclient
was always set to None, now it may be set to theDAVClient
instance. Credits to github user @sobolevn in https://github.com/python-caldav/caldav/pull/323examples/sync_examples.py
, the sync token needs to be saved to the database (credits to Savvas Giannoukas)set_relations
, credits to github user @Zocker1999NET in https://github.com/python-caldav/caldav/pull/335 and https://github.com/python-caldav/caldav/pull/333min_date
andmax_date
(and logging en error) rather than throwing OverflowError, credits to github user @tamarinvs19 in https://github.com/python-caldav/caldav/pull/327DTSTART
would cause a runtime errorv1.3.8
Compare Source
Why do I never manage to do releases right ..
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.