Skip to content

Releases: toptal/chewy

v7.3.0

03 Apr 09:11
8b886d7
Compare
Choose a tag to compare

7.3.0 (2023-04-03)

New Features

  • #869: New strategy - delayed_sidekiq. Allow passing strategy: :delayed_sidekiq option to SomeIndex.import([1, ...], strategy: :delayed_sidekiq). The strategy is compatible with update_fields option as well. ([@skcc321][])
  • #879: Configure CI to check for ruby 3.2 compatibility. ([@konalegi][])

Changes

Bugs Fixed

  • #856: Fix return value of subscribed_task_stats used in rake tasks. ([@fabiormoura][])

New Contributors

Full Changelog: v7.2.7...v7.3.0

v7.2.7

15 Nov 13:51
e6fe792
Compare
Choose a tag to compare

New Features

  • #857: Allow passing wait_for_completion, request_per_second and scroll_size options to chewy:journal:clean rake task and delete_all query builder method. ([@konalegi][])([@barthez][])

Bugs Fixed

  • #863: Fix crutches call doesn't respect update_fields option. ([@skcc321][])

v7.2.6

13 Jun 14:51
50bd5c1
Compare
Choose a tag to compare

New Features

Bugs Fixed

7.2.6

13 Jun 14:50
50bd5c1
Compare
Choose a tag to compare

New Features

Bugs Fixed

v7.2.5

04 Mar 15:22
98c2fc5
Compare
Choose a tag to compare

New Features

  • #827: Add :lazy_sidekiq strategy, that defers not only importing but also update_index callback evaluation for created and updated objects. (@sl4vr)
  • #827: Add :atomic_no_refresh strategy. Like :atomic, but refresh=false parameter is set. (@barthez)
  • #827: Add :no_refresh chain call to update_index matcher to ensure import was called with refresh=false. (@barthez)

Bugs Fixed

v7.2.4

03 Feb 12:51
Compare
Choose a tag to compare

New Features

Bugs Fixed

v7.2.3

29 Oct 04:41
be3c4f9
Compare
Choose a tag to compare

New Features

Changes

  • #817: Show warning message during rake chewy:reset or chewy:upgrade if journaling is disabled. (@konalegi)

Bugs Fixed

v7.2.2

24 May 20:15
6e77065
Compare
Choose a tag to compare

Changes

  • #800: Revert #787 progressbar feature to avoid performance degradation in parallel import (@rabotyaga)

  • #795: (Breaking) Change the Chewy::Search::Parameters::Order implementation to use Array (@jiajiawang):

    • To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be _script.
    • Behaviour change of chained order calls.
      • e.g. .order(_script: {a: 1}).order(_script: {b: 2})
        • Before {:sort=>[{"_script"=>{:b=>2}}]}
        • After {:sort=>[{"_script"=>{:a=>1}},{"_script"=>{:b=>2}}]}
  • #654: Add helpers and matchers for testing (@Vitalina-Vakulchyk):

    • mock_elasticsearch_response helpers both Rspec and Minitest - to mock elasticsearch response
    • mock_elasticsearch_response_sources helpers both Rspec and Minitest - to mock elasticsearch response sources
    • assert_elasticsearch_query helper for Minitest - to compare request and expected query (returns true/false)
    • build_query matcher for Rspec - to compare request and expected query (returns true/false)

v7.2.1

11 May 15:35
973e122
Compare
Choose a tag to compare

New Features

  • #469: Add ability to output the progressbar with ENV['PROGRESS'] during reset rake tasks (@Vitalina-Vakulchyk):
    • for rake chewy:reset and rake chewy:parallel:reset
    • progressbar is hidden by default, set ENV['PROGRESS'] to true to display it

Bugs Fixed

  • #796: Fix clear scroll: pass scroll_id in body, as passing in path parameters is deprecated and can overflow http.max_initial_line_length (@rabotyaga)

v7.0.1

03 May 14:36
Compare
Choose a tag to compare

Changes

  • #792: Skip ES version memoization for search requests (@rabotyaga)
    • The “total hits” counter is an integer for ES versions < 7 and an object (hash) for the versions starting from 7.0.0. Elasticsearch added a special option, rest_total_hits_as_int, to ease the upgrade, that could be appended to any request and results in the old “total hits” format. Unfortunately, this option is not recognized by ES versions prior to 7.0.0, which means that we have to check the version to decide if we need this option.
      Normally Chewy does memoization of the current ES version, but this might be inappropriate for the upgrade, as the version changes live.
      To handle that we have 2 versions of Chewy for the ES cluster upgrade stage during the migration from ES6 to ES7: 7.0.0 and 7.0.1. Version 7.0.0 does the memoization and version 7.0.1 requests the current version on every search request.
    • You can use the 7.0.0 version if it's fine for you to have an application restart immediately after ES cluster upgrade.
    • If you're using the 7.0.1 version you might be interested in keeping the timeframe between updating to Chewy 7.0.1 and updating to Chewy 7.1 as small as possible, as version 7.0.1 skips ES version memoization for search requests to help dynamically detect ES version. This leads to an extra version request on each search request, i.e. could affect the overall performance/latency of the search and a load of ES cluster.