1Libbson-1.8.1
2=============
3
4It is my pleasure to announce libbson-1.8.1. This release removes a syntax
5error in the configure script that affects some shells, and fixes the encoding
6of this NEWS file.
7
8Thanks to everyone who contributed to the development of this release.
9
10  * A. Jesse Jiryu Davis
11  * Jeremy Mikola
12
13Peace,
14
15    A. Jesse Jiryu Davis
16
17
18Libbson-1.8.0
19=============
20
21It is my pleasure to announce Libbson-1.8.0.
22
23New features and bugfixes:
24
25  * Make symbols bson_get_major_version, bson_get_minor_version,
26    bson_get_micro_version, bson_get_version, and bson_check_version available
27    to C++ programs.
28  * New CMake option ENABLE_MAINTAINER_FLAGS.
29  * Crash iterating over invalid code with scope.
30
31Thanks to everyone who contributed to the development of this release.
32
33  * A. Jesse Jiryu Davis
34  * Hannes Magnusson
35  * Jeremy Mikola
36  * Kevin Albertson
37  * Michael Kuhn
38
39Peace,
40
41    A. Jesse Jiryu Davis
42
43
44Libbson-1.7.0
45=============
46
47  * Changes to JSON encoding and decoding:
48    * New functions bson_as_canonical_extended_json and
49      bson_as_relaxed_extended_json convert BSON to canonical and relaxed
50      extended JSON according to MongoDB Extended JSON Spec.
51      Output for the existing bson_as_json function has not been changed.
52    * When parsing JSON type wrappers like "$timestamp", any missing or extra
53      keys are an error.
54    * The JSON format for BSON regular expressions is now "$regularExpression":
55      {"pattern": "...", "options": "..."}. The old format {"$regex": "...",
56      "$options": "..."} is still parsed.
57    * The JSON format for BSON binary elements is now "$binary": {"base64":
58      "...", "subType": "..."}. The old format {"$binary": "...", "$type":
59      "..."} is still parsed.
60    * BSON dates can be parsed from "$date" as an ISO8601 date or "$numberLong"
61      as milliseconds since the epoch: "t": {"$date": {"$numberLong": "1234"}}.
62      Dates can no longer be formatted as raw integers. bson_as_json writes a
63      BSON date after 1970 as "$date" with an ISO8601 string, and dates before
64      1970 as negative milliseconds wrapped in "$numberLong".
65      bson_as_canonical_extended_json always writes dates with "$numberLong".
66      bson_as_relaxed_extended_json always writes dates with "$date".
67    * The non-numbers NaN, Infinity, and -Infinity are now recognized (regardless
68      of case) when parsing JSON.
69  * CMake build now installs .pc files for programs that link to libbson using
70    pkg-config. Both the CMake and Autotools build systems now install .cmake
71    files for programs that link to libbson using CMake. Linking to libbson
72    statically or dynamically is now much more convenient.
73  * New CMake option, "ENABLE_STATIC", defaults to ON.
74  * Minimum required CMake version has been increased to 3.1.
75  * CMake remains experimental on non-Windows platforms and issues a warning now
76  * New functions
77    * bson_strcasecmp, a portable equivalent of strcasecmp.
78    * bson_iter_as_double, cast the current value to double.
79    * bson_iter_init_from_data, creates an iterator from BSON string.
80    * bson_validate_with_error, checks a document like bson_validate does but
81      also reports which key was invalid
82  * New convenience macros
83    * BSON_ITER_HOLDS_INT, checks if iterator holds int32 or int64
84    * BSON_ITER_HOLDS_NUMBER, checks if iterator holds int32, int64 or double
85  * Raised BSON recursion limit to 200
86
87
88Libbson-1.6.0
89=============
90
91It is my pleasure to announce libbson-1.6.0.
92
93New features and bug fixes:
94
95  * Use jsonsl instead of libyajl as our JSON parsing library, parse JSON more
96    strictly, fix minor parsing bugs.
97  * Extended JSON documents like '{"$code": "...", "$scope": {}}' are now parsed
98    into BSON "code" elements.
99  * ISO8601 dates now allow years from 0000 to 9999 inclusive. Before, years
100    before 1970 were prohibited.
101  * BSON floats and ints are now distinguished in JSON output.
102  * The library is now built and continuously tested with MinGW-W64 on Windows.
103  * The documentation is ported from Mallard XML to ReStructured Text, the
104    HTML documentation is restyled, and numerous man page syntax errors fixed.
105  * All public functions now have the __cdecl calling convention on Windows.
106
107Thanks to everyone who contributed to the development of this release.
108
109  * A. Jesse Jiryu Davis
110  * Hannes Magnusson
111  * Aleksander Melnikov
112  * Remi Collet
113
114Peace,
115
116    A. Jesse Jiryu Davis
117
118
119libbson-1.5.5
120=============
121
122No change since 1.5.4; released to keep pace with libmongoc's version.
123
124-- A. Jesse Jiryu Davis
125
126
127Libbson-1.5.4
128=============
129
130No change since 1.5.3; released to keep pace with libmongoc's version.
131
132-- A. Jesse Jiryu Davis
133
134
135Libbson-1.5.3
136=============
137
138No change since 1.5.2; released to keep pace with libmongoc's version.
139
140-- A. Jesse Jiryu Davis
141
142
143Libbson-1.5.2
144=============
145
146This is a patch release that fixes a build error with MinGW on Windows.
147
148
149Libbson-1.5.1
150=============
151
152No change since 1.5.0; released to keep pace with libmongoc's version.
153
154-- A. Jesse Jiryu Davis
155
156
157Libbson-1.5.2
158=============
159
160It is my pleasure to announce Libbson-1.5.2.
161
162New bug fixes:
163
164  * CDRIVER-1982 fix ifdef for strerror_s with mingw.
165
166Thanks to everyone who contributed to the development of this release.
167
168  * A. Jesse Jiryu Davis
169
170Peace,
171
172    Hannes Magnusson
173
174
175Libbson-1.5.1
176=============
177
178No change since 1.5.0; released to keep pace with libmongoc's version.
179
180-- A. Jesse Jiryu Davis
181
182
183Libbson-1.5.0
184=============
185
186It is my pleasure to announce Libbson-1.5.0.
187
188New features and bug fixes:
189
190  * New BSON Type, Decimal128 (bson_decimal128_t) along with the following
191    new functions and helpers:
192    * bson_decimal128_to_string()
193    * bson_decimal128_from_string()
194    * bson_iter_decimal128()
195    * bson_iter_overwrite_decimal128()
196    * BSON_ITER_HOLDS_DECIMAL128()
197    * bson_append_decimal128()
198    * BSON_APPEND_DECIMAL128()
199    * BCON_DECIMAL128()
200    See the documentations for further details.
201  * bson_validate and bson_iter_next now validate that BSON boolean values are
202    0 or 1. Before, any non-zero value was considered true.
203  * bson_append_code_with_scope now preserves the "code with scope" type
204    if scope is an empty, non-NULL BSON document.
205  * BSON "code" and "code with scope" types are properly translated to and from
206    JSON of the form '{"$code": "...", "$scope": {...}}'.
207  * bson_json_reader functions now always validate UTF-8.
208  * JSON parsing now preserves integer width.
209  * bson_strtoll now matches stroll: it detects range errors, and when
210    parsing octal it stops at non-octal digits and returns what it parsed
211    instead of setting errno.
212  * New flag BSON_VALIDATE_EMPTY_KEYS causes bson_validate to fail if a document
213    contains zero-length field names.
214  * The configure option "--enable-hardening" had had no effect. It is removed
215    in favor of system-wide compiler configuration.
216
217Thanks to everyone who contributed to the development of this release.
218
219  * Hannes Magnusson
220  * A. Jesse Jiryu Davis
221  * Fiona Rowan
222  * Brian Samek
223
224Peace,
225
226    A. Jesse Jiryu Davis
227
228
229Libbson-1.4.1
230=============
231
232This release improves the HTML documentation's Makefile.
233
234-- A. Jesse Jiryu Davis
235
236
237Libbson-1.4.0
238=============
239
240It is my pleasure to announce Libbson-1.4.0.
241
242New features and bug fixes:
243
244  * bson_reader_reset seeks to the beginning of a BSON buffer.
245  * bson_steal efficiently transfers contents from one bson_t to another.
246  * Fix Windows compile error with BSON_EXTRA_ALIGN disabled.
247  * Potential buffer overrun in bson_strndup.
248  * bson_oid_to_string optimization for MS Visual Studio
249  * bson_oid_is_valid accepts uppercase hex characters.
250  * bson_json_reader_read aborted on some invalid Extended JSON documents.
251  * All man page names now begin with "bson_" to avoid install conflicts.
252  * Error messages sometimes truncated at 63 chars.
253
254This release tentatively supports the new BSON decimal type when built with
255"./configure --enable-experimental-features", or with
256"cmake -DENABLE_EXPERIMENTAL_FEATURES=ON", but this feature may change
257between now and libbson 1.5.
258
259Thanks to everyone who contributed to the development of this release.
260
261  * A. Jesse Jiryu Davis
262  * Hannes Magnusson
263  * Jeremy Mikola
264  * David Hatch
265  * Ian Boros
266  * Fiona Rowan
267  * Shane Harvey
268  * Runar Buvik
269  * Raymond Jacobson
270  * ReadmeCritic
271  * Mike Lloyd
272  * Derick Rethans
273  * Maverick Chan
274
275Peace,
276
277    A. Jesse Jiryu Davis
278
279Libbson-1.3.5
280=============
281
282No change since 1.3.4; released to keep pace with libmongoc's version.
283
284-- A. Jesse Jiryu Davis
285
286
287Libbson-1.3.4
288=============
289
290No change since 1.3.3; released to keep pace with libmongoc's version.
291
292-- A. Jesse Jiryu Davis
293
294
295Libbson-1.3.3
296=============
297
298No change since 1.3.2; released to keep pace with libmongoc's version.
299
300-- A. Jesse Jiryu Davis
301
302
303Libbson-1.3.2
304=============
305
306This is a patch release with a fix for the build system:
307
308  * man pages couldn't be built from a distribution tarball.
309
310Peace,
311
312  A. Jesse Jiryu Davis
313
314
315Libbson-1.3.1
316=============
317
318It is my pleasure to announce Libbson-1.3.1. This is a bugfix release:
319
320  * bson_strnlen is off by one on Windows.
321  * BSON_HAVE_STRNLEN config check used incorrectly.
322  * Incompatibility with older CMake versions.
323  * Wrong-sized allocation in bson_json_reader_new.
324
325Thanks to everyone who contributed to the development of this release.
326
327  * A. Jesse Jiryu Davis
328  * Alex Bishop
329  * Jeroen Ooms
330
331Peace,
332
333  A. Jesse Jiryu Davis
334
335
336Libbson-1.3.0
337=============
338
339It is my pleasure to announce to you the release of Libbson-1.3.0. Since the
340release candidate 1.3.0-rc0, the only changes have been fixes for compiler
341warnings and errors on various platforms.
342
343All changes since the previous stable release, 1.2.1:
344
345  * Fix potential crash in bson_strncpy on Windows.
346  * Parse DBRefs correctly from JSON.
347  * CMake option to disable building tests: "cmake -DENABLE_TESTS:BOOL=OFF".
348  * Refactor the build system to declare library version in one place.
349  * Fix compiler warnings and errors, especially with Visual Studio 2015
350    and IBM XL C.
351  * Combine environment's CFLAGS with configure options when building.
352
353Thanks to everyone who contributed to the development of this release.
354
355  * A. Jesse Jiryu Davis
356  * Hannes Magnusson
357  * Mark Benvenuto
358  * Petr Písař
359  * xpol
360  * Jose Sebastian Battig
361  * Jeroen Ooms
362
363Peace,
364
365  A. Jesse Jiryu Davis
366
367
368Libbson-1.3.0-rc0
369=================
370
371It is my pleasure to announce to you first release candidate of Libbson-1.3.0.
372
373Changes since 1.3.0-beta0:
374
375  * Parse DBRefs correctly from JSON.
376  * CMake option to disable building tests: "cmake -DENABLE_TESTS:BOOL=OFF".
377  * Fix build warnings on some platforms, and refactor the build system.
378
379Thanks to everyone who contributed to the development of this release.
380
381  * A. Jesse Jiryu Davis
382  * Hannes Magnusson
383  * Jose Sebastian Battig
384
385Peace,
386
387  A. Jesse Jiryu Davis
388
389
390Libbson-1.3.0-beta0
391===================
392
393It is my pleasure to announce to you the beta release of Libbson-1.3.0.
394
395Changes since the previous stable release, 1.2.1:
396
397  * Fix potential crash in bson_strncpy on Windows.
398  * Fix compiler warnings and errors, especially with Visual Studio 2015
399    and IBM XL C.
400  * Combine environment's CFLAGS with configure options when building.
401
402Thanks to everyone who contributed to the development of this release.
403
404  * Hannes Magnusson
405  * A. Jesse Jiryu Davis
406  * Jeroen Ooms
407  * Petr Písař
408  * xpol
409
410Peace,
411
412  A. Jesse Jiryu Davis
413
414
415Libbson-1.2.1
416=============
417
418It is my pleasure to announce to you the release of Libbson-1.2.1.
419
420Changes since the previous stable release, 1.2.0 are solely in the content
421and format of documentation.
422
423Peace,
424
425  A. Jesse Jiryu Davis
426
427
428Libbson-1.2.0
429=============
430
431It is my pleasure to announce to you the release of Libbson-1.2.0.
432
433Changes since the previous stable release, 1.1.11:
434
435  * Add bson_mem_restore_vtable(), the inverse of bson_mem_set_vtable().
436  * Enable runtime asserts in release build.
437  * Fixed compiler warnings and build failures on various platforms.
438  * Improvements to the formatting and contents of the documentation.
439
440Thanks to everyone who contributed to the development of this release.
441
442  * A. Jesse Jiryu Davis
443  * Hannes Magnusson
444  * Jason Carey
445  * Kyle Suarez
446  * Derick Rethans
447  * David Hatch
448
449Peace,
450
451  A. Jesse Jiryu Davis
452
453
454Libbson 1.2.0-rc0
455==================
456
457It is my pleasure to announce to you the release candidate of Libbson-1.2.0.
458
459Changes:
460
461  * Merge changes from 1.1.11.
462  * Enable runtime asserts in release build.
463
464Thanks to everyone who contributed to the development of this release candidate.
465
466  * A. Jesse Jiryu Davis
467  * Hannes Magnusson
468  * Kyle Suarez
469  * Jason Carey
470
471-- A. Jesse Jiryu Davis
472
473
474Libbson 1.2.0-beta
475==================
476
477It is my pleasure to announce to you the beta of Libbson-1.2.0.
478
479This release adds the bson_mem_restore_vtable() function to undo the effect
480of bson_mem_set_vtable().
481
482Thanks to everyone who contributed to the development of this beta.
483
484 * Jason Carey
485 * Hannes Magnusson
486
487
488Libbson-1.1.11
489==============
490
491It is my pleasure to announce to you the release of Libbson-1.1.11.
492
493This is a patch release with improvements to the documentation:
494
495  * Document bson streaming reads with an example,
496    bson-streaming-reader.c.
497  * Document callback function types bson_reader_destroy_func_t and
498    bson_reader_read_func_t.
499
500Thanks to Kyle Suarez for his contributions to this version of Libbson.
501
502-- A. Jesse Jiryu Davis
503
504
505Libbson-1.1.10
506==============
507
508No change since 1.1.9; released to keep pace with libmongoc's version.
509
510-- A. Jesse Jiryu Davis
511
512
513Libbson-1.1.9
514=============
515
516This is a patch release with a fix for the build system:
517
518 * "./configure --enable-coverage" works now.
519
520-- A. Jesse Jiryu Davis
521
522
523Libbson-1.1.8
524=============
525
526No change since 1.1.7; released to keep pace with libmongoc's version.
527
528-- A. Jesse Jiryu Davis
529
530
531Libbson-1.1.7
532=============
533
534It is my pleasure to announce to you the release of Libbson-1.1.7.
535
536This is a patch release with bug fixes:
537
538 * Unchecked error in bson_utf8_escape_for_json caused unbounded memory growth
539   and a crash.
540 * Nicer floating-point formatting in bson_as_json.
541 * Link error with CMake on Mac.
542
543Thanks to everyone who contributed to this version of Libbson.
544
545 * A. Jesse Jiryu Davis
546 * Jason Carey
547 * Jeroen Ooms
548 * Hannes Magnusson
549 * Hendrik Dahlkamp
550
551-- A. Jesse Jiryu Davis
552
553
554Libbson-1.1.6
555=============
556
557No change since 1.1.5; released to keep pace with libmongoc's version.
558
559-- A. Jesse Jiryu Davis
560
561
562Libbson 1.1.5
563=============
564
565It is my pleasure to announce to you the release of Libbson-1.1.5.
566
567This is a patch release with small bug fixes:
568
569 * Fix link error "missing __sync_add_and_fetch_4" in GCC on i386 -
570   the functions bson_atomic_int_add and bson_atomic_int64_add are now
571   compiled and exported if needed in i386 mode
572 * Fix version check for GCC 5 and future versions of Clang
573 * Fix warnings and errors building on various platforms
574
575With this release, Libbson abandons the convention that odd-numbered patch
576versions indicate unstable releases. We switch to simple semantic versioning:
5771.1.5 is a stable release with bug fixes since 1.1.4. During subsequent
578development the version will be "1.1.6-dev".
579
580Thanks to everyone who contributed to this version of Libbson.
581
582 * A. Jesse Jiryu Davis
583 * Christian Hergert
584 * Jason Carey
585 * Hannes Magnusson
586 * Paul Melnikow
587
588-- A. Jesse Jiryu Davis
589
590Libbson 1.1.4
591=============
592
593It is my pleasure to announce to you the release of Libbson-1.1.4.
594
595This release is a minor patch release with one bug fix for bson_iter_timeval
596
597Thanks to everyone who contributed to the development of this release candidate for
598Libbson.
599
600 * Jason Carey
601 * A. Jesse Jiryu Davis
602 * Vladimir Zidar
603
604-- Jason Carey
605
606Libbson 1.1.2
607=============
608
609It is my pleasure to announce to you the release of Libbson-1.1.2.
610
611This release is a minor patch release with one bug fix for mingw.
612
613* sscanf_s doesn't exist for mingw.
614
615-- Jason Carey
616
617Libbson 1.1.0
618=============
619
620It is my pleasure to announce to you the release of Libbson-1.1.0.
621
622This release is a stable release with some ABI additions and bugfixes.
623
624The below changes include the changes mentioned in the rc0.
625
626ABI/API changes include:
627 * RC0
628   * Deprecation of bson_copy_to_excluding
629   * Addition of bson_copy_to_excluding_noinit
630 * Removal of MIN, MAX and ABS macros in favor of BSON_MIN, BSON_MAX and
631   BSON_ABS.  Note this is a breaking source level change if you relied on
632   these from bson.h.  Also note that this is not a breaking ABI change.
633 * Addition of BSON_ERROR_BUFFER_SIZE macro
634
635Other changes include:
636 * RC0
637   * Addition of a versioned ABI for the libbson shared library
638   * fixed bson_get_monotonic_time fallback when a system monotonic clock can not
639     be found.  Formerly failed to compile with an incorrect call to
640     bson_gettimeofday
641   * Allow the "dbref" convention in bson_validate when BSON_VALIDATE_DOLLAR_KEYS
642     is present
643   * Support for ISO-8601 or $numberLong dates in bson <-> json parsing
644   * Quiet various compiler warnings
645
646Thanks to everyone who contributed to the development of this release candidate for
647Libbson.
648
649 * Adam Midvidy
650 * Christian Hergert
651 * Daniel Colchete
652 * Ivan Suvorov
653 * Hannes Magnusson
654 * Jason Carey
655 * Jérôme Lebel
656 * Samantha Ritter
657
658-- Jason Carey
659
660Libbson 1.1.0-rc0
661=================
662
663It is my pleasure to announce to you the release of Libbson-1.1.0-rc0.
664
665This release is a release candidate release with some ABI additions and bugfixes.
666
667ABI changes include:
668 * Deprecation of bson_copy_to_excluding
669 * Addition of bson_copy_to_excluding_noinit
670
671Other changes include:
672 * Addition of a versioned ABI for the libbson shared library
673 * fixed bson_get_monotonic_time fallback when a system monotonic clock can not
674   be found.  Formerly failed to compile with an incorrect call to
675   bson_gettimeofday
676 * Allow the "dbref" convention in bson_validate when BSON_VALIDATE_DOLLAR_KEYS
677   is present
678 * Support for ISO-8601 or $numberLong dates in bson <-> json parsing
679 * Quiet various compiler warnings
680
681Thanks to everyone who contributed to the development of this release candidate for
682Libbson.
683
684 * Adam Midvidy
685 * Christian Hergert
686 * Daniel Colchete
687 * Ivan Suvorov
688 * Jason Carey
689 * Jérôme Lebel
690
691-- Jason Carey
692
693Libbson 1.0.2
694=============
695
696It is my pleasure to announce to you the release of Libbson-1.0.2.
697
698This release is a minor point release with no ABI changes and mostly small
699bugfixes.
700
701Changes include:
702 * bson_init_from_json supports top level arrays
703 * fixes for bson_strerror_r
704 * fix for timeouts on OS X
705 * house cleaning for various integer types
706
707Thanks to everyone who contributed to the development of this point release for
708Libbson.
709
710 * Adam Midvidy
711 * Christian Hergert
712 * Jason Carey
713 * Jérôme Lebel
714 * Tyler Brock
715
716-- Jason Carey
717
718Libbson 1.0.0
719=============
720
721It is my very distinct pleasure to announce to you the release of
722Libbson-1.0.0!
723
724This is the culmination of just over a year of work and could not have been
725done without the help of our wonderful community.
726
727Thanks to everyone who contributed to the development of Libbson!
728
729 * Christian Hergert
730 * Jason Carey
731 * Jose Sebastian Battig
732 * Maxim Zakharov
733 * Jérôme Lebel
734 * Itay Neeman
735 * Mike Manilone
736 * Michael Kuhn
737 * Kyle Suarez
738 * Josh Blum
739 * Jason Choy
740 * mntmnt7@gmail.com
741 * Tyler Brock
742 * Stefan Kaes
743 * Paul Melnikow
744 * Matt Cotter
745 * Gary J. Murakami
746 * Toon Schoenmakers
747 * Máximo Cuadros
748 * Michael Whittaker
749 * Kota Yamaguchi
750 * Justin Case
751 * Jeff Yemin
752 * Ivan Suvorov
753 * Hannes Magnusson
754 * Eric Daniels
755 * Anil Kumar
756 * A. Jesse Jiryu Davis
757
758Happy Hacking!
759
760-- Christian Hergert
761
762
763Libbson 0.98.0
764==============
765
766One more step closer to a 1.0!
767
768This release has a few fixes as we near the finish line of a 1.0 release.
769We have bumped the version to 0.98.0 to sync up with MongoDB C driver, which
770is the primary consumer of this library.
771
772This release includes a new memory callback vtable to help in embedding
773situations that have their own custom allocator such as various language
774runtimes.
775
776A few compilation fixes for various C++ compilers have also been included.
777
778A special thanks to:
779
780 * Itay Neeman
781 * Michael Whittaker
782
783Happy Hacking!
784
785-- Christian
786
787
788Libbson 0.8.4
789=============
790
791Another incremental release with a couple of new functions and bugfixes.
792
793In this release you will find the following changes:
794
795 * Alignment fixes for Solaris Studio C compiler.
796 * RPM and Debian packaging helpers.
797 * bson_gettimeofday() has dropped the deprecated timezone field used
798   when calling posix gettimeofday(). This eases portability concerns.
799   It is technically an ABI break, but since the field was never set,
800   in reality it shouldn't be an issue.
801 * Multi-byte optimizations for bson_oid_to_string() have been disabled
802   on non-x86 based platforms. This should aid in architecture portability.
803 * The JSON parser can now support $numberLong.
804 * bson_ascii_strtoll() has been added, which is a portable strtoll()
805   implementation. This is primarily useful for Windows users and is
806   used by the JSON parser.
807 * A bug was fixed in bson_iter_find_descendent() where the wrong field
808   could be matched if it's prefix matched the query.
809 * bson_array_as_json() has been added to convert a bson_t as a top-level
810   array.
811
812Thanks to:
813 * Kyle Suarez
814 * Itay Neeman
815
816Happy Hacking!
817
818
819Libbson 0.8.2
820=============
821
822A bugfix release is here as a follow up to 0.8.0.
823
824In this release you will find the following changes:
825
826 * A fix for BCON when used from C++.
827 * Change bson_next_power_of_two() to accept size_t. This should not be
828   an ABI break since it is static inline.
829
830Happy Hacking!
831
832
833Libbson 0.8.0
834=============
835
836It's that time again, time for another Libbson release!
837
838This cycle includes much, much more documentation for your perusing. There is
839much more cross-referencing and structure for your navigation pleasure.
840
841We've improved support for Libbson on a few more exotic platforms. SPARC
842support is looking pretty good these days.
843
844You'll also find some new examples in this release to help you get started a
845bit faster. If there is something you'd like to see, just ask!
846
847There are a few ABI breaks this cycle, as we are well on the road to a 1.0 and
848would like things as clean as possible. I anticipate a few more during the next
849couple of cycles, but we will try to keep them to a minimum.  With that said,
850you *WILL* need to recompile your application against 0.8.0.
851
852Happy Hacking!
853
854
855Libbson 0.6.8
856=============
857
858Quickly following up on the 0.6.6 release is 0.6.8. This release contains
859a couple of bugfixes and more support for older architectures.
860
861On big-endian systems, bson_append_date_time() was not properly converting
862to little-endian. This is now fixed.
863
864We've added support for Sun Pro C Compiler on Solaris 10 and 11. This includes
865support for SPARC systems as well as x86_64. In particular, intrinsics were
866added for the Solaris/SPARC/SunProC combination. If you are running SunProC
867on a non-Solaris platform, a fallback path will be used which is slower than
868native support for atomics. Additionally, bson_gettimeofday() does not fully
869support timezones under SunProC as struct timezone is not defined.
870
871Libbson will now check for GLibc 2.19 to remove various warnings with both
872_GNU_SOURCE and _BSD_SOURCE defined.
873
874Happy Hacking!
875
876
877Libbson 0.6.6
878=============
879
880Another release for your hacking pleasure!
881
882First off, note that there are two ABI breaks as part of this release. We
883felt they were important as they will help us stablize towards a 1.0 release.
884It is recommended that you recompile against this version of libbson.
885
886Lots of small fixes went into this release to help get things building better
887on various platforms. Windows support should be improved and many warnings have
888been cleaned up.
889
890The signature of bson_realloc_func has changed to allow for context to be
891provided. This should help in situations where a pointer to the memory pool is
892required.
893
894bson_destroy_with_steal() has been added so that you can steal a buffer instead
895of freeing it when bson_destroy() is called.
896
897bson_new_from_buffer() has been added so that you can provide your own realloc
898function to manage the underlying buffer. This will be useful for bindings that
899want to integrate their memory manager for bson documents.
900
901bson_value_t is a new container type that can hold any bson type.
902
903I'd like to thank everyone who contributed to this release.
904
905    Gary Murakami
906    Jason Carey
907    Jose Sebastian Battig
908    Máximo Cuadros
909    Paul Melnikow
910    Stefan Kaes
911
912Happy hacking!
913
914Libbson 0.6.4
915=============
916
917This is just a followup release of libbson as we work towards stablizing for
918the new mongo-c-driver release. In fact, it only includes build work and a
919new macro, bson_clear().
920
921Happy hacking!
922
923
924Libbson 0.6.2
925=============
926
927A new Libbson release is already here as a follow up to the 0.6.0 release.
928
929This release includes a few build and installation fixes. In particular,
930
931 * Windows build fixes
932 * CMake build fixes
933 * C++ build fixes.
934
935The monotonic clock is now more accurately calculated on Windows as well.
936If you'd like to build on Windows, check out the section in README.md for
937information on how to do so.
938
939Happy hacking!
940
941
942Libbson 0.6.0
943=============
944
945Many changes have gone into this release!
946
947TL;DR
948
949 * C99 types (from C89).
950 * JSON parsing.
951 * Lots of Operating System support, including Windows.
952 * Parallel Test Suite.
953 * Revamped build system.
954 * A couple ABI breaks.
955
956First off, 0.6.0 has gone through a significant amount of build system cleanup.
957This should simplify using libbson as a submodule for those that wish to do so.
958For example, the mongo-c-driver now does this using autotools.
959
960Windows Vista and higher is now supported as a build target through the use of
961cmake. See README.md for the instructions. Other platforms should continue to
962use autotools.
963
964The test suite has been improved and more tests added. We now generate random
965seeds on every run to help catch more errors with additional fuzzing passes.
966By default, the test suite will run all tests in parallel with subprocesses.
967This should speed up execution of `make test' for contributors.
968
969bson_string_t went through an ABI break to support power-of-two growth.
970
971JSON parsing has been added through the bson_json_reader_t type. You can also
972now use bson_init_from_json() for a simplified interface.
973
974Types were revamped to appear to be using C99 types. If C99 types are
975available, they will be used. If not, they will be emulated. This means you
976can just go on using uint64_t and similar. We even use bool now.
977
978Many functions have been made portable to deal with inconsistencies with Win32.
979
980This release has been tested on the following operating systems:
981
982 * RedHat Enterprise 5, 6, and 7 beta.
983 * CentOS 6.5
984 * Ubuntu 12.04 LTS
985 * Fedora 20
986 * Windows 7
987 * FreeBSD 10
988 * DragonFly BSD
989 * Solaris 11
990 * SmartOS
991 * mingw64
992
993Thanks again and enjoy using libbson!
994
995Libbson 0.4.0
996=============
997
998This release includes a few bug fixes and copious documentation. Additionally,
999we improved our fuzz testing and found a couple issues in the process.  It is
1000suggested that everyone upgrade their installations to 0.4.0.
1001
1002We have been busy adding a lot of documentation that we hope you will like.
1003Many `man' pages have been added for various API endpoints and structures.  If
1004you use vim, remember that you can jump to the documentation with <shift>k
1005while on a symbol.
1006
1007Thanks and enjoy using libbson!
1008
1009Libbson 0.2.4
1010=============
1011
1012This release includes some more performance improvements and bug fixes.
1013
1014It contains an important fix for dealing with invalid string lengths that could
1015cause an integer overflow when checking to see if the string length fits within
1016the end of the buffer.
1017
1018There is preliminary support for Solaris on x86_64 and SPARC.
1019
1020Generating OIDs is now simpler with the use of bson_context_get_default(). This
1021function will return a thread-safe generic bson_context_t implementation.
1022Alternatively, you may pass NULL to bson_oid_init() for the context and the
1023default context is automatically used.
1024
1025The fuzz tests now use srand() with a 32-bit integer derived from /dev/urandom.
1026
1027Endianess conversions are now performed by __builtin_bswap*() functions when
1028available with the GCC compiler.
1029
1030Endianness conversions for the double type are now properly handled on
1031big-endian systems.
1032
1033bson_reinit() has been added to cleanup code that needs to destroy and then
1034initialize a bson_t.
1035
1036Validation of Code with Scope fields was absent from bson_validate(). This is
1037now supported.
1038
1039Libbson 0.2.2
1040=============
1041
1042This release includes a few performance improvements and bug fixes.
1043
1044The bson_t structure is more efficient when growing allocated buffers.
1045The use of memalign() was unnecessary for allocated bson_t structures
1046and has therefore been removed. Performance sensitive allocations now
1047use bson_malloc() instead of calloc() and initialize fields directly.
1048Stack alignment of bson_t is now enforced through compiler intrinsics.
1049
1050The unit tests can now support running inside of valgrind to check for
1051various memory leaks. Simply defing VALGRIND=valgrind when running
1052`make test`.
1053
1054Enjoy libbson-0.2.2!
1055
1056
1057Libbson 0.2.0
1058=============
1059
1060This is the initial release of Libbson. It has not yet reached API and ABI
1061maturity and is therefore subject to change without notice.  Developers are
1062encouraged to start using Libbson as we journey on the road to 1.0, where ABI
1063stability will be guaranteed.
1064
1065Libbson is Apache 2.0 licensed so that it can be embedded in a multitude of
1066scenarios. This means that we try hard to not rely on external libraries.
1067Therefore, Libbson contains useful routines to help in portability as well
1068as BSON support.
1069
1070Libbson is the basis of a new MongoDB C driver that will follow shortly.
1071
1072Please see the doc/ directory for documentation on how to use Libbson. We
1073would love for you to contribute to Libbson, whether that is code,
1074documentation or packaging.
1075