chewy 5.1.0 → 7.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  6. data/.github/workflows/ruby.yml +73 -0
  7. data/.rubocop.yml +13 -8
  8. data/.rubocop_todo.yml +110 -22
  9. data/CHANGELOG.md +449 -347
  10. data/CODE_OF_CONDUCT.md +14 -0
  11. data/CONTRIBUTING.md +63 -0
  12. data/Gemfile +3 -7
  13. data/Guardfile +3 -1
  14. data/LICENSE.txt +1 -1
  15. data/README.md +423 -311
  16. data/chewy.gemspec +8 -10
  17. data/gemfiles/rails.5.2.activerecord.gemfile +9 -14
  18. data/gemfiles/rails.6.0.activerecord.gemfile +11 -0
  19. data/gemfiles/rails.6.1.activerecord.gemfile +13 -0
  20. data/gemfiles/rails.7.0.activerecord.gemfile +13 -0
  21. data/lib/chewy/config.rb +42 -60
  22. data/lib/chewy/errors.rb +4 -10
  23. data/lib/chewy/fields/base.rb +80 -20
  24. data/lib/chewy/fields/root.rb +7 -17
  25. data/lib/chewy/index/actions.rb +62 -35
  26. data/lib/chewy/{type → index}/adapter/active_record.rb +18 -4
  27. data/lib/chewy/{type → index}/adapter/base.rb +2 -3
  28. data/lib/chewy/{type → index}/adapter/object.rb +28 -32
  29. data/lib/chewy/{type → index}/adapter/orm.rb +26 -24
  30. data/lib/chewy/index/aliases.rb +14 -5
  31. data/lib/chewy/{type → index}/crutch.rb +5 -5
  32. data/lib/chewy/index/import/bulk_builder.rb +311 -0
  33. data/lib/chewy/{type → index}/import/bulk_request.rb +6 -7
  34. data/lib/chewy/{type → index}/import/journal_builder.rb +11 -12
  35. data/lib/chewy/{type → index}/import/routine.rb +17 -16
  36. data/lib/chewy/{type → index}/import.rb +51 -33
  37. data/lib/chewy/{type → index}/mapping.rb +32 -37
  38. data/lib/chewy/index/observe/active_record_methods.rb +87 -0
  39. data/lib/chewy/index/observe/callback.rb +34 -0
  40. data/lib/chewy/index/observe.rb +17 -0
  41. data/lib/chewy/index/specification.rb +1 -0
  42. data/lib/chewy/{type → index}/syncer.rb +61 -62
  43. data/lib/chewy/{type → index}/witchcraft.rb +15 -9
  44. data/lib/chewy/{type → index}/wrapper.rb +13 -3
  45. data/lib/chewy/index.rb +46 -96
  46. data/lib/chewy/journal.rb +25 -14
  47. data/lib/chewy/minitest/helpers.rb +86 -13
  48. data/lib/chewy/minitest/search_index_receiver.rb +22 -26
  49. data/lib/chewy/multi_search.rb +62 -0
  50. data/lib/chewy/railtie.rb +6 -20
  51. data/lib/chewy/rake_helper.rb +136 -108
  52. data/lib/chewy/rspec/build_query.rb +12 -0
  53. data/lib/chewy/rspec/helpers.rb +55 -0
  54. data/lib/chewy/rspec/update_index.rb +55 -44
  55. data/lib/chewy/rspec.rb +2 -0
  56. data/lib/chewy/runtime.rb +1 -1
  57. data/lib/chewy/search/loader.rb +19 -41
  58. data/lib/chewy/search/parameters/collapse.rb +16 -0
  59. data/lib/chewy/search/parameters/concerns/query_storage.rb +2 -2
  60. data/lib/chewy/search/parameters/ignore_unavailable.rb +27 -0
  61. data/lib/chewy/search/parameters/indices.rb +12 -57
  62. data/lib/chewy/search/parameters/none.rb +1 -3
  63. data/lib/chewy/search/parameters/order.rb +6 -19
  64. data/lib/chewy/search/parameters/source.rb +5 -1
  65. data/lib/chewy/search/parameters/track_total_hits.rb +16 -0
  66. data/lib/chewy/search/parameters.rb +7 -4
  67. data/lib/chewy/search/query_proxy.rb +9 -2
  68. data/lib/chewy/search/request.rb +180 -154
  69. data/lib/chewy/search/response.rb +5 -5
  70. data/lib/chewy/search/scoping.rb +7 -8
  71. data/lib/chewy/search/scrolling.rb +16 -13
  72. data/lib/chewy/search.rb +7 -22
  73. data/lib/chewy/stash.rb +19 -30
  74. data/lib/chewy/strategy/active_job.rb +2 -2
  75. data/lib/chewy/strategy/atomic_no_refresh.rb +18 -0
  76. data/lib/chewy/strategy/base.rb +10 -0
  77. data/lib/chewy/strategy/lazy_sidekiq.rb +64 -0
  78. data/lib/chewy/strategy/sidekiq.rb +3 -2
  79. data/lib/chewy/strategy.rb +5 -19
  80. data/lib/chewy/version.rb +1 -1
  81. data/lib/chewy.rb +36 -80
  82. data/lib/generators/chewy/install_generator.rb +1 -1
  83. data/lib/tasks/chewy.rake +26 -32
  84. data/migration_guide.md +56 -0
  85. data/spec/chewy/config_spec.rb +15 -61
  86. data/spec/chewy/fields/base_spec.rb +432 -145
  87. data/spec/chewy/fields/root_spec.rb +20 -28
  88. data/spec/chewy/fields/time_fields_spec.rb +5 -5
  89. data/spec/chewy/index/actions_spec.rb +388 -55
  90. data/spec/chewy/{type → index}/adapter/active_record_spec.rb +110 -44
  91. data/spec/chewy/{type → index}/adapter/object_spec.rb +21 -6
  92. data/spec/chewy/index/aliases_spec.rb +3 -3
  93. data/spec/chewy/index/import/bulk_builder_spec.rb +494 -0
  94. data/spec/chewy/{type → index}/import/bulk_request_spec.rb +5 -12
  95. data/spec/chewy/{type → index}/import/journal_builder_spec.rb +14 -22
  96. data/spec/chewy/{type → index}/import/routine_spec.rb +19 -19
  97. data/spec/chewy/{type → index}/import_spec.rb +149 -96
  98. data/spec/chewy/index/mapping_spec.rb +135 -0
  99. data/spec/chewy/index/observe/active_record_methods_spec.rb +68 -0
  100. data/spec/chewy/index/observe/callback_spec.rb +139 -0
  101. data/spec/chewy/index/observe_spec.rb +143 -0
  102. data/spec/chewy/index/settings_spec.rb +3 -1
  103. data/spec/chewy/index/specification_spec.rb +20 -30
  104. data/spec/chewy/{type → index}/syncer_spec.rb +14 -19
  105. data/spec/chewy/{type → index}/witchcraft_spec.rb +34 -21
  106. data/spec/chewy/index/wrapper_spec.rb +100 -0
  107. data/spec/chewy/index_spec.rb +69 -137
  108. data/spec/chewy/journal_spec.rb +46 -91
  109. data/spec/chewy/minitest/helpers_spec.rb +122 -14
  110. data/spec/chewy/minitest/search_index_receiver_spec.rb +24 -26
  111. data/spec/chewy/multi_search_spec.rb +84 -0
  112. data/spec/chewy/rake_helper_spec.rb +293 -101
  113. data/spec/chewy/rspec/build_query_spec.rb +34 -0
  114. data/spec/chewy/rspec/helpers_spec.rb +61 -0
  115. data/spec/chewy/rspec/update_index_spec.rb +106 -102
  116. data/spec/chewy/runtime_spec.rb +2 -2
  117. data/spec/chewy/search/loader_spec.rb +19 -53
  118. data/spec/chewy/search/pagination/kaminari_examples.rb +3 -5
  119. data/spec/chewy/search/pagination/kaminari_spec.rb +1 -1
  120. data/spec/chewy/search/parameters/collapse_spec.rb +5 -0
  121. data/spec/chewy/search/parameters/ignore_unavailable_spec.rb +67 -0
  122. data/spec/chewy/search/parameters/indices_spec.rb +26 -118
  123. data/spec/chewy/search/parameters/none_spec.rb +1 -1
  124. data/spec/chewy/search/parameters/order_spec.rb +18 -11
  125. data/spec/chewy/search/parameters/query_storage_examples.rb +67 -21
  126. data/spec/chewy/search/parameters/search_after_spec.rb +4 -1
  127. data/spec/chewy/search/parameters/source_spec.rb +8 -2
  128. data/spec/chewy/search/parameters/track_total_hits_spec.rb +5 -0
  129. data/spec/chewy/search/parameters_spec.rb +23 -7
  130. data/spec/chewy/search/query_proxy_spec.rb +68 -17
  131. data/spec/chewy/search/request_spec.rb +344 -149
  132. data/spec/chewy/search/response_spec.rb +35 -25
  133. data/spec/chewy/search/scrolling_spec.rb +28 -26
  134. data/spec/chewy/search_spec.rb +69 -59
  135. data/spec/chewy/stash_spec.rb +16 -26
  136. data/spec/chewy/strategy/active_job_spec.rb +23 -10
  137. data/spec/chewy/strategy/atomic_no_refresh_spec.rb +60 -0
  138. data/spec/chewy/strategy/atomic_spec.rb +9 -10
  139. data/spec/chewy/strategy/lazy_sidekiq_spec.rb +214 -0
  140. data/spec/chewy/strategy/sidekiq_spec.rb +14 -10
  141. data/spec/chewy/strategy_spec.rb +19 -15
  142. data/spec/chewy_spec.rb +17 -110
  143. data/spec/spec_helper.rb +6 -29
  144. data/spec/support/active_record.rb +43 -5
  145. metadata +102 -198
  146. data/.travis.yml +0 -45
  147. data/Appraisals +0 -81
  148. data/LEGACY_DSL.md +0 -497
  149. data/gemfiles/rails.4.0.activerecord.gemfile +0 -15
  150. data/gemfiles/rails.4.1.activerecord.gemfile +0 -15
  151. data/gemfiles/rails.4.2.activerecord.gemfile +0 -16
  152. data/gemfiles/rails.4.2.mongoid.5.2.gemfile +0 -16
  153. data/gemfiles/rails.5.0.activerecord.gemfile +0 -16
  154. data/gemfiles/rails.5.0.mongoid.6.1.gemfile +0 -16
  155. data/gemfiles/rails.5.1.activerecord.gemfile +0 -16
  156. data/gemfiles/rails.5.1.mongoid.6.3.gemfile +0 -16
  157. data/gemfiles/sequel.4.45.gemfile +0 -11
  158. data/lib/chewy/backports/deep_dup.rb +0 -46
  159. data/lib/chewy/backports/duplicable.rb +0 -91
  160. data/lib/chewy/query/compose.rb +0 -68
  161. data/lib/chewy/query/criteria.rb +0 -191
  162. data/lib/chewy/query/filters.rb +0 -244
  163. data/lib/chewy/query/loading.rb +0 -110
  164. data/lib/chewy/query/nodes/and.rb +0 -25
  165. data/lib/chewy/query/nodes/base.rb +0 -17
  166. data/lib/chewy/query/nodes/bool.rb +0 -34
  167. data/lib/chewy/query/nodes/equal.rb +0 -34
  168. data/lib/chewy/query/nodes/exists.rb +0 -20
  169. data/lib/chewy/query/nodes/expr.rb +0 -28
  170. data/lib/chewy/query/nodes/field.rb +0 -110
  171. data/lib/chewy/query/nodes/has_child.rb +0 -15
  172. data/lib/chewy/query/nodes/has_parent.rb +0 -15
  173. data/lib/chewy/query/nodes/has_relation.rb +0 -59
  174. data/lib/chewy/query/nodes/match_all.rb +0 -11
  175. data/lib/chewy/query/nodes/missing.rb +0 -20
  176. data/lib/chewy/query/nodes/not.rb +0 -25
  177. data/lib/chewy/query/nodes/or.rb +0 -25
  178. data/lib/chewy/query/nodes/prefix.rb +0 -19
  179. data/lib/chewy/query/nodes/query.rb +0 -20
  180. data/lib/chewy/query/nodes/range.rb +0 -63
  181. data/lib/chewy/query/nodes/raw.rb +0 -15
  182. data/lib/chewy/query/nodes/regexp.rb +0 -35
  183. data/lib/chewy/query/nodes/script.rb +0 -20
  184. data/lib/chewy/query/pagination.rb +0 -25
  185. data/lib/chewy/query.rb +0 -1142
  186. data/lib/chewy/search/pagination/will_paginate.rb +0 -43
  187. data/lib/chewy/search/parameters/types.rb +0 -20
  188. data/lib/chewy/strategy/resque.rb +0 -27
  189. data/lib/chewy/strategy/shoryuken.rb +0 -40
  190. data/lib/chewy/type/actions.rb +0 -43
  191. data/lib/chewy/type/adapter/mongoid.rb +0 -67
  192. data/lib/chewy/type/adapter/sequel.rb +0 -93
  193. data/lib/chewy/type/import/bulk_builder.rb +0 -122
  194. data/lib/chewy/type/observe.rb +0 -82
  195. data/lib/chewy/type.rb +0 -117
  196. data/lib/sequel/plugins/chewy_observe.rb +0 -63
  197. data/spec/chewy/query/criteria_spec.rb +0 -700
  198. data/spec/chewy/query/filters_spec.rb +0 -201
  199. data/spec/chewy/query/loading_spec.rb +0 -124
  200. data/spec/chewy/query/nodes/and_spec.rb +0 -12
  201. data/spec/chewy/query/nodes/bool_spec.rb +0 -14
  202. data/spec/chewy/query/nodes/equal_spec.rb +0 -32
  203. data/spec/chewy/query/nodes/exists_spec.rb +0 -18
  204. data/spec/chewy/query/nodes/has_child_spec.rb +0 -59
  205. data/spec/chewy/query/nodes/has_parent_spec.rb +0 -59
  206. data/spec/chewy/query/nodes/match_all_spec.rb +0 -11
  207. data/spec/chewy/query/nodes/missing_spec.rb +0 -16
  208. data/spec/chewy/query/nodes/not_spec.rb +0 -14
  209. data/spec/chewy/query/nodes/or_spec.rb +0 -12
  210. data/spec/chewy/query/nodes/prefix_spec.rb +0 -16
  211. data/spec/chewy/query/nodes/query_spec.rb +0 -12
  212. data/spec/chewy/query/nodes/range_spec.rb +0 -32
  213. data/spec/chewy/query/nodes/raw_spec.rb +0 -11
  214. data/spec/chewy/query/nodes/regexp_spec.rb +0 -43
  215. data/spec/chewy/query/nodes/script_spec.rb +0 -15
  216. data/spec/chewy/query/pagination/kaminari_spec.rb +0 -5
  217. data/spec/chewy/query/pagination/will_paginate_spec.rb +0 -5
  218. data/spec/chewy/query/pagination_spec.rb +0 -39
  219. data/spec/chewy/query_spec.rb +0 -637
  220. data/spec/chewy/search/pagination/will_paginate_examples.rb +0 -63
  221. data/spec/chewy/search/pagination/will_paginate_spec.rb +0 -23
  222. data/spec/chewy/search/parameters/types_spec.rb +0 -5
  223. data/spec/chewy/strategy/resque_spec.rb +0 -46
  224. data/spec/chewy/strategy/shoryuken_spec.rb +0 -66
  225. data/spec/chewy/type/actions_spec.rb +0 -50
  226. data/spec/chewy/type/adapter/mongoid_spec.rb +0 -372
  227. data/spec/chewy/type/adapter/sequel_spec.rb +0 -472
  228. data/spec/chewy/type/import/bulk_builder_spec.rb +0 -279
  229. data/spec/chewy/type/mapping_spec.rb +0 -173
  230. data/spec/chewy/type/observe_spec.rb +0 -137
  231. data/spec/chewy/type/wrapper_spec.rb +0 -98
  232. data/spec/chewy/type_spec.rb +0 -55
  233. data/spec/support/mongoid.rb +0 -93
  234. data/spec/support/sequel.rb +0 -80
data/CHANGELOG.md CHANGED
@@ -1,326 +1,432 @@
1
- # master
1
+ # Changelog
2
2
 
3
- # Version 5.1.0
3
+ ## master (unreleased)
4
4
 
5
- ## Breaking changes
5
+ ### New Features
6
6
 
7
- * Add support for multiple indices in request (@pyromaniac, #657)
7
+ ### Changes
8
8
 
9
- * Support `search_type`, `request_cache`, and `allow_partial_search_results` as query string parameters (@mattzollinhofer, #647)
9
+ ### Bugs Fixed
10
10
 
11
- ## Changes
11
+ ## 7.2.7 (2022-11-15)
12
12
 
13
- * Speed up imports when `bulk_size` is specified (@yahooguntu, #606)
13
+ ### New Features
14
14
 
15
- * Insert `RequestStrategy` middleware before `ActionDispatch::ShowExceptions` (@dck, #682)
15
+ * [#857](https://github.com/toptal/chewy/pull/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][])
16
16
 
17
- # Version 5.0.0
17
+ ### Changes
18
18
 
19
- ## Breaking changes
19
+ ### Bugs Fixed
20
20
 
21
- * Try to align the gem version with the ElasticSearch version we support
21
+ * [#863](https://github.com/toptal/chewy/pull/863): Fix `crutches` call doesn't respect `update_fields` option. ([@skcc321][])
22
22
 
23
- * `Chewy.default_field_type` is `text` now.
23
+ ## 7.2.6 (2022-06-13)
24
24
 
25
- * `Chewy::Stash` was split onto two indexes - `Chewy::Stash::Specification` and `Chewy::Stash::Journal`
25
+ ### New Features
26
26
 
27
- * Data for journal and specification is stored in binary fields base64-encoded to bypass the limits of other fields.
27
+ * [#841](https://github.com/toptal/chewy/pull/841): Add the [`collapse`](https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html) option to the request. ([@jkostolansky][])
28
28
 
29
- * Don't underscore suggested index name (@dm1try, #626)
29
+ ### Bugs Fixed
30
30
 
31
- ## Changes
31
+ * [#842](https://github.com/toptal/chewy/issues/842): Fix `ignore_blank` handling. ([@rabotyaga][])
32
+ * [#848](https://github.com/toptal/chewy/issues/848): Fix invalid journal pagination. ([@konalegi][])
32
33
 
33
- * `pipeline` import option support (@eManPrague, #598)
34
+ ## 7.2.5 (2022-03-04)
34
35
 
35
- * Proper Rails check (@nattfodd, #625)
36
+ ### New Features
36
37
 
37
- * Bypass strategy performance improvements (@DNNX, #623)
38
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:lazy_sidekiq` strategy, that defers not only importing but also `update_index` callback evaluation for created and updated objects. ([@sl4vr][])
39
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:atomic_no_refresh` strategy. Like `:atomic`, but `refresh=false` parameter is set. ([@barthez][])
40
+ * [#827](https://github.com/toptal/chewy/pull/827): Add `:no_refresh` chain call to `update_index` matcher to ensure import was called with `refresh=false`. ([@barthez][])
38
41
 
39
- * Avoid index update calls for empty data (@robertasg, #620)
42
+ ### Bugs Fixed
40
43
 
41
- * Do not underscore suggested index name on `Chewy::Index.index_name` call.
44
+ * [#835](https://github.com/toptal/chewy/pull/835): Support keyword arguments in named scopes. ([@milk1000cc][])
42
45
 
43
- * It is possible now to call `root` method several times inside a single type definition, the options will be merged. Also, the block isn't required anymore.
46
+ ## 7.2.4 (2022-02-03)
44
47
 
45
- * Fixed some Sequel deprecation warnings (@arturtr - #565, @matchbookmac - #577)
48
+ ### New Features
46
49
 
47
- ## Bugfixes
50
+ * [#760](https://github.com/toptal/chewy/pull/760): Replace parent-child mapping with a [join field](https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html#parent-child-mapping-types) ([@mrzasa][])
48
51
 
49
- * Fixed index settings logic error (@yahooguntu, #593)
52
+ ### Bugs Fixed
50
53
 
51
- * Missed check in higlight method (@heartfulbird, #567)
54
+ * [#825](https://github.com/toptal/chewy/issues/825): Fix mismatch argument names at update_mapping rake task ([@AgeevAndrew][])
55
+ * [#832](https://github.com/toptal/chewy/issues/832): Fix "cannot load such file -- `i18n/core_ext/hash`" ([@chrisandreae][])
52
56
 
53
- # Version 0.10.1
57
+ ## 7.2.3 (2021-10-29)
54
58
 
55
- ## Changes
59
+ ### New Features
56
60
 
57
- * Improved parallel worker titles (#558)
61
+ * [#801](https://github.com/toptal/chewy/pull/801): Add the [`track_total_hits`](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-your-data.html#track-total-hits) option to the query. ([@milk1000cc][])
62
+ * [#810](https://github.com/toptal/chewy/pull/810): Use `unsafe_load` when loading config to support Psych 4.
63
+ * [#819](https://github.com/toptal/chewy/pull/819): Add the [`ignore_unavailable`](https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html#multi-index) option to the request. ([@kolauren][])
58
64
 
59
- ## Bugfixes
65
+ ### Changes
60
66
 
61
- * Fixed request strategy initial debug message (#557)
67
+ * [#817](https://github.com/toptal/chewy/pull/817): Show warning message during rake chewy:reset or chewy:upgrade if journaling is disabled. ([@konalegi][])
62
68
 
63
- * Fixed will objects paginated array initialization when pagination was not used (#556)
69
+ ### Bugs Fixed
64
70
 
65
- * Fixed fields symbol/string value (#555)
71
+ * [#816](https://github.com/toptal/chewy/pull/816): Move query [`preference`](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/search-search.html#search-preference) from body to query parameters. ([@afg419][])
66
72
 
67
- * Fixed root field value proc (#554)
73
+ ## 7.2.2 (2021-05-24)
68
74
 
69
- # Version 0.10.0
75
+ ### Changes
70
76
 
71
- ## Breaking changes
77
+ * [#800](https://github.com/toptal/chewy/pull/800): Revert [#787](https://github.com/toptal/chewy/pull/787) progressbar feature to avoid performance degradation in parallel import ([@rabotyaga][])
72
78
 
73
- * Changed behavior of `Chewy::Index.index_name`, it doesn't cache the values anymore.
79
+ * [#795](https://github.com/toptal/chewy/issues/795): **(Breaking)** Change the Chewy::Search::Parameters::Order implementation to use Array ([@jiajiawang][]):
80
+ * To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be `_script`.
81
+ * Behaviour change of chained `order` calls.
82
+ * e.g. `.order(_script: {a: 1}).order(_script: {b: 2})`
83
+ * Before `{:sort=>[{"_script"=>{:b=>2}}]}`
84
+ * After `{:sort=>[{"_script"=>{:a=>1}},{"_script"=>{:b=>2}}]}`
74
85
 
75
- * Journal interfaces, related code and rake tasks were completely refactored and are not compatible with the previous version.
86
+ * [#654](https://github.com/toptal/chewy/issues/654): Add helpers and matchers for testing ([@Vitalina-Vakulchyk][]):
87
+ * `mock_elasticsearch_response` helpers both Rspec and Minitest - to mock elasticsearch response
88
+ * `mock_elasticsearch_response_sources` helpers both Rspec and Minitest - to mock elasticsearch response sources
89
+ * `assert_elasticsearch_query` helper for Minitest - to compare request and expected query (returns `true`/`false`)
90
+ * `build_query` matcher for Rspec - to compare request and expected query (returns `true`/`false`)
76
91
 
77
- ## Changes
92
+ ## 7.2.1 (2021-05-11)
78
93
 
79
- * Less noisy strategies logging (@Borzik, #543)
94
+ ### New Features
80
95
 
81
- * Parallel import and the corresponding rake tasks.
96
+ * [#469](https://github.com/toptal/chewy/issues/469): Add ability to output the progressbar with `ENV['PROGRESS']` during `reset` rake tasks ([@Vitalina-Vakulchyk][]):
97
+ * for `rake chewy:reset` and `rake chewy:parallel:reset`
98
+ * progressbar is hidden by default, set `ENV['PROGRESS']` to `true` to display it
82
99
 
83
- * `:shoryuken` async strategy (@josephchoe, #532)
100
+ ### Bugs Fixed
84
101
 
85
- * Deprecate `Chewy::Index.build_index_name`.
102
+ * [#796](https://github.com/toptal/chewy/pull/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][])
86
103
 
87
- * Rename `Chewy::Index.default_prefix` to `Chewy::Index.prefix`. The old one is deprecated.
104
+ ## 7.0.1 (2021-05-03)
88
105
 
89
- * Add `Chewy::Type.derivable_name` for consistency.
106
+ ### Changes
90
107
 
91
- * Rename `Chewy::Index.derivable_index_name` to `Chewy::Index.derivable_name`.
92
- `Chewy::Index.derivable_index_name` and `Chewy::Type.derivable_index_name` are deprecated.
108
+ * [#792](https://github.com/toptal/chewy/pull/792): Skip ES version memoization for search requests ([@rabotyaga][])
109
+ * See the Migration Guide for details
93
110
 
94
- * Use normal YAML loading, for the config, we don't need the safe one.
111
+ ## 7.2.0 (2021-04-19)
95
112
 
96
- * `default_root_options` option (@barthez, #526)
113
+ ### New Features
97
114
 
98
- * Partial indexing ability: it is possible to update only specified fields.
115
+ * [#778](https://github.com/toptal/chewy/pull/778): Add `ignore_blank` option to `field` method ([@Vitalina-Vakulchyk][]):
116
+ * `true` by default for the `geo_point` type
117
+ * `false` by default for other types
99
118
 
100
- * New cool `rake chewy:deploy` task.
119
+ ### Changes
101
120
 
102
- * Selective reset (resets only if necessary): `rake chewy:upgrade`.
121
+ * [#783](https://github.com/toptal/chewy/pull/783): **(Breaking)** Remove `Chewy::Type`, simplify DSL ([@rabotyaga][])
122
+ * Remove the `Chewy::Type` class
123
+ * e.g. remove `CitiesIndex::City` / `CitiesIndex.city`
124
+ * `CitiesIndex::City.import! ...` becomes `CitiesIndex.import! ...`
125
+ * Simplify index DSL:
126
+ * `define_type` block -> `index_scope` clause
127
+ * it can be omitted completely, if you don't need to specify the scope or options, e.g. `name`
128
+ * Remove type names from string representations:
129
+ * in `update_index` ActiveRecord helper and RSpec matcher, e.g.
130
+ * `update_index('cities#city')` -> `update_index('cities')`
131
+ * `update_index(UsersIndex::User)` -> `update_index(UsersIndex)`
132
+ * in rake tasks (e.g. `rake chewy:update[cities#city]` -> `rake chewy:update[cities]`)
133
+ * in rake tasks output (e.g. `Imported CitiesIndex::City in 1s, stats: index 3` -> `Imported CitiesIndex in 1s, stats: index 3`)
134
+ * Use index name instead of type name in loader additional scope
135
+ * e.g. `CitiesIndex.filter(...).load(city: {scope: City.where(...)})` -> `CitiesIndex.filter(...).load(cities: {scope: City.where(...)})`
136
+ * [#692](https://github.com/toptal/chewy/issues/692): Add `.update_mapping` to Index class ([@Vitalina-Vakulchyk][]):
137
+ * Wrapped Elasticsearch gem `.put_mapping` with `.update_mapping` in Index class
138
+ * Add `rake chewy:update_mapping` task
139
+ * [#594](https://github.com/toptal/chewy/issues/594): Add `.reindex` to Index class ([@Vitalina-Vakulchyk][]):
140
+ * Wrapped Elasticsearch gem `.reindex` with `.reindex` in Index class
141
+ * Add `rake chewy:reindex` task
142
+ * [#679](https://github.com/toptal/chewy/issues/679): Wrapped `Elasticsearch::API::Indices::Actions#clear_cache` with `.clear_cache` in Index class ([@Vitalina-Vakulchyk][])
143
+ * [#495](https://github.com/toptal/chewy/issues/495): Ability to change Rails console strategy with `Chewy.console_strategy` ([@Vitalina-Vakulchyk][])
144
+ * [#778](https://github.com/toptal/chewy/pull/778): **(Breaking)** Drop support for Ruby 2.5 ([@Vitalina-Vakulchyk][])
145
+ * [#776](https://github.com/toptal/chewy/pull/776): **(Breaking)** Removal of unnecessary features and integrations ([@Vitalina-Vakulchyk][]):
146
+ * `aws-sdk-sqs` / `shoryuken`
147
+ * `mongoid`
148
+ * `sequel`
149
+ * `will_paginate`
150
+ * `resque`
151
+ * [#769](https://github.com/toptal/chewy/pull/769): **(Breaking)** Removal of deprecated methods and rake tasks ([@Vitalina-Vakulchyk][]):
152
+ * `Chewy::Index.index_params` is removed, use `Chewy::Index.specification_hash` instead
153
+ * `Chewy::Index.derivable_index_name` is removed, use `Chewy::Index.derivable_name` instead
154
+ * `Chewy::Index.default_prefix` is removed, use `Chewy::Index.prefix` instead
155
+ * `Chewy::Index.build_index_name` is removed, use `Chewy::Index.index_name` instead
156
+ * `Chewy::RakeHelper.reset_index` is removed, use `Chewy::RakeHelper.reset` instead
157
+ * `Chewy::RakeHelper.reset_all` is removed, use `Chewy::RakeHelper.reset` instead
158
+ * `Chewy::RakeHelper.update_index` is removed, use `Chewy::RakeHelper.update` instead
159
+ * `Chewy::RakeHelper.update_all` is removed, use `Chewy::RakeHelper.update` instead
160
+ * `rake chewy:apply_changes_from` is removed, use `rake chewy:journal:apply` instead
161
+ * `rake chewy:clean_journal` is removed, use `rake chewy:journal:clean` instead
103
162
 
104
- * Consistency checks and synchronization: `rake chewy:sync`.
163
+ ## 7.1.0 (2021-03-03)
105
164
 
106
- * Brand new request DSL. Supports ElasticSearch 2 and 5, better usability, architecture and docs.
165
+ ### Changes
107
166
 
108
- * Add Kaminari 1.0 support.
167
+ * [#766](https://github.com/toptal/chewy/pull/766): **(Breaking)** Drop support for Elasticsearch 6.x ([@rabotyaga][])
168
+ * [#765](https://github.com/toptal/chewy/pull/765): Fix ruby 2.7 warnings in rake tasks ([@aglushkov][])
109
169
 
110
- * `skip_index_creation_on_import` option (@sergey-kintsel, #483)
170
+ ### Bugs Fixed
111
171
 
112
- * Ability to use procs for settings (@parallel588, #481)
172
+ * [#722](https://github.com/toptal/chewy/issues/722): Remove alias_method_chain, use Module#prepend instead ([@dalthon][])
113
173
 
114
- * Bulk indexing optimizations with new additional options (@eproulx-petalmd, #467)
174
+ ## 7.0.0 (2021-02-22)
175
+
176
+ ### New Features
177
+
178
+ * [#763](https://github.com/toptal/chewy/pull/763): Added support for Elasticsearch 7 ([@rabotyaga][])
179
+
180
+ ### Changes
181
+
182
+ * [#757](https://github.com/toptal/chewy/pull/757): **(Breaking)** Fix `Chewy::Index.index` & `Chewy::Index.aliases` to correctly report indexes and aliases ([@mpeychich][], [@dalthon][])
183
+ * [#761](https://github.com/toptal/chewy/pull/761): Avoid fetching scope data to check if it is blank ([@dalthon][])
115
184
 
116
- * Configurable sidekiq options (@averell23, #438)
185
+ ## 6.0.0 (2021-02-11)
186
+
187
+ ### Changes
117
188
 
118
- # Version 0.9.0
189
+ * [#743](https://github.com/toptal/chewy/pull/743): **(Breaking)** Elasticsearch 6.x support added. See the [migration guide](migration_guide.md) & ES [breaking changes](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/breaking-changes-6.0.html). Removed legacy DSL support. Removed support for ES < 5. ([@mrzasa][], [@konalegi][], [@rabotyaga][])
190
+ * [#751](https://github.com/toptal/chewy/pull/751): Add [Multi Search API](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-multi-search.html) support. ([@mpeychich][], [@dalthon][])
191
+ * [#755](https://github.com/toptal/chewy/pull/755): `attribute_highlights` returns an array of highlights. ([@musaffa][], [@dalthon][])
192
+ * [#753](https://github.com/toptal/chewy/pull/753): Add support for direct_import parameter to skip objects reloading. ([@TikiTDO][], [@dalthon][])
193
+ * [#739](https://github.com/toptal/chewy/pull/739): Remove explicit `main` branch dependencies on `rspec-*` gems after `rspec-mocks` 3.10.2 is released. ([@rabotyaga][])
194
+
195
+ ### Bugs Fixed
196
+
197
+ * [#695](https://github.com/toptal/chewy/pull/695): Clear the scroll by id after completing `scroll_batches`. ([@socialchorus][])
198
+ * [#749](https://github.com/toptal/chewy/pull/749): Avoid importing everything when given an empty relation. ([@JF-Lalonde][], [@dalthon][])
199
+ * [#736](https://github.com/toptal/chewy/pull/736): Fix nil children when using witchcraft. ([@taylor-au][])
200
+
201
+ ## 5.2.0 (2021-01-28)
202
+
203
+ ### Changes
204
+
205
+ * [#734](https://github.com/toptal/chewy/pull/734): Add support for Ruby 3. ([@lowang][])
206
+ * [#735](https://github.com/toptal/chewy/pull/735): Correct deprecation warning for Elasticsearch 5.6 to 6: empty query for`_delete_by_query`, delete by alias, `index_already_exists_exception` renaming. ([@bhacaz][])
207
+ * [#733](https://github.com/toptal/chewy/pull/733): Update gemspec dependencies for Rails. Update CI gemfiles and matrix to tests against current LTS Rails versions. ([@bhacaz][])
208
+ * Tweak some wording and formatting; add a note about compatibility; update copyright; remove broken logo; update the CI badge. ([@bbatsov][])
209
+ * [#714](https://github.com/toptal/chewy/pull/714): Update instructions for AWS ElasticSearch. ([@olancheg][])
210
+ * [#728](https://github.com/toptal/chewy/pull/728): Fix more ruby 2.7 keyword params deprecation warnings. ([@aglushkov][])
211
+ * [#715](https://github.com/toptal/chewy/pull/715): Fixed all deprecation warnings in Ruby 2.7. ([@gseddon][])
212
+ * [#718](https://github.com/toptal/chewy/pull/718): Added Ruby 2.7 to CircleCI config. ([@mrzasa][])
213
+ * [#707](https://github.com/toptal/chewy/pull/707): Allow configuration of Active Job queue name. ([@mrzasa][])
214
+ * [#711](https://github.com/toptal/chewy/pull/711): Setup CI on CircleCI. ([@mrzasa][])
215
+ * [#710](https://github.com/toptal/chewy/pull/710): Fix deprecation warning for constructing new `BigDecimal`. ([@AlexVPopov][])
216
+
217
+ ## 5.1.0 (2019-09-24)
218
+
219
+ ### Changes
220
+
221
+ * [#657](https://github.com/toptal/chewy/pull/657): **(Breaking)** Add support for multiple indices in request. ([@pyromaniac][])
222
+ * [#647](https://github.com/toptal/chewy/pull/647): **(Breaking)** Support `search_type`, `request_cache`, and `allow_partial_search_results` as query string parameters. ([@mattzollinhofer][])
223
+ * [#606](https://github.com/toptal/chewy/pull/606): Speed up imports when `bulk_size` is specified. ([@yahooguntu][])
224
+ * [#682](https://github.com/toptal/chewy/pull/682): Insert `RequestStrategy` middleware before `ActionDispatch::ShowExceptions`. ([@dck][])
225
+
226
+ ## 5.0.0 (2018-02-13)
227
+
228
+ ### Changes
229
+
230
+ * **(Breaking)** Align the gem version with the most recent ElasticSearch version we support.
231
+ * **(Breaking)** `Chewy.default_field_type` is `text` now.
232
+ * **(Breaking)** `Chewy::Stash` was split onto two indexes - `Chewy::Stash::Specification` and `Chewy::Stash::Journal`.
233
+ * **(Breaking)** Data for journal and specification is stored in binary fields base64-encoded to bypass the limits of other fields.
234
+ * **(Breaking)** [#626](https://github.com/toptal/chewy/pull/626): Don't underscore suggested index name. ([@dm1try][])
235
+ * [#598](https://github.com/toptal/chewy/pull/598): `pipeline` import option support. ([@eManPrague][])
236
+ * [#625](https://github.com/toptal/chewy/pull/625): Proper Rails check. ([@nattfodd][])
237
+ * [#623](https://github.com/toptal/chewy/pull/623): Bypass strategy performance improvements. ([@DNNX][])
238
+ * [#620](https://github.com/toptal/chewy/pull/620): Avoid index update calls for empty data. ([@robertasg][])
239
+ * Do not underscore suggested index name on `Chewy::Index.index_name` call.
240
+ * It is possible now to call `root` method several times inside a single type definition, the options will be merged. Also, the block isn't required anymore.
241
+ * [#565](https://github.com/toptal/chewy/pull/565): Fixed some Sequel deprecation warnings. ([@arturtr][])
242
+ * [#577](https://github.com/toptal/chewy/pull/577): Fixed some Sequel deprecation warnings. ([@matchbookmac][])
119
243
 
120
- ## Changes
244
+ ### Bugs Fixed
121
245
 
122
- * Add `preference` param to Query (@menglewis, #443)
246
+ * [#593](https://github.com/toptal/chewy/pull/593): Fixed index settings logic error. ([@yahooguntu][])
247
+ * [#567](https://github.com/toptal/chewy/pull/567): Missed check in higlight method. ([@heartfulbird][])
123
248
 
124
- * Add the `track_scores` option to the query; `_score` to be computed and tracked even when there are no `_score` in sort. (@dmitry, #417)
249
+ -----------------------------------------------------------------------------------
125
250
 
126
- * Confugurable `Chewy.indices_path` (@robacarp, #414, #433, #439)
251
+ ## 0.10.1
127
252
 
128
- * [Journaling](https://github.com/toptal/chewy/#journaling) implementation (@sergey-kintsel, #409, #425, #428, #432, #434, #463)
253
+ ### Changes
129
254
 
130
- * Minitest helpers (@robacarp, #396)
255
+ * [#558](https://github.com/toptal/chewy/pull/558): Improved parallel worker titles
131
256
 
132
- * `Chewy::Query#unlimited` to fetch all the documents (@sergey-kintsel, #393)
257
+ ### Bugs Fixed
133
258
 
134
- * `Chewy::Query#exists?` (@sergey-kintsel, #386)
259
+ * [#557](https://github.com/toptal/chewy/pull/557): Fixed request strategy initial debug message
260
+ * [#556](https://github.com/toptal/chewy/pull/556): Fixed will objects paginated array initialization when pagination was not used
261
+ * [#555](https://github.com/toptal/chewy/pull/555): Fixed fields symbol/string value
262
+ * [#554](https://github.com/toptal/chewy/pull/554): Fixed root field value proc
135
263
 
136
- * Import otimizations (#381, #376)
264
+ ## 0.10.0
137
265
 
138
- * Additional import optimization technique - [raw import](https://github.com/toptal/chewy/#raw-import) (@DNNX, #375)
266
+ ### Breaking changes
139
267
 
140
- * `weight` scoring dunction was added to the search DSL (@sevab, #380)
268
+ * Changed behavior of `Chewy::Index.index_name`, it doesn't cache the values anymore.
269
+ * Journal interfaces, related code and rake tasks were completely refactored and are not compatible with the previous version.
141
270
 
142
- * Rake tasks support multiple indexes and exceptions: `rake chewy:reset[users,projects]`, `rake chewy:update[-projects]`
271
+ ### Changes
143
272
 
273
+ * [#543](https://github.com/toptal/chewy/pull/543): Less noisy strategies logging ([@Borzik][])
274
+ * Parallel import and the corresponding rake tasks.
275
+ * [#532](https://github.com/toptal/chewy/pull/532): `:shoryuken` async strategy ([@josephchoe][])
276
+ * Deprecate `Chewy::Index.build_index_name`.
277
+ * Rename `Chewy::Index.default_prefix` to `Chewy::Index.prefix`. The old one is deprecated.
278
+ * Add `Chewy::Type.derivable_name` for consistency.
279
+ * Rename `Chewy::Index.derivable_index_name` to `Chewy::Index.derivable_name`.
280
+ `Chewy::Index.derivable_index_name` and `Chewy::Type.derivable_index_name` are deprecated.
281
+ * Use normal YAML loading, for the config, we don't need the safe one.
282
+ * [#526](https://github.com/toptal/chewy/pull/526): `default_root_options` option ([@barthez][])
283
+ * Partial indexing ability: it is possible to update only specified fields.
284
+ * New cool `rake chewy:deploy` task.
285
+ * Selective reset (resets only if necessary): `rake chewy:upgrade`.
286
+ * Consistency checks and synchronization: `rake chewy:sync`.
287
+ * Brand new request DSL. Supports ElasticSearch 2 and 5, better usability, architecture and docs.
288
+ * Add Kaminari 1.0 support.
289
+ * [#483](https://github.com/toptal/chewy/pull/483): `skip_index_creation_on_import` option ([@sergey-kintsel][])
290
+ * [#481](https://github.com/toptal/chewy/pull/481): Ability to use procs for settings ([@parallel588][])
291
+ * [#467](https://github.com/toptal/chewy/pull/467): Bulk indexing optimizations with new additional options ([@eproulx-petalmd][])
292
+ * [#438](https://github.com/toptal/chewy/pull/438): Configurable sidekiq options ([@averell23][])
293
+
294
+ ## 0.9.0
295
+
296
+ ### Changes
297
+
298
+ * [#443](https://github.com/toptal/chewy/pull/443): Add `preference` param to Query ([@menglewis][])
299
+ * [#417](https://github.com/toptal/chewy/pull/417): Add the `track_scores` option to the query; `_score` to be computed and tracked even when there are no `_score` in sort. ([@dmitry][])
300
+ * [#414](https://github.com/toptal/chewy/pull/414), [#433](https://github.com/toptal/chewy/pull/433), [#439](https://github.com/toptal/chewy/pull/439): Confugurable `Chewy.indices_path` ([@robacarp][])
301
+ * [#409](https://github.com/toptal/chewy/pull/409), [#425](https://github.com/toptal/chewy/pull/425), [#428](https://github.com/toptal/chewy/pull/428), [#432](https://github.com/toptal/chewy/pull/432), [#434](https://github.com/toptal/chewy/pull/434), [#463](https://github.com/toptal/chewy/pull/463): [Journaling](https://github.com/toptal/chewy/#journaling) implementation ([@sergey-kintsel][])
302
+ * [#396](https://github.com/toptal/chewy/pull/396): Minitest helpers ([@robacarp][])
303
+ * [#393](https://github.com/toptal/chewy/pull/393): `Chewy::Query#unlimited` to fetch all the documents ([@sergey-kintsel][])
304
+ * [#386](https://github.com/toptal/chewy/pull/386): `Chewy::Query#exists?` ([@sergey-kintsel][])
305
+ * [#381](https://github.com/toptal/chewy/pull/381), [#376](https://github.com/toptal/chewy/pull/376): Import otimizations
306
+ * [#375](https://github.com/toptal/chewy/pull/375): Additional import optimization technique - [raw import](https://github.com/toptal/chewy/#raw-import) ([@DNNX][])
307
+ * [#380](https://github.com/toptal/chewy/pull/380): `weight` scoring dunction was added to the search DSL ([@sevab][])
308
+ * Rake tasks support multiple indexes and exceptions: `rake chewy:reset[users,projects]`, `rake chewy:update[-projects]`
144
309
  * Witchcraft™ supports dynamically generated procs with variables from closure.
310
+ * Added `Query#preference` for specifying shard replicas to query against. ([@menglewis][])
145
311
 
146
- * Added `Query#preference` for specifying shard replicas to query against. (@menglewis)
147
-
148
- ## Bugfixes
149
-
150
- * `.script_fields` method in the Index class (@dmitry, #415)
151
-
152
- * Fix routing_missing_exception on delete with parent missing (@guigs, #398)
312
+ ### Bugs Fixed
153
313
 
154
- * Sequesl custom primary keys handling fix (@okliv, #385)
314
+ * [#415](https://github.com/toptal/chewy/pull/415): `.script_fields` method in the Index class ([@dmitry][])
315
+ * [#398](https://github.com/toptal/chewy/pull/398): Fix routing_missing_exception on delete with parent missing ([@guigs][])
316
+ * [#385](https://github.com/toptal/chewy/pull/385): Sequel custom primary keys handling fix ([@okliv][])
317
+ * [#374](https://github.com/toptal/chewy/pull/374): Bulk import fixes ([@0x0badc0de][])
155
318
 
156
- * Bulk import fixes (@0x0badc0de, #374)
319
+ ## 0.8.4
157
320
 
158
- # Version 0.8.4
159
-
160
- ## Changes
321
+ ### Changes
161
322
 
162
323
  * Brand new import `:bulk_size` option, set desired ElasticSearch bulk size in bytes
163
-
164
324
  * Witchcraft™ technology
165
-
166
- * Configurable per-type default import options (@barthez, #341)
167
-
168
- * Various codebase optimizations (@DNNX, @pyromaniac)
169
-
325
+ * [#341](https://github.com/toptal/chewy/pull/341): Configurable per-type default import options ([@barthez][])
326
+ * Various codebase optimizations ([@DNNX][], [@pyromaniac][])
170
327
  * `update_index` Rspec matcher messages improvements
171
-
172
328
  * `:all` rake tasks deprecation
173
-
174
- * Scoped notification subscriptions in rake tasks (@0x0badc0de, #335)
175
-
176
- * Async strategies workers accept options (@dnd, #321)
177
-
178
- * Prefix is configurable per-index (@mikeyhogarth, #314)
179
-
180
- * Ability to pass proc for transport configuration (@feymartynov, @reidab, #302, #339)
181
-
182
- * ElasticSearch 2 support (@sergeygaychuk, #297)
183
-
329
+ * [#335](https://github.com/toptal/chewy/pull/335): Scoped notification subscriptions in rake tasks ([@0x0badc0de][])
330
+ * [#321](https://github.com/toptal/chewy/pull/321): Async strategies workers accept options ([@dnd][])
331
+ * [#314](https://github.com/toptal/chewy/pull/314): Prefix is configurable per-index ([@mikeyhogarth][])
332
+ * [#302](https://github.com/toptal/chewy/pull/302), [#339](https://github.com/toptal/chewy/pull/339): Ability to pass proc for transport configuration ([@feymartynov][], [@reidab][])
333
+ * [#297](https://github.com/toptal/chewy/pull/297): ElasticSearch 2 support ([@sergeygaychuk][])
184
334
  * Accessing types with methods is deprecated. Use `MyIndex::MyType` constant reference instead of `MyIndex.my_type` method.
335
+ * [#294](https://github.com/toptal/chewy/pull/294): Sequel adapter improvements ([@mrbrdo][])
185
336
 
186
- * Sequel adapter improvements (@mrbrdo, #294)
187
-
188
- ## Bugfixes
189
-
190
- * Mongoid atomic strategy fix (#325)
191
-
192
- * Method missing fix (@jesjos, #324)
193
-
194
- * Hash fields composition fix (@eproulx-petalmd, #319)
337
+ ### Bugs Fixed
195
338
 
196
- * Better errors handling in strategies (@barthez, #306)
339
+ * [#325](https://github.com/toptal/chewy/pull/325): Mongoid atomic strategy fix
340
+ * [#324](https://github.com/toptal/chewy/pull/324): Method missing fix ([@jesjos][])
341
+ * [#319](https://github.com/toptal/chewy/pull/319): Hash fields composition fix ([@eproulx-petalmd][])
342
+ * [#306](https://github.com/toptal/chewy/pull/306): Better errors handling in strategies ([@barthez][])
343
+ * [#303](https://github.com/toptal/chewy/pull/303): Assets strategies silencer fix for Rails 5 API mode ([@clupprich][])
197
344
 
198
- * Assets strategies silencer fix for Rails 5 API mode (@clupprich, #303)
345
+ ## 0.8.3
199
346
 
200
- # Version 0.8.3
201
-
202
- ## Breaking changes:
347
+ ### Breaking changes:
203
348
 
204
349
  * `Chewy.atomic` and `Chewy.urgent_update=` methods was removed from the codebase, use `Chewy.strategy` block instead.
205
-
206
350
  * `delete_from_index?` hook is removed from the codebase.
207
351
 
208
- ## Changes
352
+ ### Changes
209
353
 
210
354
  * Sequel support completely reworked to use common ORM implementations + better sequel specs covarage.
211
355
 
212
- ## Bugfixes
356
+ ### Bugs Fixed
213
357
 
214
358
  * Sequel objects transactional destruction fix
215
-
216
- * Correct Rspec mocking framework checking (@mainameiz)
217
-
359
+ * Correct Rspec mocking framework checking ([@mainameiz][])
218
360
  * Atomic strategy is now compatible with custom ids proc.
361
+ * Safe unsubscribe on import ([@marshall-lee][])
362
+ * Correct custom assets path silencer ([@davekaro][])
219
363
 
220
- * Safe unsubscribe on import (@marshall-lee)
221
-
222
- * Correct custom assets path silencer (@davekaro)
223
-
224
- # Version 0.8.2
225
-
226
- ## Changes
227
-
228
- * ActiveJob strategy by @mkcode
229
-
230
- * Async strategies tweak (@AndreySavelyev)
231
-
232
- * GeoPoint readme (@joonty)
233
-
234
- * Multiple grammar fixes and code improvements (@biow0lf)
364
+ ## 0.8.2
235
365
 
236
- * Named aggregations by @caldwecr
366
+ ### Changes
237
367
 
238
- * Sequel adapter by @jirutka
368
+ * ActiveJob strategy by [@mkcode][]
369
+ * Async strategies tweak ([@AndreySavelyev][])
370
+ * GeoPoint readme ([@joonty][])
371
+ * Multiple grammar fixes and code improvements ([@biow0lf][])
372
+ * Named aggregations by [@caldwecr][]
373
+ * Sequel adapter by [@jirutka][]
374
+ * Rake helper methods extracted ([@caldwecr][], [@jirutka][])
375
+ * Multiple grammar fixes ([@henrebotha][])
376
+ * Ability to pass a proc to `update_index` to define updating index dynamically ([@SeTeM][])
239
377
 
240
- * Rake helper methods extracted (@caldwecr, @jirutka)
241
-
242
- * Multiple grammar fixes (@henrebotha)
243
-
244
- * Ability to pass a proc to `update_index` to define updating index dynamically (@SeTeM)
245
-
246
-
247
- ## Bugfixes
378
+ ### Bugs Fixed
248
379
 
249
380
  * Fixed transport logger and tracer configuration
250
381
 
251
- # Version 0.8.1
382
+ ## 0.8.1
252
383
 
253
- ## Bugfixes
384
+ ### Bugs Fixed
254
385
 
255
386
  * Added support of elasticsearch-ruby 1.0.10
256
387
 
257
- # Version 0.8.0
388
+ ## 0.8.0
258
389
 
259
- ## Breaking changes:
390
+ ### Breaking changes:
260
391
 
261
392
  * `:atomic` and `:urgent` strategies are using `import!` method raising exceptions
262
393
 
263
- ## Changes
394
+ ### Changes
264
395
 
265
396
  * Crutches™ technology
266
-
267
- * Added `.script_fields` chainable method to query (@ka8725)
268
-
269
- * `update_index` matcher mocha support (@lardawge)
270
-
397
+ * Added `.script_fields` chainable method to query ([@ka8725][])
398
+ * `update_index` matcher mocha support ([@lardawge][])
271
399
  * `:resque` async strategy
400
+ * `:sidekiq` async strategy (inspired by [@sharkzp][])
401
+ * Added `Query#search_type` for `search_type` request option setup ([@marshall-lee][])
272
402
 
273
- * `:sidekiq` async strategy (inspired by @sharkzp)
274
-
275
- * Added `Query#search_type` for `search_type` request option setup (@marshall-lee)
276
-
277
- ## Bugfixes
403
+ ### Bugs Fixed
278
404
 
279
405
  * Rails 4.2 migrations are not raising UndefinedUpdateStrategy anymore on data updates
406
+ * Mongoid random failing specs fixes ([@marshall-lee][])
280
407
 
281
- * Mongoid random failing specs fixes (@marshall-lee)
282
-
283
- # Version 0.7.0
284
-
285
- ## Breaking changes:
408
+ ## 0.7.0
286
409
 
287
- * `Chewy.use_after_commit_callbacks = false` returns previous RDBMS behavior
288
- in tests
410
+ ### Breaking changes:
289
411
 
412
+ * `Chewy.use_after_commit_callbacks = false` returns previous RDBMS behavior in tests
290
413
  * ActiveRecord import is now called after_commit instead of after_save and after_destroy
291
-
292
414
  * Import now respects default scope and removes unmatched documents
293
-
294
415
  * `delete_from_index?` method is deprecated, use
295
-
296
416
  ```ruby
297
417
  define_type User, delete_if: ->{ removed? } do
298
418
  ...
299
419
  end
300
420
  ```
301
-
302
421
  * `Chewy.request_strategy` to configure action controller's request wrapping strategy
303
-
304
422
  * `Chewy.root_strategy` to configure the first strategy in stack
305
-
306
423
  * Default strategy for controller actions is `:atomic`
307
-
308
424
  * Default strategy for activerecord migrations is `:bypass`
309
-
310
425
  * Default strategy for sandbox console is `:bypass`
311
-
312
426
  * Default strategy for rails console is `:urgent`
313
-
314
427
  * `Chewy.configuration` was renamed to `Chewy.settings`
315
-
316
- * Reworked index update strategies implementation. `Chewy.atomic`
317
- and `Chewy.urgent_update` are now deprecated in favour of the new
318
- `Chewy.strategy` API.
319
-
320
- * Loading objects for object-sourced types using `wrap` method is
321
- deprecated, `load_one` method should be used instead. Or method name
322
- might be passed to `define_type`:
323
-
428
+ * Reworked index update strategies implementation. `Chewy.atomic` and `Chewy.urgent_update` are now deprecated in favour of the new `Chewy.strategy` API.
429
+ * Loading objects for object-sourced types using `wrap` method is deprecated, `load_one` method should be used instead. Or method name might be passed to `define_type`:
324
430
  ```ruby
325
431
  class GeoData
326
432
  def self.get_data(elasticsearch_document)
@@ -334,14 +440,11 @@
334
440
  end
335
441
  ```
336
442
 
337
- ## Changes
338
-
339
- * Multiple enhancements by @DNNX
340
-
341
- * Added `script_fields` to search criteria (@ka8725)
443
+ ### Changes
342
444
 
445
+ * Multiple enhancements by [@DNNX][]
446
+ * Added `script_fields` to search criteria ([@ka8725][])
343
447
  * ORM adapters now completely relies on the default scope. This means every scope or objects passed to import are merged with default scope so basically there is no need to define `delete_if` block. Default scope strongly restricts objects which may land in the current index.
344
-
345
448
  ```ruby
346
449
  define_type Country.where("rating > 30") do
347
450
 
@@ -354,11 +457,7 @@
354
457
  CountriesIndex::Country.import(Country.where("rating < 50").to_a)
355
458
  CountriesIndex::Country.import(Country.where("rating < 50").pluck(:id))
356
459
  ```
357
-
358
- * Object adapter supports custom initial import and load methods, so it
359
- could be configured to be used with procs or any class responding to `call`
360
- method.
361
-
460
+ * Object adapter supports custom initial import and load methods, so it could be configured to be used with procs or any class responding to `call` method.
362
461
  ```ruby
363
462
  class GeoData
364
463
  def self.call
@@ -371,9 +470,7 @@
371
470
  ...
372
471
  end
373
472
  ```
374
-
375
473
  * Nested fields value procs additional arguments: parent objects.
376
-
377
474
  ```ruby
378
475
  define_type Country do
379
476
  field :name
@@ -382,177 +479,133 @@
382
479
  end
383
480
  end
384
481
  ```
385
-
386
482
  * Implemented basic named scopes
387
483
 
388
- ## Bugfixes
389
-
390
- * `script_score` allow options (@joeljunstrom)
391
-
392
- * Chewy indexes eaged loading fixes (@leemhenson)
484
+ ### Bugs Fixed
393
485
 
486
+ * `script_score` allow options ([@joeljunstrom][])
487
+ * Chewy indexes eaged loading fixes ([@leemhenson][])
394
488
  * `Chewy::Index.import nil` imports nothing instead of initial data
395
489
 
396
- # Version 0.6.2
397
-
398
- ## Changes
490
+ ## 0.6.2
399
491
 
400
- * document root id custom value option (@baronworks)
492
+ ### Changes
401
493
 
402
- ## Bugfixes
494
+ * document root id custom value option ([@baronworks][])
403
495
 
404
- * Removed decay function defaults (@Linuus)
496
+ ### Bugs Fixed
405
497
 
498
+ * Removed decay function defaults ([@Linuus][])
406
499
  * Correct config file handling in case of empty file
407
500
 
408
- # Version 0.6.1
409
-
410
- ## Changes
501
+ ## 0.6.1
411
502
 
412
- * `min_score` query option support (@jshirley)
503
+ ### Changes
413
504
 
505
+ * `min_score` query option support ([@jshirley][])
414
506
  * `Chewy::Query#find` method for finding documents by id
415
507
 
416
- # Version 0.6.0
508
+ ## 0.6.0
417
509
 
418
- ## Changes
419
-
420
- * Mongoid support YaY! (@fabiotomio, @leemhenson)
510
+ ### Changes
421
511
 
512
+ * Mongoid support YaY! ([@fabiotomio][], [@leemhenson][])
422
513
  * `urgent: true` option for `update_index` is deprecated and will be removed soon, use `Chewy.atomic` instead
514
+ * `timeout` and `timed_out` support ([@MarkMurphy][])
515
+ * will_paginate support ([@josecoelho][])
423
516
 
424
- * `timeout` and `timed_out` support (@MarkMurphy)
425
-
426
- * will_paginate support (@josecoelho)
427
-
428
- ## Bugfixes
517
+ ### Bugs Fixed
429
518
 
430
- * All the query chainable methods delegated to indexes and types (partially @Linuus)
519
+ * All the query chainable methods delegated to indexes and types (partially [@Linuus][])
431
520
 
432
- # Version 0.5.2
521
+ ## 0.5.2
433
522
 
434
- ## Breaking changes:
523
+ ### Breaking changes:
435
524
 
436
525
  * `Chewy::Type::Base` removed in favour of using `Chewy::Type` as a base class for all types
437
526
 
438
- ## Changes
527
+ ### Changes
439
528
 
440
529
  * `Chewy.massacre` aliased to `Chewy.delete_all` method deletes all the indexes with current prefix
441
530
 
442
- ## Bugfixes:
443
-
444
- * Advanced type classes resolving (@inbeom)
531
+ ### Bugs Fixed:
445
532
 
533
+ * Advanced type classes resolving ([@inbeom][])
446
534
  * `import` ignores nil
447
535
 
448
- # Version 0.5.1
449
-
450
- ## Changes:
451
-
452
- * `chewy.yml` Rails generator (@jirikolarik)
536
+ ## 0.5.1
453
537
 
454
- * Parent-child mappings feature support (@inbeom)
538
+ ### Changes:
455
539
 
540
+ * `chewy.yml` Rails generator ([@jirikolarik][])
541
+ * Parent-child mappings feature support ([@inbeom][])
456
542
  * `Chewy::Index.total_count` and `Chewy::Type::Base.total_count`
543
+ * `Chewy::Type::Base.reset` method. Deletes all the type documents and performs import ([@jondavidford][])
544
+ * Added `Chewy::Query#delete_all` scope method using delete by query ES feature ([@jondavidford][])
545
+ * Rspec 3 `update_index` matcher support ([@jimmybaker][])
546
+ * Implemented function scoring ([@averell23][])
457
547
 
458
- * `Chewy::Type::Base.reset` method. Deletes all the type documents and performs import (@jondavidford)
459
-
460
- * Added `Chewy::Query#delete_all` scope method using delete by query ES feature (@jondavidford)
461
-
462
- * Rspec 3 `update_index` matcher support (@jimmybaker)
548
+ ### Bugs Fixed:
463
549
 
464
- * Implemented function scoring (@averell23)
550
+ * Indexed eager-loading fix ([@leemhenson][])
551
+ * Field type deriving nested type support fix ([@rschellhorn][])
465
552
 
466
- ## Bugfixes:
553
+ ## 0.5.0
467
554
 
468
- * Indexed eager-loading fix (@leemhenson)
469
-
470
- * Field type deriving nested type support fix (@rschellhorn)
471
-
472
- # Version 0.5.0
473
-
474
- ## Breaking changes:
555
+ ### Breaking changes:
475
556
 
476
557
  * 404 exception (IndexMissingException) while query is swallowed and treated like an empty result set.
477
-
478
558
  * `load` and `preload` for queries became lazy. Might be partially incompatible.
479
-
480
559
  * Changed mapping behavior: multi-fields are defined in conformity with ElasticSearch documentation (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_multi_fields.html#_multi_fields)
481
560
 
482
- ## Changes:
483
-
484
- * `suggest` query options support (@rschellhorn).
561
+ ### Changes:
485
562
 
563
+ * `suggest` query options support ([@rschellhorn][]).
486
564
  * Added hash data support. How it is possible to pass hashes to import.
487
-
488
565
  * `rake chewy:reset` and `rake chewy:update` paramless acts as `rake chewy:reset:all` and `rake chewy:update:all` respectively
489
-
490
566
  * Added `delete_from_index?` API method for custom deleted objects marking.
491
-
492
567
  * Added `post_filter` API, working the same way as filters.
493
-
494
568
  * Added chainable `strategy` query method.
495
-
496
569
  * Aliasing is performed in index create request for ElasticSearch >= 1.1.
497
-
498
570
  * `preload` scope method loads ORM/ODM objects in background.
499
-
500
571
  * `load` method `:only` and `:except` options to specify load types.
501
-
502
572
  * `highlight` and `rescore` query options support.
503
-
504
573
  * config/chewy.yml ERB support.
505
574
 
506
- ## Bugfixes:
575
+ ### Bugs Fixed:
507
576
 
508
577
  * Fixed `missing` and `exists` filters DSL constructors.
509
-
510
578
  * Reworked index data composing.
511
-
512
- * Support for Kaminari new PaginatableArray behavior (@leemhenson)
513
-
579
+ * Support for Kaminari new PaginatableArray behavior ([@leemhenson][])
514
580
  * Correct waiting for status. After index creation, bulk import, and deletion.
581
+ * [#23](https://github.com/toptal/chewy/pull/23): Fix "wrong constant name" with namespace models
515
582
 
516
- * Fix #23 "wrong constant name" with namespace models
517
-
518
- # Version 0.4.0
583
+ ## 0.4.0
519
584
 
520
585
  * Changed `update_index` matcher behavior. Now it compare array attributes position-independently.
521
-
522
- * Search aggregations API support (@arion).
523
-
586
+ * Search aggregations API support ([@arion][]).
524
587
  * Chewy::Query#facets called without params performs the request and returns facets.
525
-
526
588
  * Added `Type.template` DSL method for root objects dynamic templates definition. See [mapping.rb](lib/chewy/type/mapping.rb) for more details.
527
-
528
- * ActiveRecord adapter custom `primary_key` support (@matthee).
529
-
589
+ * ActiveRecord adapter custom `primary_key` support ([@matthee][]).
530
590
  * Urgent update now clears association cache in ActiveRecord to ensure latest changes are imported.
531
-
532
591
  * `import` now creates index before performing.
533
-
534
592
  * `Chewy.configuration[:wait_for_status]` option. Can be set to `red`, `yellow` or `green`. If set - chewy will wait for cluster status before creating, deleting index and import. Useful for specs.
535
593
 
536
- # Version 0.3.0
594
+ ## 0.3.0
537
595
 
538
596
  * Added `Chewy.configuration[:index]` config to setup common indexes options.
539
-
540
597
  * `Chewy.client_options` replaced with `Chewy.configuration`
541
-
542
598
  * Using source filtering instead of fields filter (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-request-source-filtering.html).
543
599
 
544
- # Version 0.2.3
600
+ ## 0.2.3
545
601
 
546
602
  * `.import!` indexes method, raises import errors.
547
-
548
603
  * `.import!` types method, raises import errors. Useful for specs.
549
604
 
550
- # Version 0.2.2
551
-
552
- * Support for `none` scope (@undr).
553
-
554
- * Auto-resolved analyzers and analyzers repository (@webgago):
605
+ ## 0.2.2
555
606
 
607
+ * Support for `none` scope ([@undr][]).
608
+ * Auto-resolved analyzers and analyzers repository ([@webgago][]):
556
609
  ```ruby
557
610
  # Setting up analyzers repository:
558
611
  Chewy.analyzer :title_analyzer, type: 'custom', filter: %w(lowercase icu_folding title_nysiis)
@@ -563,69 +616,42 @@
563
616
  settings analysis: {analyzer: ['title_analyzer', {one_more_analyzer: {type: 'custom', tokenizer: 'lowercase'}}]}
564
617
  end
565
618
  ```
566
-
567
619
  `title_analyzer` here will be automatically resolved and passed to index mapping
568
620
 
569
- # Version 0.2.0
621
+ ## 0.2.0
570
622
 
571
623
  * Reworked import error handling. Now all the import errors from ElasticSearch are handled properly, also import method returns true of false depending on the import process success.
572
-
573
624
  * `Chewy::Index.import` now takes types hash as argument within options hash:
574
625
 
575
626
  `PlacesIndex.import city: City.enabled, country: Country.enabled, refresh: false`
576
-
577
627
  * Old indexes cleanup after reset.
578
-
579
628
  * Added index prefixes.
580
-
581
629
  * `define_type` now takes options for adapter.
582
-
583
630
  * `chewy:reset` and `chewy:reset:all` rake tasks are now trying to reset index with zero downtime if it is possible.
584
-
585
631
  * Added `chewy:update:all` rake task.
586
-
587
632
  * Methods `.create`, `.create!`, `.delete`, `.delete`, `reset!` are now supports index name suffix passing as the first argument. See [actions.rb](lib/chewy/index/actions.rb) for more details.
588
-
589
633
  * Method `reset` renamed to `reset!`.
590
-
591
634
  * Added common loading scope for AR adapter. Also removed scope proc argument, now it executes just in main load scope context.
592
-
593
635
  `CitiesIndex.all.load(scope: {city: City.include(:country)})`
594
636
  `CitiesIndex.all.load(scope: {city: -> { include(:country) }})`
595
637
  `CitiesIndex.all.load(scope: ->{ include(:country) })`
596
638
 
597
- # Version 0.1.0
639
+ ## 0.1.0
598
640
 
599
641
  * Added filters simplified DSL. See [filters.rb](lib/chewy/query/filters.rb) for more details.
600
-
601
642
  * Queries and filters join system reworked. See [query.rb](lib/chewy/query.rb) for more details.
602
-
603
643
  * Added query `merge` method
604
-
605
- * `update_index` matcher now wraps expected block in `Chewy.atomic` by default.
606
- This behaviour can be prevented with `atomic: false` option passing
607
-
644
+ * `update_index` matcher now wraps expected block in `Chewy.atomic` by default. This behaviour can be prevented with `atomic: false` option passing
608
645
  ```ruby
609
646
  expect { user.save! }.to update_index('users#user', atomic: false)
610
647
  ```
611
-
612
648
  * Renamed `Chewy.observing_enabled` to `Chewy.urgent_update` with `false` as default
613
-
614
- * `update_elasticsearch` renamed to `update_index`, added `update_index`
615
- `:urgent` option
616
-
617
- * Added import ActiveSupport::Notifications instrumentation
618
- `ActiveSupport::Notifications.subscribe('import_objects.chewy') { |*args| }`
619
-
620
- * Added `types!` and `only!` query chain methods, which purges previously
621
- chained types and fields
622
-
649
+ * `update_elasticsearch` renamed to `update_index`, added `update_index` `:urgent` option
650
+ * Added import ActiveSupport::Notifications instrumentation `ActiveSupport::Notifications.subscribe('import_objects.chewy') { |*args| }`
651
+ * Added `types!` and `only!` query chain methods, which purges previously chained types and fields
623
652
  * `types` chain method now uses types filter
624
-
625
653
  * Added `types` query chain method
626
-
627
654
  * Changed types access API:
628
-
629
655
  ```ruby
630
656
  UsersIndex::User # => UsersIndex::User
631
657
  UsersIndex::types_hash['user'] # => UsersIndex::User
@@ -633,37 +659,113 @@
633
659
  UsersIndex.types # => [UsersIndex::User]
634
660
  UsersIndex.type_names # => ['user']
635
661
  ```
636
-
637
662
  * `update_elasticsearch` method name as the second argument
638
663
 
639
664
  ```ruby
640
665
  update_elasticsearch('users#user', :self)
641
666
  update_elasticsearch('users#user', :users)
642
667
  ```
643
-
644
- * Changed index handle methods, removed `index_` prefix. I.e. was
645
- `UsersIndex.index_create`, became `UsersIndex.create`
646
-
647
- * Ability to pass value proc for source object context if arity == 0
648
- `field :full_name, value: ->{ first_name + last_name }` instead of
649
- `field :full_name, value: ->(u){ u.first_name + u.last_name }`
650
-
668
+ * Changed index handle methods, removed `index_` prefix. I.e. was `UsersIndex.index_create`, became `UsersIndex.create`
669
+ * Ability to pass value proc for source object context if arity == 0 `field :full_name, value: ->{ first_name + last_name }` instead of `field :full_name, value: ->(u){ u.first_name + u.last_name }`
651
670
  * Added `.only` chain to `update_index` matcher
652
-
653
- * Added ability to pass ActiveRecord::Relation as a scope for load
654
- `CitiesIndex.all.load(scope: {city: City.include(:country)})`
655
-
671
+ * Added ability to pass ActiveRecord::Relation as a scope for load `CitiesIndex.all.load(scope: {city: City.include(:country)})`
656
672
  * Added method `all` to index for query DSL consistency
657
-
658
673
  * Implemented isolated adapters to simplify adding new ORMs
674
+ * Query DLS chainable methods delegated to index class (no longer need to call MyIndex.search.query, just MyIndex.query)
659
675
 
660
- * Query DLS chainable methods delegated to index class
661
- (no longer need to call MyIndex.search.query, just MyIndex.query)
662
-
663
- # Version 0.0.1
676
+ ## 0.0.1
664
677
 
665
678
  * Query DSL
666
-
667
679
  * Basic index handling
668
-
669
680
  * Initial version
681
+
682
+ [@0x0badc0de]: https://github.com/0x0badc0de
683
+ [@AgeevAndrew]: https://github.com/AgeevAndrew
684
+ [@aglushkov]: https://github.com/aglushkov
685
+ [@AlexVPopov]: https://github.com/AlexVPopov
686
+ [@AndreySavelyev]: https://github.com/AndreySavelyev
687
+ [@afg419]: https://github.com/afg419
688
+ [@arion]: https://github.com/arion
689
+ [@arturtr]: https://github.com/arturtr
690
+ [@averell23]: https://github.com/averell23
691
+ [@baronworks]: https://github.com/baronworks
692
+ [@barthez]: https://github.com/barthez
693
+ [@bbatsov]: https://github.com/bbatsov
694
+ [@bhacaz]: https://github.com/bhacaz
695
+ [@biow0lf]: https://github.com/biow0lf
696
+ [@Borzik]: https://github.com/Borzik
697
+ [@caldwecr]: https://github.com/caldwecr
698
+ [@chrisandreae]: https://github.com/chrisandreae
699
+ [@clupprich]: https://github.com/clupprich
700
+ [@dalthon]: https://github.com/dalthon
701
+ [@davekaro]: https://github.com/davekaro
702
+ [@dck]: https://github.com/dck
703
+ [@dm1try]: https://github.com/dm1try
704
+ [@dmitry]: https://github.com/dmitry
705
+ [@dnd]: https://github.com/dnd
706
+ [@DNNX]: https://github.com/DNNX
707
+ [@eManPrague]: https://github.com/eManPrague
708
+ [@eproulx-petalmd]: https://github.com/eproulx-petalmd
709
+ [@fabiotomio]: https://github.com/fabiotomio
710
+ [@feymartynov]: https://github.com/feymartynov
711
+ [@gseddon]: https://github.com/gseddon
712
+ [@guigs]: https://github.com/guigs
713
+ [@heartfulbird]: https://github.com/heartfulbird
714
+ [@henrebotha]: https://github.com/henrebotha
715
+ [@inbeom]: https://github.com/inbeom
716
+ [@jesjos]: https://github.com/jesjos
717
+ [@JF-Lalonde]: https://github.com/JF-Lalonde
718
+ [@jiajiawang]: https://github.com/jiajiawang
719
+ [@jimmybaker]: https://github.com/jimmybaker
720
+ [@jirikolarik]: https://github.com/jirikolarik
721
+ [@jirutka]: https://github.com/jirutka
722
+ [@jkostolansky]: https://github.com/jkostolansky
723
+ [@joeljunstrom]: https://github.com/joeljunstrom
724
+ [@jondavidford]: https://github.com/jondavidford
725
+ [@joonty]: https://github.com/joonty
726
+ [@josecoelho]: https://github.com/josecoelho
727
+ [@josephchoe]: https://github.com/josephchoe
728
+ [@jshirley]: https://github.com/jshirley
729
+ [@ka8725]: https://github.com/ka8725
730
+ [@kolauren]: https://github.com/kolauren
731
+ [@konalegi]: https://github.com/konalegi
732
+ [@lardawge]: https://github.com/lardawge
733
+ [@leemhenson]: https://github.com/leemhenson
734
+ [@Linuus]: https://github.com/Linuus
735
+ [@lowang]: https://github.com/lowang
736
+ [@mainameiz]: https://github.com/mainameiz
737
+ [@MarkMurphy]: https://github.com/MarkMurphy
738
+ [@marshall]: https://github.com/marshall
739
+ [@matchbookmac]: https://github.com/matchbookmac
740
+ [@matthee]: https://github.com/matthee
741
+ [@mattzollinhofer]: https://github.com/mattzollinhofer
742
+ [@menglewis]: https://github.com/menglewis
743
+ [@mikeyhogarth]: https://github.com/mikeyhogarth
744
+ [@milk1000cc]: https://github.com/milk1000cc
745
+ [@mkcode]: https://github.com/mkcode
746
+ [@mpeychich]: https://github.com/mpeychich
747
+ [@mrbrdo]: https://github.com/mrbrdo
748
+ [@mrzasa]: https://github.com/mrzasa
749
+ [@musaffa]: https://github.com/musaffa
750
+ [@nattfodd]: https://github.com/nattfodd
751
+ [@okliv]: https://github.com/okliv
752
+ [@olancheg]: https://github.com/olancheg
753
+ [@parallel588]: https://github.com/parallel588
754
+ [@pyromaniac]: https://github.com/pyromaniac
755
+ [@rabotyaga]: https://github.com/rabotyaga
756
+ [@reidab]: https://github.com/reidab
757
+ [@robacarp]: https://github.com/robacarp
758
+ [@robertasg]: https://github.com/robertasg
759
+ [@rschellhorn]: https://github.com/rschellhorn
760
+ [@sergey-kintsel]: https://github.com/sergey-kintsel
761
+ [@sergeygaychuk]: https://github.com/sergeygaychuk
762
+ [@SeTeM]: https://github.com/SeTeM
763
+ [@sevab]: https://github.com/sevab
764
+ [@sharkzp]: https://github.com/sharkzp
765
+ [@socialchorus]: https://github.com/socialchorus
766
+ [@taylor-au]: https://github.com/taylor-au
767
+ [@TikiTDO]: https://github.com/TikiTDO
768
+ [@undr]: https://github.com/undr
769
+ [@Vitalina-Vakulchyk]: https://github.com/Vitalina-Vakulchyk
770
+ [@webgago]: https://github.com/webgago
771
+ [@yahooguntu]: https://github.com/yahooguntu