From 64599f4cfe63fcb900ae0bb7a1f11f85576f471b Mon Sep 17 00:00:00 2001 From: JodliDev Date: Mon, 25 Apr 2022 14:35:02 +0200 Subject: [PATCH] Update README.md --- README.md | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 8ac447a..ac9d0e9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,11 @@ -# Another plugin Fork with CalDAV Support -I am trying to get the changes in this fork back into the original calendar but it needs a newer version of sabre/vobject and I am waiting until https://github.com/kolab-roundcube-plugins-mirror/libcalendaring/pull/1 is accepted. - ## TLDR -Contrary to other CalDAV forks, this one is based on kolab-roundcube-plugins-mirror/calendar (which means the calendar itself is most up to date) and adds CalDAV capability on top of it. As far as I have found, it is the most up to date version with the most bugfixes (August 2021). +Contrary to other CalDAV forks, this one is based on the original calendar kolab-roundcube-plugins-mirror/calendar (which means the calendar itself is most up to date) and adds CalDAV capability on top of it. As far as I am aware, it is the most up to date version with the most bugfixes (April 2022). +(installation instructions are at the bottom) ## Why is this needed? Unfortunately, the current situation about CalDAV support in roundcube is quite confusing. There are several plugins (/Forks) around that have CalDAV support but from what I found, all of them are slightly buggy or do not work anymore. -All of them are based on , a very old Fork which (as far as I can tell) is based on a version of kolab-roundcube-plugins-mirror/calendar that is over 10 years old and been updated in 4 years now. +All of them are based on , a very old Fork which (as far as I can tell) is based on a version of kolab-roundcube-plugins-mirror/calendar that is over 10 years old. +None of these forks incorporate updates from the original calendar, meaning it is only a matter of time until they are not compatible with roundcube anymore. I tried to change as little as possible in the original codebase and only added caldav support as a new driver - which means new updates from the roundcube team should be easy to incorporate. ## History of other Forks so far @@ -14,7 +13,7 @@ All of them are based on , This is the original calendar that all other forks are based on. It is working very well and is actively maintained but unfortunately, it does not have caldav support ### [https://gitlab.awesome-it.de/kolab/roundcube-plugins](awesome-it) : -This is the "original fork" of the calendar. A lot of work was put into it and caldav is almost fully implemented. Unfortunately it included a few bugs / problems and most of them were not fixed in any other forks: +This is the "original fork" of the calendar. A lot of work was put into it and caldav is almost fully implemented. Unfortunately it has a few bugs / problems and most of them were not fixed in any other forks: - The birthday calendar is not supported by the caldav driver. - While the backend (mostly) supports adding all calendars from a dav-url, the front-end does not. That makes calendar handling a bit clunky and confusing. - Calendar colors have to be set manually and can not be loaded from DAV. @@ -26,36 +25,36 @@ This is the "original fork" of the calendar. A lot of work was put into it and c A fork of awesome-it to make it work with blind-coder/rcmcardav (a CardDAV plugin) by packing the outdated version of sabre/DAV inside the plugin. But it hasn't been maintained and is still based on a very outdated version of kolab-roundcube-plugins-mirror/calendar. ### texxasrulez/calendar : -This is a fork of awesome-it with a few bugfixes to make it work with roundcube 1.3. +This is a fork of awesome-it with a few bugfixes to make it work with roundcube 1.3 but its maintainer does not seem to be active anymore. It is the most current fork of the original CalDAV fork. But unfortunately, it is treated as its own project (which means that it doesn't have any updates from the original calendar) and is focused primarily on nextcloud (which I don't really understand since nextcloud is using CalDAV anyway). -Also, on top of still having the original bugs included, it is also still based on an ancient sabre/DAV - version and there hasn't been updated since 2019. +Also, on top of still having the original bugs included, it is also still based on an ancient sabre/DAV version. ### texxasrulez/caldav_calendar : -That one confuses me. It is from Texxas as well and seems to be the basis of Texxas but was abandoned in favour of Texxas. But it seems to be only a few commits behind Texxas. +That one confuses me. It is from texxasrulez as well and seems to be the basis of Texxas but was abandoned in favour of texxasrulez/calendar. But it seems to be only a few commits behind texxasrulez/calendar. -### Another fork, what am I doing differently? +### What is this fork doing differently? All CalDAV forks are based on faster-it which has a very different codebase to the original calendar because of its unfinished "multiple-driver" support. That makes it very difficult to get updates from the original calendar. -So I decided to ditch the "multiple driver" support and keep most changes in the CalDAV driver itself to stay compatible with the original calendar. I also added a ton of updates: -- Updated to the most recent version of the calendar plugin. -- Uses the most recent version of sabre/dav (x) +So I decided to ditch the "multiple driver" support (which isnt used anywway) and keep most changes in the CalDAV driver itself to stay compatible with the original calendar. I also added a ton of updates: +- Based on the most recent version of the calendar plugin. +- Uses the most recent version of sabre/dav (4.1.5) - Only minor changes in the existing code base, meaning that future updates of the calendar plugin should be able to be merged quite easily. -- added support for the birthday calendar. +- Added support for the birthday calendar. - Changed the behaviour from "per calendar" to "per CalDAV source". - All calendars from a source will be automatically added. - Calendars can be created and deleted directly at the CalDAV source. - ics support included. ### Why does this need a fork of libcalendaring? -The original calendar plugin uses sabre/vobject 3.5.3 +The original libcalendaring still uses sabre/vobject 3.5.3 In order to be compatible with other plugins (and because version 3.5.3 is ancient), I updated it to version 4.1.5 The problem is, that sabre/vobject makes use of DateTimeImmutable which libcalendaring does not expect. -It only needs minor changes to account for that but unfortunately the roundcube-project does not accept pull requests... +It only needs minor changes to account for that, but unfortunately the roundcube-project does not accept pull requests... ### Installation -I havent published this as a plugin, so you have to instruct composer to install directly from github. Run the following commands in the roundcubemail folder +I havent published this as a plugin yet, so you have to instruct composer to install directly from github. Run the following commands in the roundcubemail folder (If you get an error that the "API rate limit" has been exceeded and you need an GitHub OAuth token, just follow the instructions in the console - you will need a GitHub account). ``` cd /pathTo/roundcubemail