The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
Revision history for BSON

v1.12.2   2020-08-13 10:56:21-04:00 America/New_York

  [!!! END OF LIFE NOTICE !!!]

  - As of August 13, 2020, the BSON library has reached end of life
    and is no longer supported by MongoDB.

v1.12.1   2019-08-13 08:17:13-04:00 America/New_York

  [!!! END OF LIFE NOTICE !!!]

    - Version v1.12.0 is the final feature release of the MongoDB BSON
      library.  The library is now in a 12-month "sunset" period and will
      receive security patches and critical bug fixes only.  The BSON
      library will be end-of-life and unsupported on August 13, 2020.

v1.12.0   2019-07-12 12:06:36-04:00 America/New_York

    [Added]

    - Added BSON::Array as a wrapper for edge cases in the MongoDB driver
      where an array reference could be misinterpreted as a top-level document
      container.

v1.10.2   2018-12-07 12:26:15-05:00 America/New_York

    [Bugs fixed]

    - PERL-1045 Fixed module name typo in fork-protection code.

v1.10.1   2018-11-30 00:33:12-05:00 America/New_York

    [Bugs fixed]

    - PERL-1043 Max depth limits miscounted BSON::Raw, triggering
      exceptions when there shouldn't be one.

v1.10.0   2018-11-29 11:10:19-05:00 America/New_York

    [Bugs fixed]

    - PERL-1009 BSON 1.8.1 fails on bleadperl with -Duselongdouble

    [Changed]

    - PERL-606 Improve BSON error messages

    - PERL-1010 BSON::Raw add get_first_key method

    - PERL-740 Limit BSON encoding/decoding to max depth limits

    - PERL-975 Implement ObjectID spec

    [Testing]

    - PERL-737 Test encoding of dual vars and PVMG types

v1.8.1    2018-10-01 16:28:47-04:00 America/New_York

    [Bugs fixed]

    - PERL-1000 Fixed ExtJSON conversions on 32-bit perls

v1.8.0    2018-09-12 20:57:40-04:00 America/New_York

    [*** Deprecations ***]

    - Deprecated the 'inflate_extjson' method in favor of the new
      'extjson_to_perl' method.

    [Added]

    - PERL-747 Added support for Extended JSON v2

    [Testing]

    - PERL-738 Added regression tests for Perl->BSON edge cases

v1.6.7    2018-07-10 09:58:56-04:00 America/New_York

    [Testing]

    - PERL-954 Prevent deprecation warnings from use of deprecated MongoDB
      v2.0.0 classes in test code.

    - PERL-957 Remove tests for MongoDB::BSON::_EncodedDoc (legacy type)

v1.6.6    2018-06-23 13:36:09-04:00 America/New_York

    [Bugs fixed]

    - PERL-943 Better handling of BSON::Timestamp comparison to undef

v1.6.5    2018-06-19 16:19:26-06:00 America/Denver

    [Bugs fixed]

    - PERL-941 Fix BSON::Time epoch conversion on perl w/o 64-bit ints

v1.6.4    2018-06-13 10:01:32-04:00 America/New_York

    [Documentation]

    - Clarified BSON type mapping table and BSON::Time SYNOPSIS

v1.6.3    2018-05-25 13:53:32-04:00 America/New_York

    [Bugs]

    - PERL-911 Implement 'bool' overloading for BSON::String to avoid
      the fallback implementation relying on numification and giving
      warnings.

v1.6.2    2018-05-24 12:43:06-04:00 America/New_York

    [Bugs]

    - [PERL-641] Fix back-compatible BSON::Timestamp constructor
      so that MongoDB::Timestamp can be an empty subclass of it.

v1.6.1    2018-05-17 13:41:11-04:00 America/New_York

    [Bugs]

    - [PERL-893] Fix 'prefer_numeric' handling of dual-vars to apply
      the heuristic only when no numeric form already exists.

    - [PERL-896] The 'epoch' method on BSON::Time was truncating to
      integers; it's now a floating point value as documented.

    - [PERL-896] Fixed PID generation within OIDs

v1.6.0    2018-05-15 09:41:21-04:00 America/New_York

    [Bugs]

    - [PERL-739] Validate Uint32 range on BSON::Timestamp components

    [New Feature]

    - [PERL-593] Add comparison overloading to BSON::OID

    - [PERL-688] Add create_oid class method 

    - [PERL-868] Add comparison overloading to BSON::Timestamp 

v1.4.0    2017-03-16 18:00:04-04:00 America/New_York

    [!!! Incompatible Changes !!!]

    - Minimum Perl version bumped up to v5.10.1 for byte-order modifiers
      for pack and unpack.

    [Bugs]

    - [PERL-694] - Tests fail on x86 (32-bit) without use64bitint perl

    [New Feature]

    - [PERL-751] - Support big-endian architectures

v1.2.2    2016-10-27 17:51:52-04:00 America/New_York

    [Changed]

    - Removed Module::Runtime prerequisite and improved error messages
      when no backends were loaded.

    [Testing]

    - Add testing for BSON::Regex flag ordering

v1.2.1    2016-10-24 20:56:51-04:00 America/New_York

    [Fixed]

    - Detects (and throws error) during encoding for non-container types

    - Fix BSON::Time for 32-bit Perls

    [Changed]

    - Switch to BSON::XS for optimized OID generation if available

    - Always stringify plain scalars as a last resort in encoding

    [Testing]

    - Add test module to reset environment and hide XS

v1.2.0    2016-08-17 15:51:50-04:00 America/New_York

    [Added]

    - Added dt_type support for Mango::BSON::Time

    - Added 'from_epoch' constructor method to BSON::OID

    [Documentation]

    - Credited Sebastian Riedel for inspiration regarding helper functions

    - Hash::Ordered is not yet supported

v1.0.0    2016-07-06 12:39:38-04:00 America/New_York

    [!!! Incompatible Changes !!!]

    - Internal representation of BSON::Bool changed to make it a subclass
      of boolean.pm for conistency with other "boolean" type classes on
      CPAN.

    - All BSON type wrapper classes are now immutable; accessors have
      been changed to read-only.

    [*** Deprecations ***]

    - BSON::Binary deprecated in favor of the new BSON::Bytes module.

    - BSON::Bool deprecated in favor of direct use of boolean.pm.

    - BSON::ObjectID deprecated in favor of the new BSON::OID module.

    - The 'ixhash' option is deprecated in favor of 'ordered' and the
      resulting tied object is no longer guaranteed to be Tie::IxHash.
      This will allow future optimization, as Tie::IxHash is extremely
      slow.

    [API]

    - BSON module is now object-oriented, with an API and options directly
      compatible with the MongoDB driver.  Options set as constructor
      attributes apply to all encoding/decoding, unless options given to methods
      override them.

    - Added a method for inflation of MongoDB's extended JSON format to
      BSON type wrapper objects.

    [BSON types]

    - Added new type wrappers to cover all BSON Types, including
      forthcoming Decimal128 (but Decimal128 is still considered
      'experimental' and subject to change).

    - Rationalized/harmonized BSON type classes for compatibility with
      pre-existing MongoDB BSON classes. Classes that could not be made to
      interoperate are deprecated as listed above.

    [Bug fixes]

    - Fixed numerous encoding and decoding bugs revealed by greater test
      coverage (e.g. fixes to UTF-8 encoding/decoding).

    [Testing]

    - Significantly improved test coverage, including tests using a
      standardized BSON corpus.

    - Skip threads tests before 5.8.5 because of problems with
      weak references during global destruction.

    - Require newer Path::Tiny with full-featured "basename" method.

    [Prereqs]

    - Bump boolean prereq to 0.45 to avoid conflicts between some versions
      of JSON::XS and older boolean.pm releases that had read-only
      singletons.

    - Bump Moo prereq to 2.002004 to work around core sub shadowing
      bug in generated constructor.

    [~Internal Changes~]

    - Pure-perl implementation split into a separate module to avoid
      its load time in the future when an XS implementation becomes
      available.

    - Will prefer BSON::XS (when released) or fallback to BSON::PP;
      PERL_BSON_BACKEND environment variable will override.

v0.999.5  2016-06-29 11:31:51-04:00 America/New_York (TRIAL RELEASE)

v0.999.4  2016-06-27 23:19:56-04:00 America/New_York (TRIAL RELEASE)

v0.999.3  2016-06-23 00:44:37-04:00 America/New_York (TRIAL RELEASE)

v0.999.2  2016-06-13 16:02:54-04:00 America/New_York (TRIAL RELEASE)

v0.999.1  2016-06-08 16:03:23-04:00 America/New_York (TRIAL RELEASE)

v0.999.0  2016-06-01 18:27:43-04:00 America/New_York (TRIAL RELEASE)

0.16      2015-09-25 10:54:41-04:00 America/New_York

    [CHANGES]

    - Improved diagnostic output if integers are too big

    [BUG FIXES]

    - Improved OID counter thread-safety

    - Fix tests for perls with long doubles

    [OPTIMIZATION]

    - BSON::ObjectId generation now ~ 1.9x faster

0.13      2015-04-07 12:02:29-04:00 America/New_York (TRIAL RELEASE)

    [BUG FIXES]

    - Fix t/10-bson.t bug comparing floating point values; now using
      Test::Number::Delta for comparison

0.12      2015-04-06 16:11:59-04:00 America/New_York

    [BUG FIXES]

    - added decoding support for BSON type 0x06 (Javascript "undefined");
      treated like type 0x0A (null value) and decoded as Perl undef

    [OPTIMIZATION]

    - Inlined most functions for 10-20% performance increase measured
      on a sample of Twitter tweets.

    [META]

    - Switched repository to Dist::Zilla structure using @DAGOLDEN plugin
      bundle and associated file layout

0.11    2011-12-14
        use Math::Int64 to address the 32-bit only Perl support

0.06    2011-09-26
        Lower the required Perl version to 5.8

0.04    2011-08-04 17:30 PST
        Add BSON::String type

0.03    2011-08-02 14:00:00 PST
        Fix regex parsing for Perl<5.14
        Fix thread dependency in oid.t

0.02    2011-07-25 19:10:00 PST
        Fix spelling errors

0.01    2011-07-22 16:45:00 PST
        First version, released.