Add spec file
[jansson.git] / CHANGES
1 Version 2.0
2 ===========
3
4 Released 2011-02-28
5
6 This release is backwards incompatible with the 1.x release series.
7 See the chapter "Upgrading from older versions" in documentation for
8 details.
9
10 * Backwards incompatible changes:
11
12   - Unify unsigned integer usage in the API: All occurences of
13     unsigned int and unsigned long have been replaced with size_t.
14
15   - Change JSON integer's underlying type to the widest signed integer
16     type available, i.e. long long if it's supported, otherwise long.
17     Add a typedef json_int_t that defines the type.
18
19   - Change the maximum indentation depth to 31 spaces in encoder. This
20     frees up bits from the flags parameter of encoding functions
21     `json_dumpf()`, `json_dumps()` and `json_dump_file()`.
22
23   - For future needs, add a flags parameter to all decoding functions
24     `json_loadf()`, `json_loads()` and `json_load_file()`.
25
26 * New features
27
28   - `json_pack()`, `json_pack_ex()`, `json_vpack_ex()`: Create JSON
29     values based on a format string.
30
31   - `json_unpack()`, `json_unpack_ex()`, `json_vunpack_ex()`: Simple
32     value extraction and validation functionality based on a format
33     string.
34
35   - Add column, position and source fields to the ``json_error_t``
36     struct.
37
38   - Enhance error reporting in the decoder.
39
40   - ``JANSSON_VERSION`` et al.: Preprocessor constants that define the
41     library version.
42
43   - `json_set_alloc_funcs()`: Set custom memory allocation functions.
44
45 * Fix many portability issues, especially on Windows.
46
47 * Configuration
48
49   - Add file ``jansson_config.h`` that contains site specific
50     configuration. It's created automatically by the configure script,
51     or can be created by hand if the configure script cannot be used.
52     The file ``jansson_config.h.win32`` can be used without
53     modifications on Windows systems.
54
55   - Add a section to documentation describing how to build Jansson on
56     Windows.
57
58   - Documentation now requires Sphinx 1.0 or newer.
59
60
61 Version 1.3
62 ===========
63
64 Released 2010-06-13
65
66 * New functions:
67
68   - `json_object_iter_set()`, `json_object_iter_set_new()`: Change
69     object contents while iterating over it.
70
71   - `json_object_iter_at()`: Return an iterator that points to a
72     specific object item.
73
74 * New encoding flags:
75
76   - ``JSON_PRESERVE_ORDER``: Preserve the insertion order of object
77     keys.
78
79 * Bug fixes:
80
81   - Fix an error that occured when an array or object was first
82     encoded as empty, then populated with some data, and then
83     re-encoded
84
85   - Fix the situation like above, but when the first encoding resulted
86     in an error
87
88 * Documentation:
89
90   - Clarify the documentation on reference stealing, providing an
91     example usage pattern
92
93
94 Version 1.2.1
95 =============
96
97 Released 2010-04-03
98
99 * Bug fixes:
100
101   - Fix reference counting on ``true``, ``false`` and ``null``
102   - Estimate real number underflows in decoder with 0.0 instead of
103     issuing an error
104
105 * Portability:
106
107   - Make ``int32_t`` available on all systems
108   - Support compilers that don't have the ``inline`` keyword
109   - Require Autoconf 2.60 (for ``int32_t``)
110
111 * Tests:
112
113   - Print test names correctly when ``VERBOSE=1``
114   - ``test/suites/api``: Fail when a test fails
115   - Enhance tests for iterators
116   - Enhance tests for decoding texts that contain null bytes
117
118 * Documentation:
119
120   - Don't remove ``changes.rst`` in ``make clean``
121   - Add a chapter on RFC conformance
122
123
124 Version 1.2
125 ===========
126
127 Released 2010-01-21
128
129 * New functions:
130
131   - `json_equal()`: Test whether two JSON values are equal
132   - `json_copy()` and `json_deep_copy()`: Make shallow and deep copies
133     of JSON values
134   - Add a version of all functions taking a string argument that
135     doesn't check for valid UTF-8: `json_string_nocheck()`,
136     `json_string_set_nocheck()`, `json_object_set_nocheck()`,
137     `json_object_set_new_nocheck()`
138
139 * New encoding flags:
140
141   - ``JSON_SORT_KEYS``: Sort objects by key
142   - ``JSON_ENSURE_ASCII``: Escape all non-ASCII Unicode characters
143   - ``JSON_COMPACT``: Use a compact representation with all unneeded
144     whitespace stripped
145
146 * Bug fixes:
147
148   - Revise and unify whitespace usage in encoder: Add spaces between
149     array and object items, never append newline to output.
150   - Remove const qualifier from the ``json_t`` parameter in
151     `json_string_set()`, `json_integer_set()` and `json_real_set`.
152   - Use ``int32_t`` internally for representing Unicode code points
153     (int is not enough on all platforms)
154
155 * Other changes:
156
157   - Convert ``CHANGES`` (this file) to reStructured text and add it to
158     HTML documentation
159   - The test system has been refactored. Python is no longer required
160     to run the tests.
161   - Documentation can now be built by invoking ``make html``
162   - Support for pkg-config
163
164
165 Version 1.1.3
166 =============
167
168 Released 2009-12-18
169
170 * Encode reals correctly, so that first encoding and then decoding a
171   real always produces the same value
172 * Don't export private symbols in ``libjansson.so``
173
174
175 Version 1.1.2
176 =============
177
178 Released 2009-11-08
179
180 * Fix a bug where an error message was not produced if the input file
181   could not be opened in `json_load_file()`
182 * Fix an assertion failure in decoder caused by a minus sign without a
183   digit after it
184 * Remove an unneeded include of ``stdint.h`` in ``jansson.h``
185
186
187 Version 1.1.1
188 =============
189
190 Released 2009-10-26
191
192 * All documentation files were not distributed with v1.1; build
193   documentation in make distcheck to prevent this in the future
194 * Fix v1.1 release date in ``CHANGES``
195
196
197 Version 1.1
198 ===========
199
200 Released 2009-10-20
201
202 * API additions and improvements:
203
204   - Extend array and object APIs
205   - Add functions to modify integer, real and string values
206   - Improve argument validation
207   - Use unsigned int instead of ``uint32_t`` for encoding flags
208
209 * Enhance documentation
210
211   - Add getting started guide and tutorial
212   - Fix some typos
213   - General clarifications and cleanup
214
215 * Check for integer and real overflows and underflows in decoder
216 * Make singleton values thread-safe (``true``, ``false`` and ``null``)
217 * Enhance circular reference handling
218 * Don't define ``-std=c99`` in ``AM_CFLAGS``
219 * Add C++ guards to ``jansson.h``
220 * Minor performance and portability improvements
221 * Expand test coverage
222
223
224 Version 1.0.4
225 =============
226
227 Released 2009-10-11
228
229 * Relax Autoconf version requirement to 2.59
230 * Make Jansson compile on platforms where plain ``char`` is unsigned
231 * Fix API tests for object
232
233
234 Version 1.0.3
235 =============
236
237 Released 2009-09-14
238
239 * Check for integer and real overflows and underflows in decoder
240 * Use the Python json module for tests, or simplejson if the json
241   module is not found
242 * Distribute changelog (this file)
243
244
245 Version 1.0.2
246 =============
247
248 Released 2009-09-08
249
250 * Handle EOF correctly in decoder
251
252
253 Version 1.0.1
254 =============
255
256 Released 2009-09-04
257
258 * Fixed broken `json_is_boolean()`
259
260
261 Version 1.0
262 ===========
263
264 Released 2009-08-25
265
266 * Initial release