Skip to content

Latest commit

 

History

History
627 lines (343 loc) · 16.5 KB

CHANGES.rst

File metadata and controls

627 lines (343 loc) · 16.5 KB

Changes

1.17 (2024-05-18)

1.16 (2024-02-28)

  • Produce Python 3.8 wheels again, I deactivated it too eagerly, it's in security fixes only mode, not yet reached its end-of-life state

1.15 (2024-02-28)

1.14 (2023-12-14)

  • Produce binary wheels for macOS/arm64, thanks to timothyjlaurent (PR #195__)

    __ #170

1.13 (2023-10-29)

  • Fix handling of write_mode in dump functions (problem emerged discussing issue #191__)

    __ #191

1.12 (2023-10-07)

1.11 (2023-09-11)

1.10 (2023-03-15)

1.9 (2022-10-17)

1.8 (2022-07-07)

1.7 (2022-07-06)

1.6 (2022-02-19)

  • Fix memory leak when using end_array (issue #160__)

    __ #160

1.5 (2021-10-16)

  • Fix serialization bug when using DM_UNIX_TIME in a non-C locale context

1.4 (2021-06-25)

  • Build binary wheel for aarch64, thanks to odidev (PR #156__)

    __ #156

1.3 (2021-06-25)

  • Yet another attempt to fix automatic wheels upload

1.2 (2021-06-25)

  • Fix automatic wheels upload from GH Actions to PyPI

1.1 (2021-06-25)

  • Reduce decoder memory consumption by uniquifiying keys in the loaded dictionaries
  • Implement an alternative way of transmogrify JSON objects, similar to json's object_pairs_hook load option (issue #154__)

    __ #154

1.0 (2020-12-13)

  • Require Python 3.6 or greater
  • New serialization options, iterable_mode and mapping_mode, to give some control on how generic iterables and mappings get encoded (fix issue #149__ and issue #150__)

    __ #149 __ #150

  • Internal refactorings, folding "skipkeys" and "sort_keys" arguments into the mapping_mode options, respectively as MM_SKIP_NON_STRING_KEYS and MM_SORT_KEYS: "old" arguments kept for backward compatibility
  • Bump major version to 1, tag as "production/stable" and switch to a simpler X.Y versioning schema

0.9.4 (2020-11-16)

  • Fix memory leak loading an invalid JSON (issue #148__)

    __ #148

0.9.3 (2020-10-24)

  • Fix access to Encoder instance attributes (issue #147__)

    __ #147

0.9.2 (2020-10-24)

  • Use current master__ version of rapidjson

    __ https://github.com/Tencent/rapidjson/commit/0ccdbf364c577803e2a751f5aededce935314313

  • Enable GH Actions-based test workflow, thanks to Martin Thoma (PR #143__)

    __ #143

  • Produce Python 3.9 wheels, disable testing under Python < 3.6
  • Make the character used for indentation in pretty mode a parameter (issue #135__)

    __ #135

  • Handle wider precision range in timestamps fractional seconds (PR 133__), thanks to Karl Seguin

    __ #133

  • Add comparison benchmarks against orjson and hyperjson (issue #130__ and PR #131__, thanks to Sebastian Pipping)

    __ #130 __ #131

0.9.1 (2019-11-13)

  • Fix memory leak in case of failed validation (issue #126__)

    __ #126

0.9.0 (2019-11-13)

  • Produce Python 3.8 wheels
  • Compatibility fix for Python 3.8 (issue #125__)

    __ #125

  • New dump option write_mode, supporting RapidJSON's kFormatSingleLineArray option (issue #123__), thanks to Nguyễn Hồng Quân for the initial implementation (PR #124__)

    __ #123 __ #124

0.8.0 (2019-08-09)

  • New serialization option bytes_mode to control how bytes instances get encoded (issue #122__)

    __ #122

0.7.2 (2019-06-09)

  • Hopefully fix the memory leak when loading from a stream (issue #117__)

    __ #117

0.7.1 (2019-05-11)

  • Raise a more specific exception on loading errors, JSONDecodeError, instead of generic ValueError (issue #118__)

    __ #118

  • Fix optimization path when using OrderedDicts (issue #119__)

    __ #119

  • Fix serialization of IntEnums (issue #121__)

    __ #121

  • I spent quite a lot of time investigating on the memory leak when loading from a stream (issue #117__): as I was not able to fully replicate the problem, I cannot be sure I solved the problem... sorry!

    __ #117

0.7.0 (2019-02-11)

0.6.3 (2018-07-11)

  • No visible changes, but now PyPI carries binary wheels for Python 3.7.

0.6.2 (2018-06-08)

  • Use a more specific ValidationError, to differentiate from invalid JSON

0.6.1 (2018-06-06)

  • Nothing new, attempt to build Python 3.6 binary wheels on Travis CI

0.6.0 (2018-06-06)

  • Add a new comparison table involving ensure_ascii (issue #98__)

    __ #98

  • Use Python's repr() to emit float values instead of rapidjson's dtoa() (issue #101__)

    __ #101

  • Use a newer (although unreleased) version of rapidjson to fix an issue__ with JSONSchema validation (PR #103__), thanks to Anthony Miyaguchi

    __ Tencent/rapidjson#825 __ #103

0.5.2 (2018-03-31)

  • Tiny tweak to restore macOS build on Travis CI

0.5.1 (2018-03-31)

  • Minor tweaks to CI and PyPI deploy configuration

0.5.0 (2018-03-31)

  • New RawJSON class, allowing inclusion of pre-serialized content (PR #95__ and PR #96__), thanks to Silvio Tomatis

    __ #95 __ #96

0.4.3 (2018-01-14)

  • Deserialize from bytes and bytearray instances, ensuring they contain valid UTF-8 data
  • Speed up parsing of floating point numbers, avoiding intermediary conversion to a Python string (PR #94__)

    __ #94

0.4.2 (2018-01-09)

  • Fix precision handling of DM_UNIX_TIME timestamps

0.4.1 (2018-01-08)

  • Fix memory leaks in Decoder() and Encoder() classes, related to bad handling of PyObject_GetAttr() result value
  • Fix compatibility with Python 3.7a

0.4.0 (2018-01-05)

0.3.2 (2017-12-21)

  • Reduce compiler warnings (issue #87__)

    __ #87

0.3.1 (2017-12-20)

  • Fix Travis CI recipe to accomodate MacOS

0.3.0 (2017-12-20)

  • Fix compilation on MacOS (issue #78__)

    __ #78

  • Handle generic iterables (PR #89__)

    __ #89

    Backward incompatibility: the dumps() function and the Encoder() constructor used to accept a max_recursion_depth argument, to control the maximum allowed nesting of Python structures; since the underlying function is now effectively recursive, it has been replaced by the generic sys.setrecursionlimit()__ mechanism

    __ https://docs.python.org/3.6/library/sys.html#sys.setrecursionlimit

0.2.7 (2017-12-08)

  • Restore compatibility with Python < 3.6

0.2.6 (2017-12-08)

  • Fix memory leaks when using object_hook/start_object/end_object

0.2.5 (2017-09-30)

  • Fix bug where error handling code could raise an exception causing a confusing exception to be returned (PR #82__)

    __ #82

  • Fix bug where loads's object_hook and dumps's default arguments could not be passed None explicitly (PR #83__)

    __ #83

  • Fix crash when dealing with surrogate pairs (issue #81__)

    __ #81

0.2.4 (2017-09-17)

  • Fix compatibility with MacOS/clang

0.2.3 (2017-08-24)

  • Limit the precision of DM_UNIX_TIME timestamps to six decimal digits

0.2.2 (2017-08-24)

  • Nothing new, attempt to fix production of Python 3.6 binary wheels

0.2.1 (2017-08-24)

  • Nothing new, attempt to fix production of Python 3.6 binary wheels

0.2.0 (2017-08-24)

  • New parse_mode option, implementing relaxed JSON syntax (issue #73__)

    __ #73

  • New Encoder and Decoder, implementing a class-based interface
  • New Validator, exposing the underlying JSON schema validation (issue #71__)

    __ #71

0.1.0 (2017-08-16)

  • Remove beta status

0.1.0b4 (2017-08-14)

  • Make execution of the test suite on Appveyor actually happen

0.1.0b3 (2017-08-12)

  • Exclude CI configurations from the source distribution

0.1.0b2 (2017-08-12)

  • Fix Powershell wheel upload script in appveyor configuration

0.1.0b1 (2017-08-12)

  • Compilable with somewhat old g++ (issue #69__)

    __ #69

  • Backward incompatibilities:
    • all DATETIME_MODE_XXX constants have been shortened to DM_XXX DATETIME_MODE_ISO8601_UTC has been renamed to DM_SHIFT_TO_UTC
    • all UUID_MODE_XXX constants have been shortened to UM_XXX
  • New option DM_UNIX_TIME to serialize date, datetime and time values as UNIX timestamps__ targeting issue #61__

    __ https://en.wikipedia.org/wiki/Unix_time __ #61

  • New option DM_NAIVE_IS_UTC to treat naïve datetime and time values as if they were in the UTC timezone (also for issue #61)
  • New keyword argument number_mode to use underlying C library numbers
  • Binary wheels for GNU/Linux and Windows on PyPI (one would hope: this is the reason for the beta1 release)

0.0.11 (2017-03-05)

  • Fix a couple of refcount handling glitches, hopefully targeting issue #48__.

    __ #48

0.0.10 (2017-03-02)

  • Fix source distribution to contain all required stuff (PR #64__)

    __ #64

0.0.9 (2017-03-02)

  • CI testing on GitHub
  • Allow using locally installed RapidJSON library (issue #60__)

    __ #60

  • Bug fixes (issue #37__, issue #51__, issue #57__)

    __ #37 __ #51 __ #57

0.0.8 (2016-12-09)

  • Use unpatched RapidJSON 1.1 (PR #46__)

    __ #46

  • Handle serialization and deserialization of datetime, date and time instances (PR #35__) and of UUID instances (PR #40__)

    __ #35 __ #40

  • Sphinx based documentation (PR #44__)

    __ #44

  • Refresh benchmarks (PR #45__)

    __ #45

  • Bug fixes (issue #25__, issue #38__, PR #43__)

    __ #25 __ #38 __ #43