Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump caldav from 0.8.0 to 1.2.0 #68

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 27, 2023

Bumps caldav from 0.8.0 to 1.2.0.

Release notes

Sourced from caldav's releases.

Version 1.2.0

What's Changed from 1.1 to 1.2

Not much, but one bugfix, again the caldav library was not working for everyone despite lots of functional testing ...

Full Changelog: python-caldav/caldav@v1.1.3...v1.2.0

Cleaned out some python2-specific stuff

Pull request by @​danigm in python-caldav/caldav#228

Python2 has not been tested for quite some time, hence it has probably been broken since one of the 0.x-releases. I decided to officially drop support for python2 in version 1.0 - but since the release was overdue I procrastinated merging this pull request. To avoid breaking changes in v1.x, I threw in an assert instead.

New feature - custom http headers

Pull request by @​JasonSanDiego in python-caldav/caldav#288 (with style fixup in python-caldav/caldav#291 ) allows headers parameter to the DAVClient constructor.

Rationale given in python-caldav/caldav#285 :

I'm using Nextcloud and want to retrieve calendar (read only) subscriptions along with the normal read/write calendars. Nextcloud supports two ways of doing this. The easier of the two is to pass the custom HTTP header: X-NC-CalDAV-Webcal-Caching: On

Bugfix - basic auth broken for some servers

A bug was introduced in version 1.0, via python-caldav/caldav#260 - the code would only work if there was a space in the WWW-Authenticate header. This works for most servers as they will challenge for credentials using a header like WWW-Authenticate: Basic realm="My CalDAV server" - however, WWW-Authenticate: Basic is fully allowed by RFC2617.

Thanks to @​jdrozdnovak for debugging and reporting.

python-caldav/caldav#289 - python-caldav/caldav#290

v1.1.3

Full Changelog: python-caldav/caldav@v1.1.2...v1.1.3

v1.1.0.dev0 - continued development

What's Changed

Bugfixes, workarounds and annoyances

Documentation

New features

... (truncated)

Changelog

Sourced from caldav's changelog.

Version 1.0 at a glance

Version 1.0.1 is no big gamechanger compared to version 0.x. The biggest change is the commitment that there shouldn't be any breaking changes in any subsequent 1.x-releases.

I had some thoughts in python-caldav/caldav#92 to introduce new API in version 1.0, but have reconsidered. For one thing SEMVER states:

  • If your software is being used in production, it should probably already be 1.0.0.
  • If you have a stable API on which users have come to depend, you should be 1.0.0.
  • If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.

All three points apply and they have done that for a long time, hence a 1.0-release is way overdue, and any API changes will have to wait for 2.0. I'm also intending that the only major breaking changes in 2.0 will be the removal of things that already is marked as deprecated in 1.0. If your library depends on caldav, put "caldav<3.0" in the requirements.

Breaking changes in v1.0

Python2 support is going away

Python2.x is now officially not supported - I've thrown in an assert that we're using python3. In version 1.1, some code for supporting python2 will be cleaned away ... unless, if anyone screams out that they would like to run the newest caldav library version on an old python version, I may reconsider.

"Floating time" breakage

Timezones are difficult! When an event is created through the "new" interface, and a datetime object without time zone is passed, version 0.x would send it over to the calendar servr without time zone information as a "floating time" - now it will be converted to UTC-time and sent to the server as such.

"Floating time" is defined at https://www.rfc-editor.org/rfc/rfc5545#section-3.3.5 and may be useful in some circumstances (like, from time to time, I'm trying to maintain a ritual "raise the flag on the boat at 08:00 local time every morning"). However, I believe that in a majority of cases the lack of time zone is unintentional and meant to be local time. In recent versions of python, dt.astimezone(utc) will assume dt is in local time and convert it to UTC, which in most cases probably is the correct thing to do.

If one intentionally wants to create events or tasks with "floating time", then one may use the ical_fragment parameter.

This may have the unfortunate side effect that some clients that aren't aware of their time zone (possibly including my calendar-cli - I will have to look into that) will show events in UTC-time rather than local time. I think the proper thing would be to either fix those clients to be timezone-aware, or even better, to always be explicit and always put the local time zone into the datetimes passed to calendar.save_event().

Major features

  • Support for bearer token

Some bugfixes and workarounds

  • new parent/child-code had some issues
  • creating an event by sending an ical fragment had some issues
  • expansion of recurring todos broke when the recurring_ical_event was upgraded from 1.x to 2.x
  • len(calendar.objects()) did not work
  • Some hacks that hopefully will allow to fetch information from DOCUframe
  • The breaking timezone change
  • Observed broken icalendar data from Zimbra containing both DTEND and DURATION. Made a workaround throwing some excss data.

Documentation

Documentation now has sections on backward compatibility and "Schrodingers support" for old python versions.

The basic_usage_examples.py has been rewritten from scratch.

Test code and housekeeping

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [caldav](https://github.com/python-caldav/caldav) from 0.8.0 to 1.2.0.
- [Release notes](https://github.com/python-caldav/caldav/releases)
- [Changelog](https://github.com/python-caldav/caldav/blob/master/changelog-1.0.md)
- [Commits](python-caldav/caldav@v0.8.0...v1.2.0)

---
updated-dependencies:
- dependency-name: caldav
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Feb 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file python Pull requests that update Python code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants