- BC Break: Now requires PHP 5.3
- BC Break: Any node that implemented Sabre_DAVACL_IACL must now also implement
the getSupportedPrivilegeSet method. See website for details. - BC Break: Moved functions from Sabre_CalDAV_XMLUtil to
Sabre_VObject_DateTimeParser. - BC Break: The Sabre_DAVACL_IPrincipalCollection now has two new methods:
'searchPrincipals' and 'updatePrincipal'. - BC Break: Sabre_DAV_ILockable is removed and all related per-node locking
functionality. - BC Break: Sabre_DAV_Exception_FileNotFound is now deprecated in favor of
Sabre_DAV_Exception_NotFound. The former will be removed in a later version. - BC Break: Removed Sabre_CalDAV_ICalendarUtil, use Sabre_VObject instead.
- BC Break: Sabre_CalDAV_Server is now deprecated, check out the documentation
on how to setup a caldav server with just Sabre_DAV_Server. - BC Break: Default Principals PDO backend now needs a new field in the
'principals' table. See the website for details. - Added: Ability to create new calendars and addressbooks from within the
browser plugin. - Added: Browser plugin: icons for various nodes.
- Added: Support for FREEBUSY reports!
- Added: Support for creating principals with admin-level privileges.
- Added: Possibility to let server send out invitation emails on behalf of
CalDAV client, using Sabre_CalDAV_Schedule_IMip. - Changed: beforeCreateFile event now passes data argument by reference.
- Changed: The 'propertyMap' property from Sabre_VObject_Reader, must now be
specified in Sabre_VObject_Property::$classMap. - Added: Ability for plugins to tell the ACL plugin which principal plugins are
searchable. - Added: [DAVACL] Per-node overriding of supported privileges. This allows for
custom privileges where needed. - Added: [DAVACL] Public 'principalSearch' method on the DAVACL plugin, which
allows for easy searching for principals, based on their properties. - Added: Sabre_VObject_Component::getComponents() to return a list of only
components and not properties. - Added: An includes.php file in every sub-package (CalDAV, CardDAV, DAV,
DAVACL, HTTP, VObject) as an alternative to the autoloader. This often works
much faster. - Added: Support for the 'Me card', which allows Addressbook.app users specify
which vcard is their own. - Added: Support for updating principal properties in the DAVACL principal
backends. - Changed: Major refactoring in the calendar-query REPORT code. Should make
things more flexible and correct. - Changed: The calendar-proxy-[read|write] principals will now only appear in
the tree, if they actually exist in the Principal backend. This should reduce
some problems people have been having with this. - Changed: Sabre_VObject_Element_* classes are now renamed to
Sabre_VObject_Property. Old classes are retained for backwards compatibility,
but this will be removed in the future. - Added: Sabre_VObject_FreeBusyGenerator to generate free-busy reports based on
lists of events. - Added: Sabre_VObject_RecurrenceIterator to find all the dates and times for
recurring events. - Fixed: Issue 97: Correctly handling RRULE for the calendar-query REPORT.
- Fixed: Issue 154: Encoding of VObject parameters with no value was incorrect.
- Added: Support for {DAV:}acl-restrictions property from RFC3744.
- Added: The contentlength for calendar objects can now be supplied by a CalDAV
backend, allowing for more optimizations. - Fixed: Much faster implementation of Sabre_DAV_URLUtil::encodePath.
- Fixed: {DAV:}getcontentlength may now be not specified.
- Fixed: Issue 66: Using rawurldecode instead of urldecode to decode paths from
clients. This means that + will now be treated as a literal rather than a
space, and this should improve compatibility with the Windows built-in client. - Added: Sabre_DAV_Exception_PaymentRequired exception, to emit HTTP 402 status
codes. - Added: Some mysql unique constraints to example files.
- Fixed: Correctly formatting HTTP dates.
- Fixed: Issue 94: Sending back Last-Modified header for 304 responses.
- Added: Sabre_VObject_Component_VEvent, Sabre_VObject_Component_VJournal,
Sabre_VObject_Component_VTodo and Sabre_VObject_Component_VCalendar. - Changed: Properties are now also automatically mapped to their appropriate
classes, if they are created using the add() or __set() methods. - Changed: Cloning VObject objects now clones the entire tree, rather than just
the default shallow copy. - Added: Support for recurrence expansion in the CALDAV:calendar-multiget and
CALDAV:calendar-query REPORTS. - Changed: CalDAV PDO backend now sorts calendars based on the internal
'calendarorder' field. - Added: Issue 181: Carddav backends may no optionally not supply the carddata
in getCards, if etag and size are specified. This may speed up certain
requests. - Added: More arguments to beforeWriteContent and beforeCreateFile (see
WritingPlugins wiki document). - Added: Hook for iCalendar validation. This allows us to validate iCalendar
objects when they're uploaded. At the moment we're just validating syntax. - Added: VObject now support Windows Timezone names correctly (thanks mrpace2).
- Added: If a timezonename could not be detected, we fall back on the default
PHP timezone. - Added: Now a Composer package (thanks willdurand).
- Fixed: Support for \N as a newline character in the VObject reader.
- Added: afterWriteContent, afterCreateFile and afterUnbind events.
- Added: Postgresql example files. Not part of the unittests though, so use at
your own risk. - Fixed: Issue 182: Removed backticks from sql queries, so it will work with
Postgres.