eve v0.9 Release Notes

Release Date: 2019-04-11 // about 5 years ago
  • ๐Ÿš€ Released on April 11, 2019.

    ๐Ÿ’ฅ Breaking changes

    - โฌ†๏ธ Werkzeug v0.15.1+ is required. You want to upgrade, otherwise your Eve
      environment is likely to break. For the full story, see `#1245`_ and
      `#1251`_.
    
    ๐Ÿ†• New
    ~~~
    - ๐Ÿ‘ HATEOAS support added to aggregation results (`#1208`_)
    - ``on_fetched_diffs`` event hooks (`#1224`_)
    - ๐Ÿ‘Œ Support for Mongo 3.6+ ``$expr`` query operator.
    - ๐Ÿ‘Œ Support for Mongo 3.6+ ``$center`` query operator.
    
    ๐Ÿ›  Fixed
    ~~~~~
    - Insertion failure when replacing unknown field with dbref value (`#1255`_,
      `#1257`_)
    - ``max_results=1`` should be honored on aggregation endpoints (`#1250`_)
    - 0๏ธโƒฃ PATCH incorrectly normalizes default values in subdocuments (`#1234`_)
    - Unauthorized Exception not working with Werkzeug >= 15.0 (`#1245`_, `#1251`_)
    - Embedded documents not being sorted correctly (`#1217`_)
    - Eve crashes on malformed sort parameters (`#1248`_)
    - Insertion failure when replacing a same document containing dbref (`#1216`_)
    - Datasource projection is not respected for POST requests (`#1189`_)
    - Soft delete removes ``auth_field`` from document (`#1188`_)
    - On Mongo 3.6+, we don't return 400 'immutable field' on PATCH and PUT
      (`#1243`_)
    - Expecting JSON response for rate limit exceeded scenario (`#1227`_)
    - Multiple concurrent patches to the same record, from different processes,
      should result in at least one patch failing with a 412 error (Precondition
      Failed) (`#1231`_)
    - Embedding only does not follow ``data_relation.field`` (`#1069`_)
    - ๐Ÿ”— HATEOAS ``_links`` seems to get an extra ``&version=diffs`` (`#1228`_)
    - Do not alter ETag when performing an oplog_push (`#1206`_)
    - CORS response headers missing for media endpoint (`#1197`_)
    - ๐Ÿ”– Warning: Unexpected keys present on black: ``python_version`` (`#1244`_)
    - ๐Ÿ—„ UserWarning: JSON setting is deprecated. Use RENDERERS instead (`#1241`_).
    - ๐Ÿ—„ DeprecationWarning: decodestring is deprecated, use decodebytes (`#1242`_)
    - ๐Ÿ—„ DeprecationWarning: count is deprecated. Use Collection.count_documents
      instead (`#1202`_)
    - Documentation typos (`#1218`_, `#1240`_)
    
    ๐Ÿ‘Œ Improved
    ~~~~~~~~
    - ๐Ÿ“ฆ Eve package is now distributed as a Python wheel (`#1260`_)
    - Bump Werkzeug version to v0.15.1+ (`#1245`_, `#1251`_)
    - โฌ†๏ธ Bump PyMongo version to v3.7+ (`#1202`_)
    - ๐Ÿ‘ท Python 3.7 added to the CI matrix (`#1199`_)
    - Option to omit the aggregation stage when its parameter is empty/unset
      (`#1209`_)
    - HATEOAS: now the ``_links`` dictionary may have a ``related`` dictionary
      inside, and each key-value pair yields the related links for a data relation
      field (`#1204`_)
    - ๐Ÿ‘ XML renderer now supports data field tag attributes such as ``href`` and
      ``title`` (`#1204`_)
    - ๐Ÿ“œ Make the parsing of ``req.sort`` and ``req.where`` easily reusable by moving
      their logic to dedicated methods (`#1194`_)
    - โž• Add a "Python 3 is highly preferred" note on the homepage (`#1198`_)
    - โฌ‡๏ธ Drop sphinx-contrib-embedly when building docs.
    
    .. _`#1260`: https://github.com/pyeve/eve/issues/1260
    .. _`#1208`: https://github.com/pyeve/eve/issues/1208
    .. _`#1257`: https://github.com/pyeve/eve/issues/1257
    .. _`#1255`: https://github.com/pyeve/eve/issues/1255
    .. _`#1250`: https://github.com/pyeve/eve/issues/1250
    .. _`#1234`: https://github.com/pyeve/eve/issues/1234
    .. _`#1251`: https://github.com/pyeve/eve/pull/1251
    .. _`#1245`: https://github.com/pyeve/eve/pull/1245
    .. _`#1217`: https://github.com/pyeve/eve/pull/1217
    .. _`#1248`: https://github.com/pyeve/eve/issues/1248
    .. _`#1234`: https://github.com/pyeve/eve/issues/1234
    .. _`#1216`: https://github.com/pyeve/eve/issues/1216
    .. _`#1244`: https://github.com/pyeve/eve/issues/1244
    .. _`#1189`: https://github.com/pyeve/eve/issues/1189
    .. _`#1188`: https://github.com/pyeve/eve/issues/1188
    .. _`#1198`: https://github.com/pyeve/eve/issues/1198
    .. _`#1199`: https://github.com/pyeve/eve/issues/1199
    .. _`#1243`: https://github.com/pyeve/eve/issues/1243
    .. _`#1241`: https://github.com/pyeve/eve/issues/1241
    .. _`#1242`: https://github.com/pyeve/eve/issues/1242
    .. _`#1202`: https://github.com/pyeve/eve/issues/1202
    .. _`#1240`: https://github.com/pyeve/eve/issues/1240
    .. _`#1227`: https://github.com/pyeve/eve/issues/1227
    .. _`#1231`: https://github.com/pyeve/eve/issues/1231
    .. _`#1069`: https://github.com/pyeve/eve/issues/1069
    .. _`#1224`: https://github.com/pyeve/eve/pull/1224
    .. _`#1228`: https://github.com/pyeve/eve/pull/1228
    .. _`#1218`: https://github.com/pyeve/eve/pull/1218
    .. _`#1209`: https://github.com/pyeve/eve/issues/1209
    .. _`#1206`: https://github.com/pyeve/eve/issues/1206
    .. _`#1204`: https://github.com/pyeve/eve/pull/1204
    .. _`#1194`: https://github.com/pyeve/eve/pull/1194
    .. _`#1197`: https://github.com/pyeve/eve/issues/1197