summaryrefslogtreecommitdiff
path: root/ReleaseNotes.txt
blob: 9ded3b259c4ca4b0bd6879d0b0f40bf4bc86ae7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
Release Highlights
==================

Version 3.1.0 (NOT RELEASED YET):
--------------------------------
 * Requires CMake v3.11.0 or higher
 * libical-glib now requires glib 2.38 or higher
 * Improved FindICU (from the official CMake)
 * Allow previous recurrence iteration
 * All ical*_new_clone() functions have been deprecated in favour of ical*_clone()
 * New publicly available functions:
     + icalrecurrencetype_encode_day
     + icalrecurrencetype_encode_month
     + icaltzutil_set_zone_directory
     + icalcomponent_clone
     + icalproperty_clone
     + icalparameter_clone
     + icalvalue_clone
     + icalcluster_clone
     + icalrecur_iterator_prev
     + icalcomponent_set_x_name
     + icalcomponent_get_x_name
     + icalcomponent_get_component_name
     + icalcomponent_get_component_name_r
     * ical_set_invalid_rrule_handling_setting
     * ical_get_invalid_rrule_handling_setting
 * icaltzutil_get_zone_directory() can use the TZDIR environment to find system zoneinfo
 * Deprecated functions:
     + caldat (replaced by internal function icaldat_int())
     + juldat (replaced by internal function juldat_int())
     + icalcomponent_new_clone
     + icalproperty_new_clone
     + icalparameter_new_clone
     + icalvalue_new_clone
     + icalcluster_new_clone
 * Removed unused declarations:
     (were in the public headers but not used at all)
     + struct icaltimezonetype
     + struct icaltimezonephase
 * Improved performance of recurrence iterators

Version 3.0.9 (UNRELEASED):
---------------------------
 * Add support for empty parameters, e.g. CN=""
 * Accept VTIMEZONE with more than one X- property
 * Fix cross-compile support in libical-glib
 * Fix build with newer libicu
 * Fix compiled-in path for the built-in timezone data
 * Several fixes for recurrences containing BYWEEKNO
 * Fix reading TZif files with empty v1 data (use v2+ whenever possible)

Version 3.0.8 (07 March 2020):
------------------------------
 * Fix for icalattach_new_from_data() and the 'free_fn' argument
 * Fix if recurrencetype contains both COUNT and UNTIL (only output UNTIL in the RRULE)

Version 3.0.7 (15 December 2019):
---------------------------------
 * libical-glib: Fix ICalAttach handling of the icalattach native structure
 * Let icalattach_new_from_data() use the 'free_fn' argument again
 * Fix memory leaks in attachment handling and elsewhere
 * Fix a multithreading race condition
 * More fuzzification fixes

Version 3.0.6 (14 Sept 2019):
-----------------------------
 * Handle both COUNT and UNTIL in RRULEs
 * Fix RRULE BYDAY with INTERVAL=2 conflict
 * Various fuzzification fixes
 * New publicly available function:
     + icaltimezone_truncate_vtimezone()
 * Add option to disable building the test suite
 * Built-in timezones updated to tzdata2019c

Version 3.0.5 (14 May 2019):
----------------------------
 * New publicly available function:
     + icalproperty_get_datetime_with_component()
 * Allow reset DATE/DATE-TIME VALUE parameter for all-day events
 * icalproperty_get_datetime_with_component() will use location as TZID fallback.
 * New CMake option ENABLE_GTK_DOC for disabling the libical-glib developer documentation
 * GObject Introspection - use $MAJOR-0 versioning
 * libical-glib API is considered unstable, define LIBICAL_GLIB_UNSTABLE_API=1 before
   including <libical-glib/libical-glib.h> to be able to use it.
 * Built-in timezones updated to tzdata2019a
 * De-fuzzifications and Coverity fixes

Version 3.0.4 (14 Aug 2018):
----------------------------
 * Silently fail RSCALE recurrence clauses when RSCALE is disabled
 * Fixed icalcomponent_set_comment() and icalcomponent_set_uid()
 * fix FREQ=MONTHLY;BYMONTH
 * Skip UTF-8 marker when parsing
 * Fix parsing <CR>?<LF> in VCF files produced by Outlook
 * Fix TZID on DATE-TIME value can override time specified in UTC
 * CMake discovery module for ICU uses pkg-config now
 * New publicly available function:
     + icalparameter_kind_is_valid()
 * Built-in timezones updated to tzdata2018e

Version 3.0.3 (27 Feb 2018):
----------------------------
 * VTODO COMPLETED property can be a DATE-TIME or DATE (for backward compatibility)
 * Improved recurrence iteration

Version 3.0.2 (17 Feb 2018):
----------------------------
 * No longer attempt to detect the need for -DUSE_32BIT_TIME_T with MSVC
 * New CMake option ICAL_BUILD_DOCS which can be used to disable the docs target
 * Fix threading hang in BSD type systems (OpenBSD, MacOS,...)
 * Build with Ninja improvements

Version 3.0.1 (18 Nov 2017):
----------------------------
 * Built-in timezones updated to tzdata2017c
 * Fix a multi-threaded deadlock in icaltimezone_load_builtin_timezone()
 * Fix a CMake problem with parallel builds

Version 3.0.0 (28 Oct 2017):
----------------------------
 * 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
 * Added support for VPATCH component
 * 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
     + icalcomponent_normalize()
     + icalproperty_normalize()
 * 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 (28 Dec 2015):
----------------------------
 * 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 (11 Oct 2014):
----------------------------
 * [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

Version 1.0.0 (28 Jun 2014):
----------------------------
 * Reborn