Release Highlights ================== Version 3.0.0: -------------- * Relicense from MPL 1.0 to MPL 2.0 (keep dual license for LGPL v2.1) * Requires CMake v3.1.0 or higher along with various CMake and buildsystem fixes * Added a 'make uninstall' * Fixed use-after-free issues and some memory leaks * Built-in timezones updated to tzdata2017b * More accurate VTIMEZONE generation when using the system time zone data (when USE_BUILTIN_TZDATA=False) * icalvalue_as_ical_string() returns "TRUE" (non-zero) or "FALSE" (zero) values only. * New icalvalue.h convenience macros: ICAL_BOOLEAN_TRUE and ICAL_BOOLEAN_FALSE * Better value type checking of property values when parsing * icalvalue_new/set_date and icalvalue_new/set_datetime now enforce DATE and DATE-TIME values respectively * draft-ietf-calext-extensions (RFC 7986) support added * Parameter values are now en/decoded per RFC 6868 * Removed is_utc from icaltimetype struct * Set icaltimetype.zone to icaltimezone_get_utc_timezone() to change a time to UTC * Use icaltime_is_utc() to check if a time is in UTC * New publicly available functions: + icalproperty_set_parent (icalproperty_get_parent was already public) + icalvalue_get_parent (icalvalue_set_parent was already public) + icalparameter_set_parent + icalparameter_get_parent + icalvalue_new_datetimedate (DATE or DATE-TIME) + icalvalue_set_datetimedate + icalvalue_get_datetimedate + icalrecur_iterator_set_start * Removed deprecated functions: + icaltime_from_timet (use icaltime_from_timet_with_zone) + icaltime_start_day_of_week (use icaltime_start_day_week) + icalproperty_remove_parameter (use icalproperty_remove_parameter_by_kind) + icalproperty_string_to_enum (use icalproperty_kind_and_string_to_enum) * Signature changed for functions: + VObject *Parse_MIME_FromFileName(const char *fname) + icalgauge *icalgauge_new_from_sql(const char *sql, int expand) + const char *icallangbind_property_eval_string(icalproperty *prop, const char *sep) + const char *icallangbind_property_eval_string_r(icalproperty *prop, const char *sep) + void set_zone_directory(const char *path) + icalcalendar *icalcalendar_new(const char *dir) + int icalrecur_expand_recurrence(const char *rule, time_t start, int count, time_t *array) Version 2.0.0: -------------- * WARNING: Version 2 IS NOT Binary Compatible with Older Versions * Version 2 is Source Compatible with Older Versions * Lots of source code scrubbing * [New] RSCALE support (requires libicu from http://www.icu-project.org) * [New] CalDAV attachment support (draft-ietf-calext-caldav-attachments) * [New] Resurrect the Berkeley DB storage support * [Bug] issue83: Incorrect recurrence generation for weekly pattern * Handle RRULEs better * Handle threading better Version 1.0.1: -------------- * [Bug] issue74: Do not escape double quote character * [Bug] issue80,issue92: fix crashes using icaltimezone_load_builtin_timezone() recursively * [Bug] Fix icalcomponent_foreach_recurrence() and large durations between recurrences (e.g. FREQ=YEARLY) * [Bug] Properly handle UTCOFFSETs of the form +/-00mmss * [Bug] Properly skip bogus dates (e.g. 2/30, 4/31) in RRULE:FREQ=MONTHLY * [Bug] Properly handle RRULE:FREQ=MONTHLY;BYDAY;BYMONTHDAY when DTSTART isn't on BYDAY * [Bug] Fix RRULE:FREQ=YEARLY;BYDAY;BYWEEKNO - MUST use ISO weeks * [Bug] Properly skip bogus dates (e.g. 2/29) in RRULE:FREQ=YEARLY[;BYMONTH][;BYMONTHDAY] * [New] Update tzdata to version 2014g * [New] Support added for schedule params: agent, status, force-send * [New] Added a UID to the VFREEBUSY component * [New] Allow dates > 2038 if sizeof(time_t) > 4 * [New] Add properties from draft-ietf-tzdist-service * [New] Add support for RRULE:FREQ=YEARLY;BYDAY;BYYEARDAY and fixed RRULE:FREQ=YEARLY;BYYEARDAY with negative days * [Build] Autotools build system is removed * [Build] CMake version 2.8.9 (or higher) is required (was CMake version 2.4.0) * [Build] Add new -DSHARED_ONLY and -DSTATIC_ONLY CMake options * [Build] Remove -DSTATIC_LIBRARY CMake option * [Build] MSYS2 builds (fixed instructions) * [Build/Doc] Now can build api documentation with make docs * [Quality] More regression tests added, in particular for recurrence * [Quality] Almost all compile warnings silenced * [Quality] A bunch of Coverity Scan warnings silenced