]> Piment Noir Git Repositories - poolifier.git/blame - CHANGELOG.md
chore(deps-dev): apply updates
[poolifier.git] / CHANGELOG.md
CommitLineData
522eea03 1# Changelog
2
3All notable changes to this project will be documented in this file.
4
d4abc60a 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
522eea03 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
0c799237
JB
8## [4.4.5](https://github.com/poolifier/poolifier/compare/v4.4.4...v4.4.5) (2024-11-15)
9
10
11### ✨ Polish
12
13* blank lines cleanup ([a7fbf32](https://github.com/poolifier/poolifier/commit/a7fbf324682fcbd325de5f6c53e18112c78d28f7))
14
15
16### 🧪 Tests
17
18* refine some test expectations ([7045f62](https://github.com/poolifier/poolifier/commit/7045f62e8115936329079d6ba3c6df96db85ca42))
19
20
21### 📚 Documentation
22
23* generate typedoc documentation ([92daba4](https://github.com/poolifier/poolifier/commit/92daba400a9710d9a51af1c226f186e6fd2f8472))
24* integrate markdown files to typedoc ([0e2d51f](https://github.com/poolifier/poolifier/commit/0e2d51f99b6dc7656c91c6347386498cdfd881f0))
25* publish documentation ([7da8035](https://github.com/poolifier/poolifier/commit/7da803598cda0e6935733c84fb4a6afa8a8fe4bd))
26
27
28### 🤖 Automation
29
30* **deps-dev:** bump @cspell/eslint-plugin in the regular group ([#2664](https://github.com/poolifier/poolifier/issues/2664)) ([e662b64](https://github.com/poolifier/poolifier/commit/e662b64eab215ea28f22b60e5d8aa744d3a5b47b))
31* **deps-dev:** bump @types/node ([2cf0784](https://github.com/poolifier/poolifier/commit/2cf07845c336b35d4f5ca1869316c64dac477fed))
32* **deps-dev:** bump @types/node ([b321a0e](https://github.com/poolifier/poolifier/commit/b321a0e12b0ebd923f8f162c797d791b57d4df83))
33* **deps-dev:** bump @types/node ([58bd59f](https://github.com/poolifier/poolifier/commit/58bd59fe86d1ab2c848f7bb450105c30b8a6c82c))
34* **deps-dev:** bump @types/node ([e473dd6](https://github.com/poolifier/poolifier/commit/e473dd6bf082194b7a46c2ab77bff327dbe722d2))
35* **deps-dev:** bump @types/node ([b3ea30b](https://github.com/poolifier/poolifier/commit/b3ea30b8b713813b753067c6ff16cdf619d6aa44))
36* **deps-dev:** bump @types/node ([1850017](https://github.com/poolifier/poolifier/commit/185001745978d7ceb6b710ff0e6187ab5b23092b))
37* **deps-dev:** bump @types/node ([7f7a9aa](https://github.com/poolifier/poolifier/commit/7f7a9aa394fdc4157426aef6da9ee0a5e5d3a4aa))
38* **deps-dev:** bump @types/node ([58f9f01](https://github.com/poolifier/poolifier/commit/58f9f012b813d3953659cedc9f519d8f6a7b088b))
39* **deps-dev:** bump @types/node ([1ed9c0c](https://github.com/poolifier/poolifier/commit/1ed9c0c4a4fc1514488a1aa5d86b97de84d5bd90))
40* **deps-dev:** bump @types/node ([2b573ed](https://github.com/poolifier/poolifier/commit/2b573ed91f2fc82139c9bbb4911c20664442dd44))
41* **deps-dev:** bump @types/node ([da96745](https://github.com/poolifier/poolifier/commit/da967455f90913a06558bbd7803ee774c8c5d060))
42* **deps-dev:** bump @types/node in the regular group ([93fa53e](https://github.com/poolifier/poolifier/commit/93fa53e65096493e4b5c18e208957edb169888dc))
43* **deps-dev:** bump @types/node in the regular group ([#2663](https://github.com/poolifier/poolifier/issues/2663)) ([d29c280](https://github.com/poolifier/poolifier/commit/d29c280afb7814bb2b0ba84ef9b79743bfc1ad41))
44* **deps-dev:** bump eslint-plugin-jsdoc in the regular group ([#2665](https://github.com/poolifier/poolifier/issues/2665)) ([7a308ed](https://github.com/poolifier/poolifier/commit/7a308ed039a79de840c1cd730f0aa426d4e61859))
45* **deps-dev:** bump the regular group across 11 directories with 1 update ([#2662](https://github.com/poolifier/poolifier/issues/2662)) ([da74442](https://github.com/poolifier/poolifier/commit/da74442a83e39ea5825c19d9204331aded6c1ef3))
46* **deps-dev:** bump the regular group across 11 directories with 3 updates ([#2661](https://github.com/poolifier/poolifier/issues/2661)) ([0642fd2](https://github.com/poolifier/poolifier/commit/0642fd2278d8cc05bc5c492d7d3e66a3131a6977))
47* **deps-dev:** bump the regular group across 6 directories with 1 update ([#2667](https://github.com/poolifier/poolifier/issues/2667)) ([91db59e](https://github.com/poolifier/poolifier/commit/91db59e3cc35f2f914c897db76ad7a95562563b5))
48* **deps-dev:** bump the regular group with 2 updates ([#2641](https://github.com/poolifier/poolifier/issues/2641)) ([8ce5f10](https://github.com/poolifier/poolifier/commit/8ce5f1069066b61f32cfbc7ab6065c48a0970ba1))
49* **deps-dev:** bump the regular group with 2 updates ([#2655](https://github.com/poolifier/poolifier/issues/2655)) ([3ab5b83](https://github.com/poolifier/poolifier/commit/3ab5b83a29786a48105e8e5a99da850441b561b4))
50* **deps-dev:** bump the regular group with 2 updates ([#2666](https://github.com/poolifier/poolifier/issues/2666)) ([14f6a63](https://github.com/poolifier/poolifier/commit/14f6a63f9a5e5e46c96e6ce56c91cc759ad74743))
51* **deps-dev:** bump the regular group with 3 updates ([#2658](https://github.com/poolifier/poolifier/issues/2658)) ([bd98fde](https://github.com/poolifier/poolifier/commit/bd98fde7b859cba9bf25e6d144ecb60b22aa5d1e))
52* **deps-dev:** bump the regular group with 4 updates ([#2660](https://github.com/poolifier/poolifier/issues/2660)) ([5a7a5f6](https://github.com/poolifier/poolifier/commit/5a7a5f6994b1306ec4d5c3fa4c5145b06702d378))
53* **deps:** bump the regular group across 11 directories with 2 updates ([#2657](https://github.com/poolifier/poolifier/issues/2657)) ([0528e3a](https://github.com/poolifier/poolifier/commit/0528e3a05105454464ca86873339f03138144134))
54* **deps:** bump the regular group across 11 directories with 3 updates ([#2642](https://github.com/poolifier/poolifier/issues/2642)) ([8965906](https://github.com/poolifier/poolifier/commit/896590601700132dd175722b8f3af80da13487a0))
55* **deps:** bump the regular group across 7 directories with 2 updates ([#2659](https://github.com/poolifier/poolifier/issues/2659)) ([aa28701](https://github.com/poolifier/poolifier/commit/aa287014f8535ed314025c0b6d733f401cf542eb))
56
0f078e85
JB
57## [4.4.4](https://github.com/poolifier/poolifier/compare/v4.4.3...v4.4.4) (2024-10-26)
58
59
60### ⚡ Performance
61
62* move tasks promise map entry deletion to a micro task ([722a827](https://github.com/poolifier/poolifier/commit/722a827f60eea10650958617bea72094ed702a08))
63* use micro tasks in tasks handling code paths ([48867d8](https://github.com/poolifier/poolifier/commit/48867d87c92c2cd6f2585db235a064dd6ef854cd))
64
65
66### 📚 Documentation
67
68* publish documentation ([8f8bebc](https://github.com/poolifier/poolifier/commit/8f8bebcae9c533f17fef20cd1ca2daa65616d1cf))
69
711e1bf3
JB
70## [4.4.3](https://github.com/poolifier/poolifier/compare/v4.4.2...v4.4.3) (2024-10-26)
71
72
73### 📚 Documentation
74
75* publish documentation ([557444c](https://github.com/poolifier/poolifier/commit/557444c71a0cd2d0662a63196928ed1388994257))
76
77
78### 🤖 Automation
79
80* add `clean-publish` at npm package releasing ([4f7ba01](https://github.com/poolifier/poolifier/commit/4f7ba0131327d1223bf7bb9cf9906b752a1fbf4e))
81* **deps:** bump the regular group across 11 directories with 2 updates ([#2638](https://github.com/poolifier/poolifier/issues/2638)) ([e3e997e](https://github.com/poolifier/poolifier/commit/e3e997e1d92438b04e8e674da46431122533ac16))
82
a8963987
JB
83## [4.4.2](https://github.com/poolifier/poolifier/compare/v4.4.1...v4.4.2) (2024-10-25)
84
85
86### 🐞 Bug Fixes
87
88* ensure WorkerError similarity between cluster and worker-threads ([1b12ff4](https://github.com/poolifier/poolifier/commit/1b12ff49353f2ba5eadd8fc0241895b050cbc3d4))
89
90
91### ✨ Polish
92
93* factor out WorkerError handling ([6f82891](https://github.com/poolifier/poolifier/commit/6f82891836b8086f8239430dc25abb364fa53e0f))
94
95
96### 📚 Documentation
97
98* cleanup code comment typo ([c47de87](https://github.com/poolifier/poolifier/commit/c47de879e9f3fbd1e3bce8bf2d84864faaf1b69f))
99* publish documentation ([ec0e975](https://github.com/poolifier/poolifier/commit/ec0e975933e833d15e76a95798759e2b3e3e4ce0))
100
101
102### 🤖 Automation
103
104* **deps:** bump the regular group across 11 directories with 1 update ([#2636](https://github.com/poolifier/poolifier/issues/2636)) ([42797ef](https://github.com/poolifier/poolifier/commit/42797efe5f727ab68e940049a7f83c8a7708ab8c))
105
95acdbf6
JB
106## [4.4.1](https://github.com/poolifier/poolifier/compare/v4.4.0...v4.4.1) (2024-10-24)
107
108
109### 🐞 Bug Fixes
110
111* ensure worker error is propagated unchanged if possible ([#2634](https://github.com/poolifier/poolifier/issues/2634)) ([7e582d6](https://github.com/poolifier/poolifier/commit/7e582d647a6e2fff7aba7431133638dcfd0fa6f9))
112
113
114### 📚 Documentation
115
116* publish documentation ([cb9d18c](https://github.com/poolifier/poolifier/commit/cb9d18cc44c7be166b31dbdf2197563a3f713175))
117
e227fb7a
JB
118## [4.4.0](https://github.com/poolifier/poolifier/compare/v4.3.0...v4.4.0) (2024-10-24)
119
120
121### 🚀 Features
122
123* add worker side error stack trace to WorkerError ([#2631](https://github.com/poolifier/poolifier/issues/2631)) ([5fd1e6b](https://github.com/poolifier/poolifier/commit/5fd1e6bf528d56998a64e5238d4428af693b18c8))
124
125
126### 🐞 Bug Fixes
127
128* **ci:** untanble build from benchmarking scripts ([693da4d](https://github.com/poolifier/poolifier/commit/693da4ddac420003f0e6a03d0090a712bb91fb16))
129* fix production build ([96e15f3](https://github.com/poolifier/poolifier/commit/96e15f3d994c6240a6ee50431065e3d593d9f581))
130
131
132### ⚡ Performance
133
134* speed up isAsyncFunction() helper ([e155dc6](https://github.com/poolifier/poolifier/commit/e155dc6f44e131201196c5537bff363d9d0b79bb))
135
136
137### 📚 Documentation
138
139* publish documentation ([7bd639b](https://github.com/poolifier/poolifier/commit/7bd639b904e493311f0115d0f2599552f0351ccb))
140
141
142### 🤖 Automation
143
144* **ci:** handle various release type on npm registry ([c4c9bf6](https://github.com/poolifier/poolifier/commit/c4c9bf60a525a59f85c3385420c77243654d5443))
145* **ci:** node 23.x support ([27461e4](https://github.com/poolifier/poolifier/commit/27461e4f1c905185caccbe6ec422df2354b6f1b6))
146* **ci:** switch to workflow token ([c7f3208](https://github.com/poolifier/poolifier/commit/c7f32087e98e0b6ea547272b386e9f085721446e))
147* **deps-dev:** bump @biomejs/biome in the regular group ([#2624](https://github.com/poolifier/poolifier/issues/2624)) ([c8da00b](https://github.com/poolifier/poolifier/commit/c8da00bf3bde94576ada532b3cfaadec6bc324bc))
148* **deps-dev:** bump @types/node in the regular group ([614a923](https://github.com/poolifier/poolifier/commit/614a9238edb101f38f2f8aa2a56533b6ae7a9826))
149* **deps-dev:** bump eslint-plugin-jsdoc in the regular group ([a8ab74a](https://github.com/poolifier/poolifier/commit/a8ab74abe2353f855c95b36d6dc8575552d2f75e))
150* **deps-dev:** bump neostandard in the regular group ([#2629](https://github.com/poolifier/poolifier/issues/2629)) ([b0bd470](https://github.com/poolifier/poolifier/commit/b0bd470729633f5e2a4513ffdd506d212d9f6754))
151* **deps-dev:** bump tatami-ng in the regular group ([#2625](https://github.com/poolifier/poolifier/issues/2625)) ([cd27ebb](https://github.com/poolifier/poolifier/commit/cd27ebba9f493cd5c79398dac5e7c59c2eb685b0))
152* **deps-dev:** bump the major group across 6 directories with 1 update ([#2619](https://github.com/poolifier/poolifier/issues/2619)) ([5257d5f](https://github.com/poolifier/poolifier/commit/5257d5f397b397d9460c378b161671c0bf0c6e28))
153* **deps-dev:** bump the regular group across 11 directories with 1 update ([848c7ca](https://github.com/poolifier/poolifier/commit/848c7cad1b7b146f90c072d4b57b847649693fbe))
154* **deps-dev:** bump the regular group across 6 directories with 1 update ([6f9c249](https://github.com/poolifier/poolifier/commit/6f9c24960a81b252f4b45e671aeeb743eed78a6d))
155* **deps-dev:** bump the regular group across 6 directories with 1 update ([71c0ba1](https://github.com/poolifier/poolifier/commit/71c0ba1520c59f9f339d81deacc3ef2a0fc0fcd5))
156* **deps-dev:** bump the regular group with 2 updates ([5f7136a](https://github.com/poolifier/poolifier/commit/5f7136ad9ec4b43734a423661058a421accb8799))
157* **deps:** bump the all group across 11 directories with 1 update ([fac6bb8](https://github.com/poolifier/poolifier/commit/fac6bb836f2648221ce707dd311073f4b72daade))
158
904ba0c3
JB
159## [4.3.0](https://github.com/poolifier/poolifier/compare/v4.2.11...v4.3.0) (2024-10-14)
160
161
162### 🚀 Features
163
164* **benchmarks:** add bencher threshold checks ([e56c70e](https://github.com/poolifier/poolifier/commit/e56c70ec471b0ebfccfa0ab0f31be391221d948c))
165
166
167### 🐞 Bug Fixes
168
169* **benchmarks:** add upper/lower values to BMF throughput ([d6e6b64](https://github.com/poolifier/poolifier/commit/d6e6b6414d53a81d81eeae068eb87d6eaf707038))
170* **benchmarks:** fix BMF report upper/lower values ([0a98c64](https://github.com/poolifier/poolifier/commit/0a98c64c82e0102042da0eaebf8fed78691261a1))
171* fix benchmarks report conversion to BMF format ([8a93e4e](https://github.com/poolifier/poolifier/commit/8a93e4eeb91c673d68a858126b090e8613a950d5))
172
173
174### ⚡ Performance
175
176* pre-create worker if needed at the end of task execution ([1d5588f](https://github.com/poolifier/poolifier/commit/1d5588f7a7157f4214c0f326c294cd966525bee3))
177
178
179### ✨ Polish
180
181* cleanup task function ops validation ([f9e6cc3](https://github.com/poolifier/poolifier/commit/f9e6cc35ca852305c1a6e6a784dadfcb8f9712fc))
182* enable `.editorconfig` in biome formatter ([cc46610](https://github.com/poolifier/poolifier/commit/cc46610423b11000bcd11e869db96f28d90ce825))
183* turn on `noImplicitOverride` in TS configuration ([ae85b35](https://github.com/poolifier/poolifier/commit/ae85b3512e8a94e5c66aec8a5e9caa6b8b575137))
184
185
186### 📚 Documentation
187
188* publish documentation ([b83ac2a](https://github.com/poolifier/poolifier/commit/b83ac2ad12bdcb264f1d94b546b0c46196123e11))
189
190
191### 🤖 Automation
192
193* **ci:** fix task function ops tests ([c79f502](https://github.com/poolifier/poolifier/commit/c79f502de546aa2133e3321bd84668c598f5afc3))
194* **ci:** silence linter error ([0fd6ad4](https://github.com/poolifier/poolifier/commit/0fd6ad4619f547ee56218f2ef45ea1a36c4b0dfe))
195* **deps-dev:** bump @cspell/eslint-plugin in the regular group ([#2579](https://github.com/poolifier/poolifier/issues/2579)) ([954778b](https://github.com/poolifier/poolifier/commit/954778bc3120e150c9bbb904ea2e4b0c2ab6934f))
196* **deps-dev:** bump @eslint/js in the regular group ([f487972](https://github.com/poolifier/poolifier/commit/f487972951aeb84bb03e1156550f64446f3b9b45))
197* **deps-dev:** bump @types/node in the regular group ([17f15a0](https://github.com/poolifier/poolifier/commit/17f15a0472724873c6c241e743badb23047b919c))
198* **deps-dev:** bump @types/nodemailer ([bba21a2](https://github.com/poolifier/poolifier/commit/bba21a24b3054a5ebd4d9a1b37ff1ebdd7428877))
199* **deps-dev:** bump eslint-plugin-jsdoc in the regular group ([e1332ea](https://github.com/poolifier/poolifier/commit/e1332ea1bc5d116788bb5463d5d0d09b4ab584b3))
200* **deps-dev:** bump sinon from 18.0.1 to 19.0.2 in the major group ([e62369f](https://github.com/poolifier/poolifier/commit/e62369f6c29dc0368e2c6877cc9949756f1209ef))
201* **deps-dev:** bump tatami-ng from 0.7.0 to 0.7.1 in the regular group ([e272166](https://github.com/poolifier/poolifier/commit/e272166179f064bdc45ffd39cff811a80daba221))
202* **deps-dev:** bump tatami-ng from 0.8.2 to 0.8.3 in the regular group ([f0bab52](https://github.com/poolifier/poolifier/commit/f0bab521b687398be745405eebbe5b4da60b7612))
203* **deps-dev:** bump tatami-ng from 0.8.3 to 0.8.4 in the regular group ([e589b14](https://github.com/poolifier/poolifier/commit/e589b1452ef3aefb36fac45c98ccb3b5753bb756))
204* **deps-dev:** bump the major group across 3 directories with 1 update ([00d085d](https://github.com/poolifier/poolifier/commit/00d085dd864fa20f7107ddef968b785283d90725))
205* **deps-dev:** bump the regular group across 11 directories with 1 update ([10180df](https://github.com/poolifier/poolifier/commit/10180dfdf01ebdff3c41c39a7ab3dded43609b57))
206* **deps-dev:** bump the regular group across 11 directories with 1 update ([#2584](https://github.com/poolifier/poolifier/issues/2584)) ([6a1b9a9](https://github.com/poolifier/poolifier/commit/6a1b9a9f3315cc06ef90d3c9981cb28fb31a1b3b))
207* **deps-dev:** bump the regular group across 11 directories with 2 updates ([9bfa445](https://github.com/poolifier/poolifier/commit/9bfa44570641dd9afb774614e235b52807ae6a04))
208* **deps-dev:** bump the regular group across 6 directories with 1 update ([#2581](https://github.com/poolifier/poolifier/issues/2581)) ([338568b](https://github.com/poolifier/poolifier/commit/338568b431ef543ebf25d98bc352b66cfa2a4a4c))
209* **deps-dev:** bump the regular group with 2 updates ([ff958ab](https://github.com/poolifier/poolifier/commit/ff958ab9a720b554e7479ac6b3dd61fbfb97d642))
210* **deps-dev:** bump the regular group with 2 updates ([4fbd388](https://github.com/poolifier/poolifier/commit/4fbd3883fc88c3f0e98d1a046c323c1ce84e2390))
211* **deps-dev:** bump the regular group with 2 updates ([bca88d2](https://github.com/poolifier/poolifier/commit/bca88d2ee41f6084a3afe045c394383e316e82e5))
212* **deps-dev:** bump the regular group with 2 updates ([ce4ca7a](https://github.com/poolifier/poolifier/commit/ce4ca7aef6c535099c3cecc9ac40034040b54457))
213* **deps-dev:** bump the regular group with 2 updates ([#2583](https://github.com/poolifier/poolifier/issues/2583)) ([49ad9d2](https://github.com/poolifier/poolifier/commit/49ad9d2cb0ebb46a1345cce79e05beadd75e4fb2))
214* **deps-dev:** bump the regular group with 3 updates ([#2582](https://github.com/poolifier/poolifier/issues/2582)) ([eaeb55b](https://github.com/poolifier/poolifier/commit/eaeb55b94c879baedc17a81309ba07eb7999a880))
215* **deps-dev:** bump the regular group with 4 updates ([#2585](https://github.com/poolifier/poolifier/issues/2585)) ([dab2d0f](https://github.com/poolifier/poolifier/commit/dab2d0f028c9ec108d7648cdf45d04ee0e83f891))
216* **deps-dev:** bump typescript ([1e9bf5f](https://github.com/poolifier/poolifier/commit/1e9bf5f3e96ae171eeebe17b48f05b8f3cee833f))
217* **deps-dev:** bump typescript ([dedf743](https://github.com/poolifier/poolifier/commit/dedf743862d71cb6786e7ad9fd32d5e77bd94b26))
218* **deps-dev:** bump typescript ([425925a](https://github.com/poolifier/poolifier/commit/425925a3f8b0a894790b0863b4718f61ebaaad7a))
219* **deps-dev:** bump typescript ([94fba1e](https://github.com/poolifier/poolifier/commit/94fba1ef4e23f262b0996c30148209927c414d2e))
220* **deps-dev:** bump typescript ([b4d6c8f](https://github.com/poolifier/poolifier/commit/b4d6c8fa0ac5e621549748de76fbab68932cea1b))
221* **deps-dev:** bump typescript ([10c8877](https://github.com/poolifier/poolifier/commit/10c8877ed31cbca22539ac0a37724de7c127734d))
222* **deps-dev:** bump typescript ([2c623f9](https://github.com/poolifier/poolifier/commit/2c623f953cdb9e073118246e088b9a3892b114ab))
223* **deps-dev:** bump typescript ([a404672](https://github.com/poolifier/poolifier/commit/a404672dab88a94ae6638a2f7fc2bd447da65869))
224* **deps-dev:** bump typescript ([895a334](https://github.com/poolifier/poolifier/commit/895a33466d8921366cf413ee4eaed7ee3544f590))
225* **deps-dev:** bump typescript ([c154fe0](https://github.com/poolifier/poolifier/commit/c154fe038bbec17f0e21064aeffec01749ba9230))
226* **deps-dev:** bump typescript ([4ea88eb](https://github.com/poolifier/poolifier/commit/4ea88eb07a4acd6fb915913fe3b430ab5cdcf924))
227* **deps:** bump github/combine-prs from 5.1.0 to 5.2.0 ([e6a7b43](https://github.com/poolifier/poolifier/commit/e6a7b43c7802976e15af2b4b0cd52e3d6941fe72))
228* **deps:** bump sonarsource/sonarcloud-github-action ([6855943](https://github.com/poolifier/poolifier/commit/68559434ddc933eace0553f348b24454c67fa480))
229* **deps:** bump the major group across 3 directories with 2 updates ([e990af6](https://github.com/poolifier/poolifier/commit/e990af616c4915a2777cd161a8b9b7c348c26482))
230* **deps:** bump the regular group across 11 directories with 1 update ([a721023](https://github.com/poolifier/poolifier/commit/a72102361d5f755a23e3d6cb7efb5b38ee1b6920))
231* **deps:** bump the regular group across 3 directories with 1 update ([29ed11a](https://github.com/poolifier/poolifier/commit/29ed11aa9e9fb030c22278720059d42a42be4354))
232
029726d0
JB
233## [4.2.11](https://github.com/poolifier/poolifier/compare/v4.2.10...v4.2.11) (2024-09-12)
234
235
236### ⚡ Performance
237
238* track dynamic pool empty event lifecycle ([7923fe5](https://github.com/poolifier/poolifier/commit/7923fe59f4a88b218744b16f977faf93015407ac))
239
240
241### ✨ Polish
242
243* add dynamic worker nodes count to pool info ([01277ce](https://github.com/poolifier/poolifier/commit/01277ce688c015fff1bee425276b20077e7a8f34))
244
245
246### 🧪 Tests
247
248* refine dynamic pool shutdown test expectations ([fc43a51](https://github.com/poolifier/poolifier/commit/fc43a5150338466915bc57705d00bd0e5255eac7))
249
250
251### 📚 Documentation
252
253* publish documentation ([4a809cf](https://github.com/poolifier/poolifier/commit/4a809cfc7dd384ec3c8dd8304d99d2160cf94466))
254
255
256### 🤖 Automation
257
258* **deps-dev:** bump sinon from 18.0.0 to 18.0.1 in the regular group ([947d358](https://github.com/poolifier/poolifier/commit/947d35846a27cece641eb08f6ea9b7be1d3dd03e))
259* **deps-dev:** bump the regular group with 2 updates ([efd5d49](https://github.com/poolifier/poolifier/commit/efd5d49802507ee6c963abe45aa7446387aad347))
260* **deps:** bump the regular group across 11 directories with 1 update ([#2568](https://github.com/poolifier/poolifier/issues/2568)) ([678986c](https://github.com/poolifier/poolifier/commit/678986c1623ff15844a0f633bfd0fdab87a20362))
261* **deps:** bump the regular group across 3 directories with 1 update ([7e6cc27](https://github.com/poolifier/poolifier/commit/7e6cc278973d7b013e49afa56dba33ef6b50908b))
262
4a18435a
JB
263## [4.2.10](https://github.com/poolifier/poolifier/compare/v4.2.9...v4.2.10) (2024-09-06)
264
265
266### ⚡ Performance
267
268* optimize backpressure task(s) stealing conditions ([9df97af](https://github.com/poolifier/poolifier/commit/9df97afd77c24c8850e0d56eae3d3c66df181981))
269
270
271### ✨ Polish
272
273* add `isWorkerNodeStealing()` helper ([febcf8e](https://github.com/poolifier/poolifier/commit/febcf8e370ebf9ed2e45ba25296e937277d61e93))
274* factor out stealing ratio conditions check into an helper ([207df8a](https://github.com/poolifier/poolifier/commit/207df8aa5381ac3d3ca1f10d9cb79e01593ba10f))
275
276
277### 🧪 Tests
278
279* cleanup error handling expectations ([d960e54](https://github.com/poolifier/poolifier/commit/d960e542b476b90385e962c9be41422860310426))
280
281
282### 📚 Documentation
283
284* add `mapExecute` implementation to fastify examples plugin ([3924d83](https://github.com/poolifier/poolifier/commit/3924d83878275190248eb13b8f814b82c7dde655))
285* add missing `mapExecute` type definition to fastify examples ([83572f4](https://github.com/poolifier/poolifier/commit/83572f443b105de35a127423b53909fab3bd6ced))
286* code cleanup in examples ([24bc951](https://github.com/poolifier/poolifier/commit/24bc951b90abfe7a365ef6323888d51fde479552))
287* publish documentation ([d3a3b16](https://github.com/poolifier/poolifier/commit/d3a3b16f4443cdfda453e56570a0873863df2d03))
288* switch to `mapExecute()` in examples ([8162986](https://github.com/poolifier/poolifier/commit/8162986eb9aff717ad56bed372abd6c63fe2a31d))
289
290
291### 🤖 Automation
292
293* **deps-dev:** bump @types/node in the regular group ([fb8923f](https://github.com/poolifier/poolifier/commit/fb8923f8a793d0ba9b47834885bf63ea64346229))
294* **deps-dev:** bump the regular group across 11 directories with 1 update ([8ae78fb](https://github.com/poolifier/poolifier/commit/8ae78fbe85be6e5f61fa4f96f3ee93c1ce006bf7))
295* **deps-dev:** bump the regular group across 11 directories with 1 update ([4a2b738](https://github.com/poolifier/poolifier/commit/4a2b73815c9a8903ac44358c8e6e182ceb2657f5))
296* **deps-dev:** bump the regular group with 2 updates ([b1b652f](https://github.com/poolifier/poolifier/commit/b1b652f50ff2a3b1a55072a1f07955b7c1a262c0))
297* **deps:** bump nodemailer ([552013f](https://github.com/poolifier/poolifier/commit/552013f092a9785c5a80b8849c462a5b75ac5d3d))
298* **deps:** bump the regular group across 11 directories with 2 updates ([302fa26](https://github.com/poolifier/poolifier/commit/302fa26acd5997c297caa723095d36890d4390e1))
299* **deps:** bump the regular group across 11 directories with 2 updates ([#2557](https://github.com/poolifier/poolifier/issues/2557)) ([eb97198](https://github.com/poolifier/poolifier/commit/eb97198de6c8c4a407009c4b1c56497aae41b11a))
300
26d7e212
JB
301## [4.2.9](https://github.com/poolifier/poolifier/compare/v4.2.8...v4.2.9) (2024-08-30)
302
303
304### 🐞 Bug Fixes
305
306* handle properly small or zero `tasksStealingRatio` ([e45f621](https://github.com/poolifier/poolifier/commit/e45f62158cd1a0e899173a453b1fa43fb8ce7bba))
307
308
309### 📚 Documentation
310
311* publish documentation ([41a50df](https://github.com/poolifier/poolifier/commit/41a50dfe7c49c05bf2cd8a9cc0a6ff47385836e4))
312
821afc31
JB
313## [4.2.8](https://github.com/poolifier/poolifier/compare/v4.2.7...v4.2.8) (2024-08-30)
314
315
316### 🐞 Bug Fixes
317
318* fix dynamic thread pool full event emission rate ([52021de](https://github.com/poolifier/poolifier/commit/52021de72b77aa6c6fdd7c6dd816d7d53e6b2feb))
319
320
321### ✨ Polish
322
323* move dynamic pool only getters to its own class ([21e6b0e](https://github.com/poolifier/poolifier/commit/21e6b0ef4c8b89dbf4f8c588ae50887ce1f5177f))
324
325
326### 🧪 Tests
327
328* refine pool event tests expectation ([6a30766](https://github.com/poolifier/poolifier/commit/6a307669ef6f5aae3a8b79504255a8d3bdfd7c86))
329
330
331### 📚 Documentation
332
333* publish documentation ([bc407dc](https://github.com/poolifier/poolifier/commit/bc407dc6774b90aed4c7e2083f6adc765184dc69))
334* **README.md:** fix worker example export ([a5844a0](https://github.com/poolifier/poolifier/commit/a5844a0fffdb82f3890ff87fd0a75860edc20eea))
335* **README.md:** use top level await syntax in example ([3b4d090](https://github.com/poolifier/poolifier/commit/3b4d090fab7dd028a45d8ed12b02837919106084))
336* refine pool ready event emission condition ([3abc7fe](https://github.com/poolifier/poolifier/commit/3abc7fe895e74ae347ab729569f94d25729fceb1))
337
338
339### 🤖 Automation
340
341* **deps-dev:** bump the regular group with 3 updates ([d707c4d](https://github.com/poolifier/poolifier/commit/d707c4dc46af6311323aa7a0a235e1f6cbd30d1b))
342* **deps:** bump the regular group across 11 directories with 2 updates ([5c2e6e8](https://github.com/poolifier/poolifier/commit/5c2e6e8b247a9869cc7dc0989e6caaec8c0e1fe0))
343
f3178515
JB
344## [4.2.7](https://github.com/poolifier/poolifier/compare/v4.2.6...v4.2.7) (2024-08-28)
345
346
347### ⚡ Performance
348
349* reduce useless branching at pool info building ([4a29667](https://github.com/poolifier/poolifier/commit/4a29667ae71425df81946f45951e90aef20986e9))
350* track dynamic pool full lifecycle via events ([5f9e905](https://github.com/poolifier/poolifier/commit/5f9e90500ddf396a1862479540a4784bca043a20))
351
352
353### ✨ Polish
354
355* cleanup pool information ordering ([ba443f4](https://github.com/poolifier/poolifier/commit/ba443f407e3d94f83bb8d013f7552b271bd3d445))
356* merge dynamic pool events emission code ([e6cf2a9](https://github.com/poolifier/poolifier/commit/e6cf2a95dd56b9683ed81b622f5565c97a60e5a1))
357
358
359### 🧪 Tests
360
361* improve pool empty event test ([4b91b77](https://github.com/poolifier/poolifier/commit/4b91b77184b873be455d65b91719f747bb460778))
362
363
364### 📚 Documentation
365
366* publish documentation ([f948bb3](https://github.com/poolifier/poolifier/commit/f948bb3ef36f727934404c7a490075d431022e39))
367
368
369### 🤖 Automation
370
371* **deps-dev:** bump eslint-plugin-perfectionist from 3.2.0 to 3.3.0 in the regular group ([#2549](https://github.com/poolifier/poolifier/issues/2549)) ([60b5fab](https://github.com/poolifier/poolifier/commit/60b5fabe702dab1324f95b2353d8710b6694ec2b))
372* **deps:** bump the regular group across 11 directories with 1 update ([#2550](https://github.com/poolifier/poolifier/issues/2550)) ([7cfe89c](https://github.com/poolifier/poolifier/commit/7cfe89c198cb3f0174713642e4bcddc0ddc1451f))
373
d2112ba2
JB
374## [4.2.6](https://github.com/poolifier/poolifier/compare/v4.2.5...v4.2.6) (2024-08-27)
375
376
377### 🐞 Bug Fixes
378
379* fix pool back pressure semantic on dynamic pool ([227e9e9](https://github.com/poolifier/poolifier/commit/227e9e9b75b8e004dd7651af5961490e58ffdda9))
380
381
382### ⚡ Performance
383
384* track pool back pressure lifecycle via events ([303c0db](https://github.com/poolifier/poolifier/commit/303c0db0528190df1f9f726e96c49dbb10f09d27))
385* track pool busy lifecycle via events ([f8a57da](https://github.com/poolifier/poolifier/commit/f8a57da1a44233d40635aabba944ed036258f8ab))
386
387
388### ✨ Polish
389
390* cleanup worker node back pressure checks ([697d8c6](https://github.com/poolifier/poolifier/commit/697d8c6debe324881015e70f43f708c6880be92a))
391
392
393### 📚 Documentation
394
395* publish documentation ([22cdcdd](https://github.com/poolifier/poolifier/commit/22cdcddef65fbcad1f91bbdbec4788c9b81d29be))
396
397
398### 🤖 Automation
399
400* **deps-dev:** bump the regular group with 2 updates ([46c6476](https://github.com/poolifier/poolifier/commit/46c6476ed661a91b88a48025faf9bd0c7ed387a6))
401* **deps:** bump the regular group across 11 directories with 2 updates ([43922bf](https://github.com/poolifier/poolifier/commit/43922bfb3902595907ce671a8a245b1f9ee09067))
402
89f23b14
JB
403## [4.2.5](https://github.com/poolifier/poolifier/compare/v4.2.4...v4.2.5) (2024-08-26)
404
405
406### 🐞 Bug Fixes
407
408* ensure no deleted dynamic worker can be used to steal task(s) ([60ff5f0](https://github.com/poolifier/poolifier/commit/60ff5f050aac60f90e63638029b88e80e91e259c))
409
410
411### ✨ Polish
412
413* cleanup worker node back pressure detection implementation ([6546b6a](https://github.com/poolifier/poolifier/commit/6546b6a8ba008ea2be1a3ecc129054f4b84417c2))
414* cleanup worker node state conditions check ([2a8bfdf](https://github.com/poolifier/poolifier/commit/2a8bfdff6ba9391ec6dd0f733b23d39633583bcb))
415
416
417### 📚 Documentation
418
419* publish documentation ([200c455](https://github.com/poolifier/poolifier/commit/200c455f716523a3f14500435cf834cc1ae86880))
420
7fbde9ce
JB
421## [4.2.4](https://github.com/poolifier/poolifier/compare/v4.2.3...v4.2.4) (2024-08-24)
422
423
424### 🐞 Bug Fixes
425
426* fix pool ready status with zero min size dynamic pool ([e48fa7a](https://github.com/poolifier/poolifier/commit/e48fa7a7cd32d0b42df79043b773fcb1e6f2c778))
427
428
429### ✨ Polish
430
431* switch to eslint-plugin-perfectionist ([9723108](https://github.com/poolifier/poolifier/commit/972310863f23533360c1021be9c00f375230f81d))
432
433
434### 🧪 Tests
435
436* add pool empty event test ([7682c56](https://github.com/poolifier/poolifier/commit/7682c56f39d439b949dd02f1c3a251e261d1eb49))
437* optimize pool empty event test ([fa97876](https://github.com/poolifier/poolifier/commit/fa97876e2e8c5d8b507bc467bf8026f9a6573628))
438
439
440### 📚 Documentation
441
442* publish documentation ([4073f18](https://github.com/poolifier/poolifier/commit/4073f18713bcccfae354c3eb03c63e5a50496192))
443* refine a code comment ([cee9a55](https://github.com/poolifier/poolifier/commit/cee9a55aca4d0794d9d64fbd7b7206375c34f27b))
444
445
446### 🤖 Automation
447
448* **deps-dev:** bump husky from 9.1.4 to 9.1.5 in the regular group ([#2538](https://github.com/poolifier/poolifier/issues/2538)) ([d25e4f5](https://github.com/poolifier/poolifier/commit/d25e4f5f8b03f55e6a3be7791bfb1f37fbad0162))
449* **deps-dev:** bump the regular group across 11 directories with 1 update ([#2539](https://github.com/poolifier/poolifier/issues/2539)) ([dd24a54](https://github.com/poolifier/poolifier/commit/dd24a543d47b006d2b84a1a031894f46c169abe7))
450* **deps-dev:** bump the regular group with 2 updates ([205d209](https://github.com/poolifier/poolifier/commit/205d209cbb2e82e4245f534e32ab7cf9e01aea78))
451* **deps:** bump sonarsource/sonarcloud-github-action ([#2537](https://github.com/poolifier/poolifier/issues/2537)) ([82e0653](https://github.com/poolifier/poolifier/commit/82e065399f9c5a1aa48f0da8c117794f6b7d0dbf))
452* **deps:** bump the regular group across 11 directories with 3 updates ([#2536](https://github.com/poolifier/poolifier/issues/2536)) ([b901726](https://github.com/poolifier/poolifier/commit/b901726ffdcb1d987818057afb4779c1673a273a))
453* **deps:** bump the regular group across 7 directories with 2 updates ([e559d2d](https://github.com/poolifier/poolifier/commit/e559d2d191ddb9d622e05ba9c414d1a4e64406d0))
454
58ed84df
JB
455## [4.2.3](https://github.com/poolifier/poolifier/compare/v4.2.2...v4.2.3) (2024-08-19)
456
457
458### 🐞 Bug Fixes
459
460* account for all stealing worker nodes ([d967235](https://github.com/poolifier/poolifier/commit/d9672350c04638ef28b10b6f480e8e7cd89256f0))
461
462
463### ✨ Polish
464
465* define a variable only when needed ([4f28c7a](https://github.com/poolifier/poolifier/commit/4f28c7ae4e0c53cb328c4e5bdfe246f02fe1baf2))
466* display back pressured worker nodes in pool info ([8c7a518](https://github.com/poolifier/poolifier/commit/8c7a518dde490c0d370dff2e47ee86062d715dad))
467
468
469### 📚 Documentation
470
471* publish documentation ([e4db94f](https://github.com/poolifier/poolifier/commit/e4db94fc95fd5bb37fd446516f29b62fe38dc7fb))
472
473
474### 🤖 Automation
475
476* **deps-dev:** apply updates ([5a96b64](https://github.com/poolifier/poolifier/commit/5a96b64531b368fd4bf10225d48f7561fae4c90d))
477* **deps-dev:** bump @types/node in the regular group ([#2533](https://github.com/poolifier/poolifier/issues/2533)) ([b2cd95b](https://github.com/poolifier/poolifier/commit/b2cd95b7775f9a742a57de02d61a74dfef0aad24))
478* **deps-dev:** bump eslint-plugin-jsdoc in the regular group ([d20645f](https://github.com/poolifier/poolifier/commit/d20645fe19102bd39357bb23979f7684fe9fd5e3))
479* **deps-dev:** bump the regular group across 11 directories with 1 update ([#2534](https://github.com/poolifier/poolifier/issues/2534)) ([a9c233d](https://github.com/poolifier/poolifier/commit/a9c233d841db2bd396829465d16682e160e82093))
480* **deps:** bump the regular group across 11 directories with 2 updates ([c657b5d](https://github.com/poolifier/poolifier/commit/c657b5df7dc5bbd8b63f6b2ced8c5d7b574c5969))
481
8194cdd5
JB
482## [4.2.2](https://github.com/poolifier/poolifier/compare/v4.2.1...v4.2.2) (2024-08-14)
483
484
485### 🐞 Bug Fixes
486
487* fix race condition at task response handling during pool destroy ([b28533a](https://github.com/poolifier/poolifier/commit/b28533a38f984b6a28edf6edc53940bd85f24200))
488* workaround race conditions at pool destroy ([684f132](https://github.com/poolifier/poolifier/commit/684f132a0f46afc01f2e95ec004ecfd2548b8d49))
489
490
491### 📚 Documentation
492
493* publish documentation ([df66bb1](https://github.com/poolifier/poolifier/commit/df66bb1d802af27d29b1ca2e29b0b1c95636b0e1))
494
b3437ece
JB
495## [4.2.1](https://github.com/poolifier/poolifier/compare/v4.2.0...v4.2.1) (2024-08-14)
496
497
498### 🐞 Bug Fixes
499
500* ensure task stealing can't start twice on the same worker node ([37cc14e](https://github.com/poolifier/poolifier/commit/37cc14e81ea8e83ea2b78cf27e0e74f3c4694e21))
501* trigger continuous tasks stealing under proper conditions ([2663563](https://github.com/poolifier/poolifier/commit/2663563da5f52fd57be41127e5c789c86e969ae7))
502
503
504### ✨ Polish
505
506* remove unneeded condition at task response handling ([93df097](https://github.com/poolifier/poolifier/commit/93df097ec6c54af9f0d29df0cb61cb901f29fca4))
507
508
509### 📚 Documentation
510
511* publish documentation ([b4f9421](https://github.com/poolifier/poolifier/commit/b4f9421addf669cffe56d2f30f0fbab42dfe9755))
512* refine code comment about task stealing conditions ([80716e5](https://github.com/poolifier/poolifier/commit/80716e5039fb14c3731fa6b7f22334fcd4e5b314))
513
514
515### 🤖 Automation
516
517* **deps-dev:** bump eslint-plugin-jsdoc in the regular group ([#2525](https://github.com/poolifier/poolifier/issues/2525)) ([b9873cb](https://github.com/poolifier/poolifier/commit/b9873cbec16f627e05dfb354521c34540722df0c))
518* **deps:** bump the regular group across 11 directories with 2 updates ([#2526](https://github.com/poolifier/poolifier/issues/2526)) ([d3167a7](https://github.com/poolifier/poolifier/commit/d3167a7e6ee5dea226278a26813e6b64b49aa1d2))
519
85cf1890
JB
520## [4.2.0](https://github.com/poolifier/poolifier/compare/v4.1.0...v4.2.0) (2024-08-13)
521
522
523### 🚀 Features
524
525* reenable tasks stealing under back pressure by default ([f09b195](https://github.com/poolifier/poolifier/commit/f09b195471d82466f32dfbc3c3751202d4ea2f9a))
526
527
528### 🐞 Bug Fixes
529
530* protect worker node tasks queue from concurrent tasks stealing ([eebfd81](https://github.com/poolifier/poolifier/commit/eebfd819241181d59144f45b51f566fca0211fc5))
531
532
533### ⚡ Performance
534
535* do mapExecute() args sanity checks once ([390300c](https://github.com/poolifier/poolifier/commit/390300c363d3535fd622f07d54c40cfad9fdbb0b))
536
537
538### ✨ Polish
539
540* cleanup eslint configuration ([d5f06e4](https://github.com/poolifier/poolifier/commit/d5f06e40422119fca0b15562883f9060f466f673))
541* cleanup worker condition checks at task stealing ([d52d477](https://github.com/poolifier/poolifier/commit/d52d4773cc0ed2936aea894224a7edc3dab8359a))
542
543
544### 🧪 Tests
545
546* cleanup fixed pool tests setup and teardown ([311c5bd](https://github.com/poolifier/poolifier/commit/311c5bdbcf67f99f8cc8f066ecd92fc42a670f8d))
547* cleanup resources setup and teardown ([e1e0cb2](https://github.com/poolifier/poolifier/commit/e1e0cb25f128238f3f7b3a49f41fa5e5be236577))
548* remove duplicate tests ([55a9fbc](https://github.com/poolifier/poolifier/commit/55a9fbccadf29da6e3cb30471f3a5ce1e0d7c641))
549
550
551### 📚 Documentation
552
553* add documentation on enablePrority priority queue getter/setter ([3e53cc1](https://github.com/poolifier/poolifier/commit/3e53cc14e502b532f31536efefe84212c98ee024))
554* **api:** add missing tasksStealingRatio default value ([5b65da9](https://github.com/poolifier/poolifier/commit/5b65da9662b764070a8414e2cce53294f5fd9498))
555* publish documentation ([e57792c](https://github.com/poolifier/poolifier/commit/e57792c1bbb944b28efe0a34027ac1e35ffd62d5))
556
557
558### 🤖 Automation
559
560* **ci:** reenabled code auto formatting and linting ([31e5cb9](https://github.com/poolifier/poolifier/commit/31e5cb9aa2c33ea879afa99d649024495bb25a69))
561* **ci:** silence linter on examples ([6a2f448](https://github.com/poolifier/poolifier/commit/6a2f448092feecf09f4cfbb2578cdeef334c8ae3))
562* **deps-dev:** bump @commitlint/cli in the regular group ([#2518](https://github.com/poolifier/poolifier/issues/2518)) ([798d464](https://github.com/poolifier/poolifier/commit/798d46431c8b35674774ec0c64b343f5103b1d88))
563* **deps-dev:** bump @cspell/eslint-plugin from 8.11.0 to 8.12.1 ([cb4a4fd](https://github.com/poolifier/poolifier/commit/cb4a4fdfd62e2a5f5634f72ba7ced50186d28e7d))
564* **deps-dev:** bump @cspell/eslint-plugin from 8.12.1 to 8.13.0 ([#2490](https://github.com/poolifier/poolifier/issues/2490)) ([d94680b](https://github.com/poolifier/poolifier/commit/d94680bbed7f9eda7cde673afea03d67ed845600))
565* **deps-dev:** bump @cspell/eslint-plugin from 8.13.0 to 8.13.1 ([f4b46c2](https://github.com/poolifier/poolifier/commit/f4b46c288bdb341fc1190448ff6b628d5b0f434f))
566* **deps-dev:** bump @types/node ([898fb96](https://github.com/poolifier/poolifier/commit/898fb967397af40c848e856f7567dce2e4246b5a))
567* **deps-dev:** bump @types/node ([b83105c](https://github.com/poolifier/poolifier/commit/b83105cb20f971e62ffd4d9af8b8a02bbb603121))
568* **deps-dev:** bump @types/node ([30ccf3b](https://github.com/poolifier/poolifier/commit/30ccf3bee1938152352d7ac8698106527e4c541f))
569* **deps-dev:** bump @types/node ([72e99f3](https://github.com/poolifier/poolifier/commit/72e99f3f9850f4236f292a94fcf48f6ed08a62ce))
570* **deps-dev:** bump @types/node ([6032c66](https://github.com/poolifier/poolifier/commit/6032c66cfc168a7aa3cc690fd44a17e33ae505fc))
571* **deps-dev:** bump @types/node ([90a355a](https://github.com/poolifier/poolifier/commit/90a355a3c8d1f9f2bb3f726649d8dd194ea9aa29))
572* **deps-dev:** bump @types/node ([dc72c1f](https://github.com/poolifier/poolifier/commit/dc72c1f0c0cb7af045f263c1e676fddc8638ab51))
573* **deps-dev:** bump @types/node ([9072888](https://github.com/poolifier/poolifier/commit/9072888d09e8cec7b57e1a42db95a12cdae13f43))
574* **deps-dev:** bump @types/node ([4001e8f](https://github.com/poolifier/poolifier/commit/4001e8f12ee43978182130e3b0e21791a2a5abda))
575* **deps-dev:** bump @types/node ([4b3f7ff](https://github.com/poolifier/poolifier/commit/4b3f7ff2e5d62eca78e284b036e2bbb31ba57c30))
576* **deps-dev:** bump @types/node ([bffa27b](https://github.com/poolifier/poolifier/commit/bffa27b440f0d16c127360e547660a3fcfb20e1e))
577* **deps-dev:** bump @types/node ([51b8676](https://github.com/poolifier/poolifier/commit/51b86762f930675d14fa0ffd03979138bbf54d21))
578* **deps-dev:** bump @types/node ([84e2af2](https://github.com/poolifier/poolifier/commit/84e2af234d00ab6ab3eb5cec2fcd450f67f72626))
579* **deps-dev:** bump @types/node from 20.14.11 to 20.14.12 ([#2484](https://github.com/poolifier/poolifier/issues/2484)) ([b04790a](https://github.com/poolifier/poolifier/commit/b04790ac130cdcce1673f544c8a90cd572bbfff8))
580* **deps-dev:** bump @types/node from 22.0.2 to 22.1.0 ([e2c63d9](https://github.com/poolifier/poolifier/commit/e2c63d928d3f61085bc63ef0e2ed861827e44952))
581* **deps-dev:** bump eslint-plugin-jsdoc from 48.10.2 to 48.11.0 ([a335dbb](https://github.com/poolifier/poolifier/commit/a335dbb80f8ce31ec11c282d2dc4095d7356cbba))
582* **deps-dev:** bump eslint-plugin-jsdoc from 48.9.2 to 48.10.2 ([#2489](https://github.com/poolifier/poolifier/issues/2489)) ([7740dd2](https://github.com/poolifier/poolifier/commit/7740dd271aa7fbd4bcedf659b323813d6d72030f))
583* **deps-dev:** bump eslint-plugin-jsdoc in the major group ([#2519](https://github.com/poolifier/poolifier/issues/2519)) ([97be5ef](https://github.com/poolifier/poolifier/commit/97be5ef840aad32606fa1b0d0699fa5d99810028))
584* **deps-dev:** bump husky from 9.1.2 to 9.1.3 ([#2487](https://github.com/poolifier/poolifier/issues/2487)) ([788cee8](https://github.com/poolifier/poolifier/commit/788cee84f1e30debe570409c650df1ae9d67ab68))
585* **deps-dev:** bump rollup ([cc75e8e](https://github.com/poolifier/poolifier/commit/cc75e8e09934047cf1babb634275e6c5106f6871))
586* **deps-dev:** bump rollup ([b802739](https://github.com/poolifier/poolifier/commit/b802739585892c8184ec2ec55f0c49c477cadcdb))
587* **deps-dev:** bump rollup ([1d82f1e](https://github.com/poolifier/poolifier/commit/1d82f1e2c8f6e3762d746a3e091d6f266fa7313d))
588* **deps-dev:** bump rollup ([18ccae8](https://github.com/poolifier/poolifier/commit/18ccae8c892047167f16ccdc883776887d2d93d5))
589* **deps-dev:** bump rollup ([e45d209](https://github.com/poolifier/poolifier/commit/e45d209d147f46be21407a09f3aace31bcbffbe2))
590* **deps-dev:** bump rollup ([865b4f5](https://github.com/poolifier/poolifier/commit/865b4f5ac20df164a97de317a44e42ee0dd4b6a0))
591* **deps-dev:** bump rollup from 4.19.1 to 4.19.2 ([caf6fe3](https://github.com/poolifier/poolifier/commit/caf6fe30f20a5aee16e51dfc9026296974f4728b))
592* **deps-dev:** bump the regular group with 2 updates ([#2523](https://github.com/poolifier/poolifier/issues/2523)) ([cc9a0fb](https://github.com/poolifier/poolifier/commit/cc9a0fb31ab867c2b84f15f5cc61a85644753adb))
593* **deps-dev:** bump typedoc from 0.26.4 to 0.26.5 ([27433e0](https://github.com/poolifier/poolifier/commit/27433e06f8bff51b1462c1ecf2d17869551d7468))
594* **deps-dev:** update eslint-plugin-jsdoc to 50.2.0 ([25bf98e](https://github.com/poolifier/poolifier/commit/25bf98e1bc2eff8103e1eb67db9d7dde5cbf96b8))
595* **deps:** bump axios in /examples/typescript/http-client-pool ([#2501](https://github.com/poolifier/poolifier/issues/2501)) ([9c8c7b6](https://github.com/poolifier/poolifier/commit/9c8c7b629ce608a0dd7b87c8b4f03cc72842c44e))
596* **deps:** bump github/combine-prs from 5.0.0 to 5.1.0 ([#2476](https://github.com/poolifier/poolifier/issues/2476)) ([9c14720](https://github.com/poolifier/poolifier/commit/9c1472043fc2b5b77f16a271c26457a4a180e3f2))
597
acc41adc
JB
598## [4.1.0](https://github.com/poolifier/poolifier/compare/v4.0.18...v4.1.0) (2024-07-18)
599
600
601### 🚀 Features
602
603* add ratio of worker nodes in a pool allowed to perform concurrent tasks stealing ([e25f86b](https://github.com/poolifier/poolifier/commit/e25f86b30763ea5c2e5fc6c0ef16818b7e4efe83)), closes [#2284](https://github.com/poolifier/poolifier/issues/2284)
604
605
606### ✨ Polish
607
608* npx -> pnpm dlx where appropriates ([21b76dc](https://github.com/poolifier/poolifier/commit/21b76dc2ca538ea8691570e599b152d4d4dd50bd))
609
610
611### 🧪 Tests
612
613* fix error type expectation ([16196bc](https://github.com/poolifier/poolifier/commit/16196bc039fc80684b777cf4cd9e822e3293c339))
614
615
616### 📚 Documentation
617
618* **api.md:** add missing ToC entry ([989a71a](https://github.com/poolifier/poolifier/commit/989a71a5497bfeb445748022d241de083fa9d66b))
619* **api.md:** document tasksStealingRatio tasks queue option ([453c646](https://github.com/poolifier/poolifier/commit/453c6467536356616003ea3666fd4d14ef539e26))
620* publish documentation ([082fb4d](https://github.com/poolifier/poolifier/commit/082fb4db638f093fe284690eaf4764e0a2758184))
621
622
623### 🤖 Automation
624
625* **deps-dev:** bump @cspell/eslint-plugin from 8.10.4 to 8.11.0 ([ae8cecf](https://github.com/poolifier/poolifier/commit/ae8cecfc95719c815557f1d1b210d282dda350cd))
626* **deps-dev:** bump @types/node ([e1436e8](https://github.com/poolifier/poolifier/commit/e1436e89c8a3a0d83cf82dcc835b4ef10b3e9738))
627* **deps-dev:** bump husky from 9.0.11 to 9.1.0 ([#2474](https://github.com/poolifier/poolifier/issues/2474)) ([8b770d2](https://github.com/poolifier/poolifier/commit/8b770d22dba7dcb844c7aae2d16de414499ff9f6))
628* **deps-dev:** bump prettier from 3.3.2 to 3.3.3 ([#2469](https://github.com/poolifier/poolifier/issues/2469)) ([ed09ef1](https://github.com/poolifier/poolifier/commit/ed09ef1d80a2ba11abf2e276c1c4b3c4081979c1))
629* **deps-dev:** bump tatami-ng from 0.5.1 to 0.5.3 ([27ddec8](https://github.com/poolifier/poolifier/commit/27ddec8d142fab42db702118325d49ce0c1140cc))
630* **deps:** bump poolifier ([01afcb2](https://github.com/poolifier/poolifier/commit/01afcb2142ddf51db4de08aa85ff36408e1d34ea))
631* **deps:** bump poolifier ([f49f67f](https://github.com/poolifier/poolifier/commit/f49f67f853d84ab60a407f3bbaeea41c462bda83))
632* **deps:** bump poolifier ([ac181f4](https://github.com/poolifier/poolifier/commit/ac181f447618a6ca7206d13fdc17acafed0cd472))
633* **deps:** bump poolifier ([966953d](https://github.com/poolifier/poolifier/commit/966953ddd2798a4bb52e83fb054165e7cc2b2dca))
634* **deps:** bump poolifier ([d67aa39](https://github.com/poolifier/poolifier/commit/d67aa393b66234b305638f02aec075ceea5053d9))
635* **deps:** bump poolifier ([4763e8c](https://github.com/poolifier/poolifier/commit/4763e8cea8204ed4f1f4da9e14f27e83949a445c))
636* **deps:** bump poolifier ([69b9ebc](https://github.com/poolifier/poolifier/commit/69b9ebc66743cc0fd14d0c13d547d72a8962e54a))
637* **deps:** bump poolifier ([37645d7](https://github.com/poolifier/poolifier/commit/37645d7921f5d48c1731726430ec6b56cff9b472))
638* **deps:** bump poolifier ([c63416f](https://github.com/poolifier/poolifier/commit/c63416f26d0ceb487f2efdc47ec029b069c3c9e1))
639* **deps:** bump poolifier in /examples/typescript/http-client-pool ([d96a9d3](https://github.com/poolifier/poolifier/commit/d96a9d38c802923b762447e2d07b2679932ae687))
640* **deps:** bump poolifier in /examples/typescript/smtp-client-pool ([af1cc0e](https://github.com/poolifier/poolifier/commit/af1cc0e16116ec360615a121cef2c25035e73ce5))
641
bd3c2c04
JB
642## [4.0.18](https://github.com/poolifier/poolifier/compare/v4.0.17...v4.0.18) (2024-07-11)
643
644
645### 🐞 Bug Fixes
646
647* null exception when a task errored ([ac5ee55](https://github.com/poolifier/poolifier/commit/ac5ee55ef0ad7dc29f3d0bc6906e2e127dc2e026))
648
649
650### ✨ Polish
651
652* **priority-queue:** cleanup intermediate variables namespace ([bb5d86b](https://github.com/poolifier/poolifier/commit/bb5d86b228984c83011f07de7b012f1fcd48fe0a))
653
654
655### 🧪 Tests
656
657* improve WorkerNode init coverage ([bcac180](https://github.com/poolifier/poolifier/commit/bcac1803a87e7cbb6fcbebd691a322d796266329))
658
659
660### 📚 Documentation
661
662* fix CHANGELOG.md formatting ([1823a63](https://github.com/poolifier/poolifier/commit/1823a63f7348cbe1a954b8d3a431bb8087cf8b76))
663* flag WorkerChoiceStrategiesContext class as internal ([9eacd2e](https://github.com/poolifier/poolifier/commit/9eacd2e07943c40c0b984de621fc9542f959aed6))
664* publish documentation ([62d0f6f](https://github.com/poolifier/poolifier/commit/62d0f6fe252439cf9a7d71c290a3f1a162aeb829))
665
666
667### 🤖 Automation
668
669* **deps-dev:** bump tatami-ng from 0.4.16 to 0.5.1 ([#2453](https://github.com/poolifier/poolifier/issues/2453)) ([d7b4ed8](https://github.com/poolifier/poolifier/commit/d7b4ed89bb9f65c94af724ec2de0de7f19bbdc64))
670
c2161373
JB
671## [4.0.17](https://github.com/poolifier/poolifier/compare/v4.0.16...v4.0.17) (2024-07-07)
672
c2161373
JB
673### ⚡ Performance
674
1823a63f 675- optimize tasks queuing implementation ([097dea6](https://github.com/poolifier/poolifier/commit/097dea68fd73ac0d6f6db7b13c585bf8b6726418))
c2161373
JB
676
677### ✨ Polish
678
1823a63f
JB
679- factor out fixed queue common code in an abstract class ([840270a](https://github.com/poolifier/poolifier/commit/840270a0f49c9d845f9b2850a36853e1d709f740))
680- format code ([9183b88](https://github.com/poolifier/poolifier/commit/9183b8807bdac35067a22362216d1deadc16421f))
681- move queueing code into its own directory ([c6dd1ae](https://github.com/poolifier/poolifier/commit/c6dd1aeb73ee5d5dd5bbfa9ebd9c4496a60f1252))
682- refine queue full error message ([9008a96](https://github.com/poolifier/poolifier/commit/9008a9668154357ce942ec56caa95dfc3fc08238))
683- remove duplicate code in fixed-queue.ts ([7a1c77f](https://github.com/poolifier/poolifier/commit/7a1c77f62bf4a16d3cd482d479e92e1cd4b1354b))
c2161373
JB
684
685### 📚 Documentation
686
1823a63f 687- generate documentation ([a7ee49b](https://github.com/poolifier/poolifier/commit/a7ee49b03e5a2ee6bd1a1b74a2fe3a2fb7c23404))
c2161373
JB
688
689### 🤖 Automation
690
1823a63f
JB
691- **ci:** fix automated documentation publication at releasing ([147c01e](https://github.com/poolifier/poolifier/commit/147c01eadb3b951b84487c4328f553f95b16fb47))
692- **deps-dev:** bump @cspell/eslint-plugin from 8.10.1 to 8.10.2 ([4f10a83](https://github.com/poolifier/poolifier/commit/4f10a833ef225ac7dbebf9faa16de9c89c8fdf5b))
693- **deps-dev:** bump @types/node ([1d24d0e](https://github.com/poolifier/poolifier/commit/1d24d0e543ebbbb4b3582d29c726cd1621643ca2))
694- **deps-dev:** bump @types/node ([ffa4f4f](https://github.com/poolifier/poolifier/commit/ffa4f4f21af0b1591c10c3e53aa929e94f825e99))
695- **deps-dev:** bump @types/node ([1fe2514](https://github.com/poolifier/poolifier/commit/1fe2514362ede951510d751dac37e7c279a22ec1))
696- **deps-dev:** bump @types/node ([e90a256](https://github.com/poolifier/poolifier/commit/e90a256eb79bc279127cb4021adf58f9fd300ed2))
697- **deps-dev:** bump @types/node ([0bf1a17](https://github.com/poolifier/poolifier/commit/0bf1a17388ea8730fb01dc5cb50a8eccf9e18776))
698- **deps-dev:** bump @types/node ([dd73d0c](https://github.com/poolifier/poolifier/commit/dd73d0c5c9a4e0bf9ba32dc167807356f0b4857d))
699- **deps-dev:** bump @types/node ([2be2259](https://github.com/poolifier/poolifier/commit/2be2259b5dc04eb137210dead6a64dd4cac754b1))
700- **deps-dev:** bump @types/node ([828a2e0](https://github.com/poolifier/poolifier/commit/828a2e030c8777b7fd5a342b693f9e75beb7b9cf))
701- **deps-dev:** bump @types/node ([7109e5b](https://github.com/poolifier/poolifier/commit/7109e5b3b0a6d2e3f3391003be9539eb8fd8bd14))
702- **deps-dev:** bump @types/node ([6f81d57](https://github.com/poolifier/poolifier/commit/6f81d5738358fa5cf67e28402823097c08594eb7))
703- **deps-dev:** bump @types/node ([dc6b47a](https://github.com/poolifier/poolifier/commit/dc6b47a68c6c90b41cedde8e79d0c89709c47d87))
704- **deps-dev:** bump @types/node from 20.14.9 to 20.14.10 ([4c07331](https://github.com/poolifier/poolifier/commit/4c073317e4ad123465ecfdc99491e0291d3fd23d))
705- **deps:** bump poolifier ([9b11cba](https://github.com/poolifier/poolifier/commit/9b11cbaa8455a707c258312a650953eff5de0134))
706- **deps:** bump poolifier ([4c39d13](https://github.com/poolifier/poolifier/commit/4c39d13d36114a267be20a173c60748c6ec5a781))
707- **deps:** bump poolifier ([b0ad3bc](https://github.com/poolifier/poolifier/commit/b0ad3bc6f5ec8e41009b5e81a1fd8f7fe1c4d7a0))
708- **deps:** bump poolifier ([aa6ea2c](https://github.com/poolifier/poolifier/commit/aa6ea2cc4d821059d32337b12c796c2fcfd85a67))
709- **deps:** bump poolifier ([ec4d611](https://github.com/poolifier/poolifier/commit/ec4d611b0e5edab030049780ff9fbbcfc19ad8ee))
710- **deps:** bump poolifier ([cc4e9f0](https://github.com/poolifier/poolifier/commit/cc4e9f0106040f64e56997a51ec5b0004964e789))
711- **deps:** bump poolifier ([6e1b4de](https://github.com/poolifier/poolifier/commit/6e1b4deb9d36d5bf1f50f506683a11766cbe50de))
712- **deps:** bump poolifier ([8e21198](https://github.com/poolifier/poolifier/commit/8e2119854c17a555b3d5eb003afca5ab46bc85bc))
713- **deps:** bump poolifier in /examples/typescript/http-client-pool ([7961830](https://github.com/poolifier/poolifier/commit/796183039d0ad99114f0cff66513ac4165016678))
714- **deps:** bump poolifier in /examples/typescript/smtp-client-pool ([475dc40](https://github.com/poolifier/poolifier/commit/475dc409159cc97c715d2706ba68dd088be4026b))
c2161373 715
3b637906
JB
716## [4.0.16](https://github.com/poolifier/poolifier/compare/v4.0.15...v4.0.16) (2024-07-05)
717
3b637906
JB
718### 📚 Documentation
719
1823a63f
JB
720- generate documentation ([224d008](https://github.com/poolifier/poolifier/commit/224d008191f52fa20b93e1ba67919569f8d6e315))
721- generate documentation ([627fc57](https://github.com/poolifier/poolifier/commit/627fc572465ba2113cbf3df6bd055c3242ecd0fe))
722- refine PR template ([f5e9127](https://github.com/poolifier/poolifier/commit/f5e91274ea67f61521fadf0ccbafc6d00f5d3b87))
723- refine PR template ([e95501c](https://github.com/poolifier/poolifier/commit/e95501c05febf08366d375218728d5778432c1de))
724- refine README.md badges ([7169bda](https://github.com/poolifier/poolifier/commit/7169bda30538a5244b2598a4ef466c5687953ebd))
3b637906
JB
725
726### ✨ Polish
727
1823a63f
JB
728- **ci:** cleanup GH actions ([c5db2d3](https://github.com/poolifier/poolifier/commit/c5db2d3ea50692486410eb1a33e5bb51d6d4181e))
729- code reformatting ([fe6df28](https://github.com/poolifier/poolifier/commit/fe6df2852c1f0964cdffb0698461c9d66b1cf7ed))
730- refine biome.js configuration ([1352ca7](https://github.com/poolifier/poolifier/commit/1352ca70c0b5c6b4ff3813b0c24354b5514b2796))
731- silence linter ([a17b6fe](https://github.com/poolifier/poolifier/commit/a17b6fe6a9b7cde367fa1f1a0a89f6ee5db46ad6))
3b637906
JB
732
733### 🤖 Automation
734
1823a63f
JB
735- **ci:** add autofix GH action ([14b39b9](https://github.com/poolifier/poolifier/commit/14b39b9c09ab382fa25dcb0d52c50b6d05a3affb))
736- **ci:** do not cancel workflow in case of autofix failure ([177dbab](https://github.com/poolifier/poolifier/commit/177dbab8accac6267be8973103757de31f4a4c23))
737- **ci:** fix autofix GH action ([e3a9678](https://github.com/poolifier/poolifier/commit/e3a9678311f735b7c951c5d72f26ef86c7beca9c))
738- **ci:** fix autofix GH action ([0b7cbf7](https://github.com/poolifier/poolifier/commit/0b7cbf73dfdc8346132c002ba9c83fdafe286ee2))
739- **ci:** fix eslint configuration ([c5d7f73](https://github.com/poolifier/poolifier/commit/c5d7f736e1e8c36a2c2d9cbe30e86d1d3ba863a1))
740- **ci:** publish documentation at release ([3a83d94](https://github.com/poolifier/poolifier/commit/3a83d94cd44b504e3b9a3f3b15e9dec4f8c33d49))
741- **ci:** refine autofix GH action ([8b7aa42](https://github.com/poolifier/poolifier/commit/8b7aa4204c27efd1dc699f7baea65b5262bd26b3))
742- **ci:** refine autofix GH action ([8ab143b](https://github.com/poolifier/poolifier/commit/8ab143bb67ef7fb367d771c652cc44df70c9b625))
743- **ci:** switch to release-please release manager ([4c7e68a](https://github.com/poolifier/poolifier/commit/4c7e68aa71533a8ef98296d2f50a2aac898d6b17))
744- **deps-dev:** apply updates ([5c48a85](https://github.com/poolifier/poolifier/commit/5c48a8596b49dec06ec8995df4941ad63cc68f46))
745- **deps-dev:** apply updates ([f94bb23](https://github.com/poolifier/poolifier/commit/f94bb23c8a460415f01bee2a34bf1e56b74236a8))
746- **deps-dev:** apply updates ([1e98512](https://github.com/poolifier/poolifier/commit/1e9851233c950074ccbb5cd525fc0f4075e491d4))
747- **deps-dev:** apply updates ([aaceda9](https://github.com/poolifier/poolifier/commit/aaceda9e4a134d9f8d3db37e349a18e7b2b1c303))
748- **deps-dev:** apply updates ([3dcc95e](https://github.com/poolifier/poolifier/commit/3dcc95e54a6bfeb4b27460d60d3c90d27ac352dd))
749- **deps-dev:** apply updates ([0aa0016](https://github.com/poolifier/poolifier/commit/0aa00166eaa9a8c9b505b4fa7fd5dc50d831b7ef))
750- **deps-dev:** apply updates ([dea4237](https://github.com/poolifier/poolifier/commit/dea42379cfdbcf1c1c9800df7c097eab484ebc07))
751- **deps-dev:** apply updates ([e06ce0e](https://github.com/poolifier/poolifier/commit/e06ce0ec82c8c076d6136f85f12101181d922612))
752- **deps-dev:** apply updates ([80605a6](https://github.com/poolifier/poolifier/commit/80605a6c89c41c5b71e83385f615f85483987ea1))
753- **deps-dev:** apply updates ([3b594fe](https://github.com/poolifier/poolifier/commit/3b594fe1b0f89d6665da2eb2ebdc14eb7628fe70))
754- **deps-dev:** apply updates ([df01d9a](https://github.com/poolifier/poolifier/commit/df01d9a8a7053a4ff33e704cd5493f0a7bc4e2e7))
755- **deps-dev:** apply updates ([a1b4a65](https://github.com/poolifier/poolifier/commit/a1b4a65143c0253b57fee18affd88a554122e955))
756- **deps-dev:** apply updates ([31a42de](https://github.com/poolifier/poolifier/commit/31a42de7d691911759e12a673e5a2153f5558ed8))
757- **deps-dev:** bump @cspell/eslint-plugin from 8.9.0 to 8.9.1 ([0b4d6a4](https://github.com/poolifier/poolifier/commit/0b4d6a4b0255f0172da50a9ba3989d21725027a5))
758- **deps-dev:** bump eslint-plugin-jsdoc from 48.2.13 to 48.4.0 ([195a874](https://github.com/poolifier/poolifier/commit/195a874e9537a715e04b54e44c9a4eef04b1fefa))
759- **deps-dev:** bump mocha from 10.4.0 to 10.5.0 ([b1b2093](https://github.com/poolifier/poolifier/commit/b1b20933105fb3c21f3d3825dc18a87501ad8275))
760- **deps-dev:** bump mocha from 10.5.1 to 10.5.2 ([a4d1195](https://github.com/poolifier/poolifier/commit/a4d1195cd5b6d60f0d4424b32c638d304023e15e))
761- **deps-dev:** bump neostandard from 0.7.2 to 0.8.0 ([7344812](https://github.com/poolifier/poolifier/commit/7344812ff30f82f3b7b88383eca5564c398d2de0))
762- **deps-dev:** bump typedoc from 0.26.0 to 0.26.2 ([8004ea7](https://github.com/poolifier/poolifier/commit/8004ea76f77c3dee098569b37bc9dec9e82f8fe3))
763- **deps-dev:** bump typescript ([fca1e52](https://github.com/poolifier/poolifier/commit/fca1e522f2df0e93e302e6278dc4725b2e28f561))
764- **deps-dev:** bump typescript ([345d416](https://github.com/poolifier/poolifier/commit/345d416980bd3204398e730ca259d1755dcd0f64))
765- **deps-dev:** bump typescript ([3aa8d66](https://github.com/poolifier/poolifier/commit/3aa8d6646706dd32bbd96795330f0a5365d52efa))
766- **deps-dev:** bump typescript ([8837306](https://github.com/poolifier/poolifier/commit/8837306853d6b01efaf67bf69f129fc9ca47b071))
767- **deps-dev:** bump typescript ([0b79799](https://github.com/poolifier/poolifier/commit/0b797997c9340aac75c7be6e5559b08076c387e7))
768- **deps-dev:** bump typescript ([995d429](https://github.com/poolifier/poolifier/commit/995d429cce313177943d54e9c1f3e02a1cdc8c31))
769- **deps-dev:** bump typescript ([2905914](https://github.com/poolifier/poolifier/commit/2905914e6e410cff2a1f8a75c8184abf701d7a16))
770- **deps-dev:** bump typescript ([f2c2f1b](https://github.com/poolifier/poolifier/commit/f2c2f1b196b0cac64235304b5df4b24a97d09ffb))
771- **deps-dev:** bump typescript ([37b0774](https://github.com/poolifier/poolifier/commit/37b07742956c3d25debda0048a60afd3659b547f))
772- **deps-dev:** bump typescript ([f4a2509](https://github.com/poolifier/poolifier/commit/f4a2509b88456b0f6d16c8348c1e07470a94415f))
773- **deps-dev:** bump typescript ([97bb99a](https://github.com/poolifier/poolifier/commit/97bb99ac1e28c87f59b75ea23a9c6643a8fba9c4))
774- **deps:** bump poolifier ([5d5410e](https://github.com/poolifier/poolifier/commit/5d5410ec4203bc1ffa0a81fa52de85971916fed8))
775- **deps:** bump poolifier ([177e46b](https://github.com/poolifier/poolifier/commit/177e46bb9cab33ad65c64b3dd5fd524bb0ac1eef))
776- **deps:** bump poolifier ([580433b](https://github.com/poolifier/poolifier/commit/580433bc22585b6565a3404466a13e5babfd23fa))
777- **deps:** bump poolifier ([a0583d4](https://github.com/poolifier/poolifier/commit/a0583d40e971f43f47b79fd049e99c069db8cac1))
778- **deps:** bump poolifier ([161136f](https://github.com/poolifier/poolifier/commit/161136fe626ea7de93956b2e1e6228ffd6eba209))
779- **deps:** bump poolifier ([70075ce](https://github.com/poolifier/poolifier/commit/70075ce9218f5a5a07c0decf0068775ae351c356))
780- **deps:** bump poolifier ([d74c068](https://github.com/poolifier/poolifier/commit/d74c0684cb549b12897e79e31508b3cad5152456))
781- **deps:** bump poolifier ([b8e4e7d](https://github.com/poolifier/poolifier/commit/b8e4e7dec768e992ba38e29dee0a0194eeb4fd50))
782- **deps:** bump poolifier ([239d223](https://github.com/poolifier/poolifier/commit/239d22372bddd21106b22361038be2f3aae6e5de))
783- **deps:** bump poolifier in /examples/typescript/http-client-pool ([1e6c12d](https://github.com/poolifier/poolifier/commit/1e6c12d988c87fdf1f95a2ffece8c1c76e49bcf3))
784- **deps:** bump poolifier in /examples/typescript/smtp-client-pool ([4c29535](https://github.com/poolifier/poolifier/commit/4c29535a8e8669608907f0db799efa1c94f17421))
785- **deps:** bump ws ([5ae7d26](https://github.com/poolifier/poolifier/commit/5ae7d26a61d9a13e49ccde6117c02d26f49d841d))
786- **deps:** bump ws ([5fea98e](https://github.com/poolifier/poolifier/commit/5fea98eac18f518cb3c76dfed5e514e1aa27ecee))
787- **deps:** bump ws ([cf6f83d](https://github.com/poolifier/poolifier/commit/cf6f83dd588e71b440f1454dd592c1e8029ada6d))
3b637906 788
e8701e36
JB
789## [4.0.15] - 2024-06-20
790
017f9985
JB
791### Fixed
792
793- Fix priority queue dequeue() from the last prioritized bucket.
794
13b6dfca
JB
795## [4.0.14] - 2024-06-12
796
1b82b7cd
JB
797### Changed
798
262e9314 799- Add mapExecute() helper to execute a task function on an iterable data's input.
1b82b7cd 800
b3b1857b
JB
801## [4.0.13] - 2024-05-29
802
fcfc3353
JB
803### Changed
804
805- Optimize tasks queue implementation.
806- Enable prioritized tasks queueing only when necessary.
807
8e41ea40
JB
808## [4.0.12] - 2024-05-25
809
cccbe18a
JB
810### Changed
811
812- Optimize circular buffer implementation to store task execution measurements.
813
b537ee9c
JB
814## [4.0.11] - 2024-05-21
815
05a852b8
JB
816### Changed
817
686b339e 818- Switch to optimized circular buffer implementation to store task execution measurements.
05a852b8 819
40d04d55
JB
820## [4.0.10] - 2024-05-20
821
152e87a8
JB
822### Fixed
823
824- Ensure tasks stealing dynamic worker node is not destroyed on inactivity.
825
ea2c5b8b
JB
826## [4.0.9] - 2024-05-19
827
b947a3c0
JB
828### Changed
829
830- Add ELU `utilization` statistics to pool information.
831
a19a4833
JB
832## [4.0.8] - 2024-05-15
833
91041638
JB
834### Fixed
835
836- Fix default task function worker choice strategy and priority handling.
837
71ccb3ae
JB
838## [4.0.7] - 2024-05-13
839
533a8e22
JB
840### Changed
841
842- Add ELU statistics to pool information.
843
f829e037
JB
844## [4.0.6] - 2024-05-10
845
8a7b12f1
JB
846### Fixed
847
848- Fix pools' `addTaskFunction()` type definition.
849
7cdb9e56
JB
850## [4.0.5] - 2024-05-09
851
3e645903
JB
852### Fixed
853
854- Avoid queued tasks redistribution on the errored worker node.
855
97c12ef2
JB
856## [4.0.4] - 2024-05-08
857
2eee7220
JB
858### Fixed
859
860- Disable `tasksStealingOnBackPressure` by default until performance issues under heavy load are sorted out.
861
04f996c1
JB
862## [4.0.3] - 2024-05-08
863
0d4e88b3
JB
864### Changed
865
866- Optimize task(s) stealing by dequeuing task(s) from the last prioritized bucket.
867
0de45de9
JB
868## [4.0.2] - 2024-05-06
869
9a55fa8c
JB
870### Fixed
871
872- Ensure poolifier worker task performance measurement requirements are synchronized with task function objects' worker choice strategies.
873
840d1755
JB
874## [4.0.1] - 2024-05-02
875
e0843544
JB
876### Fixed
877
878- Ensure dynamic worker node are initialized with sensible worker node usage default values to avoid worker choice strategies biased decisions.
879- Account for tasks wait time in task execution time computation in worker choice strategies to avoid biased decisions under load with several prioritized task functions and tasks queue enabled.
880
f18b1430
JB
881## [4.0.0] - 2024-04-30
882
f7a08a34
JB
883### Changed
884
3e3e2e5d
JB
885- Support per task function(s) priority and worker choice strategy definition via a task function object: `{ taskFunction: (data?: Data) => Response | Promise<Response>, priority?: number, strategy?: WorkerChoiceStrategy }`.
886- Add priority queue based tasks queueing. One priority queue is divided into prioritized buckets to avoid queued tasks starvation under load.
f7a08a34 887- BREAKING CHANGE: `listTaskFunctionNames()` to `listTaskFunctionsProperties()` in pool and worker API returning registered task functions properties.
3e3e2e5d
JB
888- BREAKING CHANGE: `strategy` field in pool information renamed to `defaultStrategy`.
889
890### Fixed
891
892- Ensure worker choice strategy options changes at runtime are propagated to poolifier workers.
f7a08a34 893
48eab590
JB
894## [3.1.30] - 2024-04-22
895
3e3e2e5d 896### Fixed
22bcc4f1
JB
897
898- Fix `transferList` argument type definition.
899
a2568a26
JB
900## [3.1.29] - 2024-04-02
901
3d720596
JB
902### Fixed
903
904- Fix possible race condition at worker node recreation on worker `error` and `exit` events.
905
d1fc382e
JB
906## [3.1.28] - 2024-04-01
907
60dc0a9c
JB
908### Fixed
909
910- Ensure the minimum number of workers on a started pool is guaranteed.
911
cf4c4b77
JB
912## [3.1.27] - 2024-03-27
913
1fee4f60
JB
914### Fixed
915
916- Fix publishing on JSR, take 4.
917
ac1f550f
JB
918## [3.1.26] - 2024-03-27
919
4ba59505
JB
920### Fixed
921
922- Fix publishing on JSR, take 3.
923
3b58238c
JB
924## [3.1.25] - 2024-03-27
925
41328ae5
JB
926### Fixed
927
928- Fix publishing on JSR, take 2.
929
8fddc9ad
JB
930## [3.1.24] - 2024-03-27
931
fcc6278e
JB
932### Fixed
933
934- Fix publishing on JSR.
935
7586f5a8
JB
936## [3.1.23] - 2024-03-27
937
b7bb8586
JB
938### Changed
939
940- Publish on JSR.
941
01f4a5ce
JB
942## [3.1.22] - 2024-03-15
943
d67bed32
JB
944### Fixed
945
946- Fix pool event emitter registered callbacks removal at `destroy()`.
947
6fd820e6
JB
948## [3.1.21] - 2024-02-22
949
369179f6
JB
950### Fixed
951
952- Fix null exception regression: [#1496](https://github.com/poolifier/poolifier/issues/1496).
953
c96e6364
JB
954## [3.1.20] - 2024-02-11
955
d20cde84
JB
956### Fixed
957
958- Ensure `worker_threads` workers are unreferenced at termination.
959
a7358578
JB
960## [3.1.19] - 2024-01-16
961
16d7e943
JB
962### Fixed
963
964- Fix possible null exception at task finishing handling.
965
57bf289f
JB
966### Changed
967
968- Optimize Deque implementation to improve tasks queueing performance.
969
7cf320c9
JB
970## [3.1.18] - 2024-01-06
971
6d7beb8c
JB
972### Fixed
973
974- Fix dynamic pool with minimum number of workers set to zero: [#1748](https://github.com/poolifier/poolifier/issues/1748).
975
a4bc8d0e
JB
976## [3.1.17] - 2024-01-05
977
2b6b412f
JB
978### Changed
979
980- Improve performance by clean up unneeded condition checks on hot code paths.
981
0d64fd53
JB
982## [3.1.16] - 2024-01-03
983
4302d959
JB
984### Fixed
985
986- Add missing type to TS type definitions.
987
9122cc2c
JB
988## [3.1.15] - 2024-01-02
989
a4d25410
JB
990### Fixed
991
992- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
993
565b7e65
JB
994## [3.1.15-0] - 2024-01-02
995
63406ebd
JB
996### Fixed
997
a4d25410 998- Fix CommonJS support with TypeScript: [#1821](https://github.com/poolifier/poolifier/issues/1821).
63406ebd 999
56412ef4
JB
1000## [3.1.14] - 2024-01-01
1001
e44639e9
JB
1002### Fixed
1003
1004- Properly handle dynamic pool with zero minimum size.
1005
5e133e82
JB
1006## [3.1.13] - 2023-12-30
1007
b20bf19a
JB
1008### Changed
1009
1010- Reduce branching in several hot code paths.
1011- Use faster object cloning implementation.
1012
60aa9f2f
JB
1013## [3.1.12] - 2023-12-27
1014
28883f84
JB
1015### Fixed
1016
1017- Fix tasks redistribution triggers at pool destroying.
1018
1019### Changed
1020
1021- Switch TypeScript module resolution to Node16.
1022
164c80dd
JB
1023## [3.1.12-0] - 2023-12-27
1024
f4ef37a8
JB
1025### Fixed
1026
1027- Fix tasks redistribution triggers at pool destroying.
1028
0766991a
JB
1029## [3.1.11] - 2023-12-24
1030
5eb72b9e
JB
1031### Fixed
1032
1033- Avoid worker node cross tasks stealing.
1034- Ensure only half the pool worker nodes can steal tasks.
1035
4618ccfd
JB
1036## [3.1.10] - 2023-12-23
1037
09616edb
JB
1038### Changed
1039
1040- Avoid useless branching on pool type.
1041
bba20209
JB
1042## [3.1.9] - 2023-12-22
1043
2889bd70
JB
1044### Changed
1045
1046- Readd ThreadPoolOptions and ClusterPoolOptions TS type aliases to PoolOptions.
1047
b1bbc365
JB
1048## [3.1.8] - 2023-12-21
1049
ad3836ed
JB
1050### Fixed
1051
1052- Fix default worker weight computation.
1053- Fix possible null exception at pool destroying.
1054
72523ab9
JB
1055## [3.1.7] - 2023-12-20
1056
55d7d600
JB
1057### Fixed
1058
1059- Ensure worker choice strategies implementation wait for worker node readiness: [#1748](https://github.com/poolifier/poolifier/issues/1748).
1060
165f3d56
JB
1061## [3.1.6] - 2023-12-18
1062
85b2561d
JB
1063### Fixed
1064
1065- Fix pool destroying with tasks queuing enabled.
1066
6c8cec9e
JB
1067## [3.1.5] - 2023-12-18
1068
32b141fd
JB
1069### Added
1070
1071- Add queued tasks end timeout support to worker node termination.
1072
f11ec29c
JB
1073## [3.1.4] - 2023-12-18
1074
4e0afe97
JB
1075### Fixed
1076
1077- Make more robust the fix for possible null exception at handling task execution response.
1078
f592ef16
JB
1079## [3.1.3] - 2023-12-17
1080
9b358e72
JB
1081### Fixed
1082
1083- Fix possible null exception at handling task execution response.
1084
c61772e5
JB
1085## [3.1.2] - 2023-12-17
1086
87347ea8
JB
1087### Fixed
1088
32b141fd 1089- Wait for queued tasks to end at worker node termination.
87347ea8 1090
6e664bec
JB
1091## [3.1.1] - 2023-12-16
1092
51280f9b
JB
1093### Fixed
1094
1095- Fix pool options TS type definition.
1096
5362c66b
JB
1097## [3.1.0] - 2023-12-16
1098
c3719753
JB
1099### Changed
1100
1101- TypeScript breaking change: merge ThreadPoolOptions and ClusterPoolOptions types into PoolOptions type.
1102
42321a2b
JB
1103## [3.0.14] - 2023-12-13
1104
fa548cda
JB
1105### Fixed
1106
1107- Fix possible null exception with worker_threads pools.
1108
d727d871
JB
1109## [3.0.13] - 2023-12-12
1110
fb5a7307
JB
1111### Fixed
1112
1113- Ensure worker choice strategy wait for worker nodes readiness.
1114
1115### Changed
1116
1117- Remove infinite retries support in worker choice strategy to avoid configuration leading to possible infinite recursion or loop.
1118
90a43710
JB
1119## [3.0.12] - 2023-12-12
1120
9aa78bcb
JB
1121### Changed
1122
1123- Add infinite retries support in worker choice strategy.
45a5a54c 1124
d8163b08
JB
1125## [3.0.11] - 2023-12-11
1126
f18fd12b
JB
1127### Fixed
1128
457dd3dc 1129- Ensure pool asynchronous resource properly track tasks execution.
f18fd12b 1130
bd453998
JB
1131## [3.0.10] - 2023-12-08
1132
cb71d660
JB
1133### Changed
1134
457dd3dc 1135- Add a fastpath when tasks stealing or redistribution is impossible.
cb71d660 1136
d7164344
JB
1137## [3.0.9] - 2023-11-26
1138
78f60f82
JB
1139### Fixed
1140
1141- Remove all pool events listener at pool destroying.
1142- Remove all worker node events listener at worker node destroying.
9f99eb9b 1143- Fix worker node event emitter listeners handling memory leak at pool options runtime change.
78f60f82 1144
0c08a681
JB
1145## [3.0.8] - 2023-11-25
1146
463226a4
JB
1147### Fixed
1148
457dd3dc 1149- Ensure continuous tasks stealing on idle start at worker node idling.
463226a4 1150
14dad1fd
JB
1151## [3.0.7] - 2023-11-24
1152
65542a35
JB
1153### Changed
1154
1155- Make continuous tasks stealing start at worker node idling.
1156
82c5db63
JB
1157## [3.0.6] - 2023-11-24
1158
711623b8
JB
1159### Fixed
1160
b51d8596 1161- Ensure pool statuses are checked at initialization, `start()` or `destroy()`.
55082af9 1162- Ensure pool `ready` event can be emitted after several `start()/destroy()` cycles.
711623b8 1163
5aa31a74
JB
1164## [3.0.5] - 2023-10-27
1165
d91689fd
JB
1166### Fixed
1167
55082af9 1168- Ensure pool `ready` event can be emitted only once.
d91689fd 1169
597775b2
JB
1170## [3.0.4] - 2023-10-20
1171
03fb313b
JB
1172### Changed
1173
49d60f11 1174- Switch to Bencher for benchmarking: [https://bencher.dev/perf/poolifier](https://bencher.dev/perf/poolifier).
03fb313b
JB
1175- Use builtin retry mechanism in worker choice strategies instead of custom one.
1176
6c285176
JB
1177## [3.0.3] - 2023-10-19
1178
9761e404
JB
1179### Fixed
1180
1181- Avoid null exception at sending message to worker.
535fd8d5 1182- Avoid null exception at checking worker node readiness.
9761e404 1183
358dc40f
JB
1184## [3.0.2] - 2023-10-17
1185
97256a85
JB
1186### Fixed
1187
c3c2b35e 1188- Fix race condition at dynamic worker node task assignment and scheduled removal. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468) and [#1496](https://github.com/poolifier/poolifier/issues/1496).
97256a85 1189
7a570743
JB
1190## [3.0.1] - 2023-10-16
1191
dbfa7948
JB
1192### Fixed
1193
fc84edac 1194- Workaround possible race condition at work nodes array element removal and querying. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468).
dbfa7948 1195
365f13e4
JB
1196### Changed
1197
c3c2b35e 1198- Switch the worker node eventing code to `EventTarget` API.
365f13e4 1199
003b3275
JB
1200## [3.0.0] - 2023-10-08
1201
277c49bf
JB
1202### Changed
1203
1204- Remove Node.js 16.x.x (EOL) support.
1205
3c9e911a
JB
1206## [2.7.5] - 2023-10-03
1207
f80125ca
JB
1208### Changed
1209
1210- Use `EventEmitterAsyncResource` type from `@types/node` for pool event emitter. TypeScript users will need to update to latest `@types/node` version.
1211
3466e757
JB
1212## [2.7.4] - 2023-09-25
1213
67b26ae2
JB
1214### Fixed
1215
1216- Fix source maps (bundler issue).
1217
eeb1f961
JB
1218## [2.7.3] - 2023-09-24
1219
b5604034
JB
1220### Changed
1221
1222- Convert pool event emitter to event emitter async resource.
1223
f2df6dc8
JB
1224## [2.7.2] - 2023-09-23
1225
116ca64b
JB
1226### Changed
1227
1228- Add source maps to npm package to ease debugging.
1229
1e319a70
JB
1230### Added
1231
1232- Continuous benchmarking versus other worker pools: [https://poolifier.github.io/benchmark](https://poolifier.github.io/benchmark).
1233
aab2819b
JB
1234## [2.7.1] - 2023-09-20
1235
ae036c3e
JB
1236### Fixed
1237
1238- Ensure worker message listener used one time are removed after usage.
1239
15d7c489
JB
1240## [2.7.0] - 2023-09-19
1241
160557ff
JB
1242### Fixed
1243
1244- Fix task stealing related tasks queue options handling at runtime.
1245
c3284191
JB
1246### Changed
1247
1248- Rename `listTaskFunctions()` to `listTaskFunctionNames()` in pool and worker API.
1249
1250### Added
1251
35808931 1252- Add `hasTaskFunction()`, `addTaskFunction()`, `removeTaskFunction()`, `setDefaultTaskFunction()` methods to pool API: [PR #1148](https://github.com/poolifier/poolifier/pull/1148).
c20084b6 1253- Stricter worker constructor arguments validation.
c3284191 1254
04054352
JB
1255## [2.6.45] - 2023-09-17
1256
093af25b
JB
1257### Changed
1258
1259- Disable publication on GitHub packages registry on release until authentication issue is fixed.
09d9af02
JB
1260
1261### Added
1262
ce0ab2d7 1263- Add `startWorkers` to pool options to whether start the minimum number of workers at pool initialization or not.
cde5b54e 1264- Add `start()` method to pool API to start the minimum number of workers.
2eee7220 1265- Add `taskStealing` and `tasksStealingOnBackPressure` to tasks queue options to whether enable task stealing or not and whether enable tasks stealing under back pressure or not.
1e319a70 1266- Continuous internal benchmarking: [https://poolifier.github.io/benchmark-results/dev/bench](https://poolifier.github.io/benchmark-results/dev/bench).
f1c674cd 1267
bce9ffdf
JB
1268## [2.6.44] - 2023-09-08
1269
4cb259d3
JB
1270### Fixed
1271
1272- Use a dedicated PAT to publish on GitHub packages registry.
1273
1274### Added
1275
1276- Publish on GitHub packages registry on release.
1277
1278### Changed
1279
1280- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
1281
fbda1e26
JB
1282## [2.6.43] - 2023-09-08
1283
15fc82ba
JB
1284### Added
1285
4cb259d3 1286- Publish on GitHub packages registry on release.
15fc82ba
JB
1287
1288### Changed
1289
4cb259d3 1290- Switch from rome to biome: [PR #1128](https://github.com/poolifier/poolifier/pull/1128).
15fc82ba 1291
b47306a3
JB
1292## [2.6.42] - 2023-09-06
1293
ad11ca81
JB
1294### Changed
1295
1296- Optimize hot code paths implementation: avoid unnecessary branching, add and use optimized helpers (min, max), use reduce() array helper, ...
1297
1b37751d
JB
1298## [2.6.41] - 2023-09-03
1299
f3a91bac
JB
1300### Changed
1301
1302- Optimize worker choice strategies implementation.
1303
7790a494
JB
1304## [2.6.40] - 2023-09-01
1305
6fe200b4
JB
1306### Fixed
1307
1308- Do not pre-choose in WRR worker choice strategy to avoid bias.
68738842 1309- Avoid array out of bound in worker choice strategies after worker node removal.
6fe200b4 1310
766c7f84
JB
1311## [2.6.39] - 2023-08-30
1312
edf8ce4e
JB
1313### Fixed
1314
4cb259d3 1315- Fix race condition in worker choice strategies at worker node info querying while not yet initialized.
edf8ce4e 1316
904a5689
JB
1317## [2.6.38] - 2023-08-30
1318
b40c4b06
JB
1319### Added
1320
1321- Bundle typescript types declaration into one file.
1322
619f403b
JB
1323### Changed
1324
1325- Improve interleaved weighted round robin worker choice strategy implementation.
1326
5a24d71c
JB
1327## [2.6.37] - 2023-08-28
1328
bdb9d712
JB
1329### Fixed
1330
1331- Ensure unused worker usage statistics are deleted at runtime.
1332
8c0b113f
JB
1333### Changed
1334
1335- Rename worker choice strategy options `choiceRetries` to `retries`.
574c5c8d 1336- Avoid unnecessary branching in worker choice strategies.
8c0b113f 1337
ba821940
JB
1338## [2.6.36] - 2023-08-27
1339
9d2d0da1
JB
1340### Fixed
1341
1342- Fix pool `execute()` arguments check.
1343
1f0766e7
JB
1344### Changed
1345
1346- Make continuous tasks stealing algorithm less aggressive.
8780236f 1347- Fine tune tasks stealing algorithm under back pressure.
1f0766e7 1348
ffd2c1ff
JB
1349## [2.6.35] - 2023-08-25
1350
dc021bcc
JB
1351### Fixed
1352
1353- Don't account worker usage statistics for tasks that have failed.
3baa0837 1354- Fix pool information runtime and wait time median computation.
dc021bcc
JB
1355
1356### Changed
1357
1358- Update simple moving average implementation to use a circular buffer.
1359- Update simple moving median implementation to use a circular buffer.
68cbdc84
JB
1360- Account for stolen tasks in worker usage statistics and pool information.
1361
1362### Added
1363
1364- Continuous tasks stealing algorithm.
dc021bcc 1365
c58bc2a1
JB
1366## [2.6.34] - 2023-08-24
1367
0bc68267
JB
1368### Fixes
1369
1370- Avoid cascading tasks stealing under back pressure.
1371
1372### Changed
1373
1374- Add fastpath to queued tasks rescheduling.
1375
39fb7ad0
JB
1376## [2.6.33] - 2023-08-24
1377
dd951876
JB
1378### Fixed
1379
1380- Fix queued tasks rescheduling.
1381
ff3f866a
JB
1382### Changed
1383
1384- Rename tasks queue options `queueMaxSize` to `size`.
1385
a6b3272b 1386### Added
dd951876 1387
a6b3272b 1388- Task stealing scheduling algorithm if tasks queueing is enabled.
dd951876 1389
c55c9b5d
JB
1390## [2.6.32] - 2023-08-23
1391
15b176e0
JB
1392### Fixed
1393
1394- Ensure no task can be executed when the pool is destroyed.
1395
20c6f652
JB
1396### Added
1397
1398- Add `queueMaxSize` option to tasks queue options.
574b351d 1399- Add O(1) deque implementation implemented with doubly linked list and use it for tasks queueing.
72695f86 1400- Add tasks stealing algorithm when a worker node queue is back pressured if tasks queueing is enabled.
20c6f652 1401
e560a9f2
JB
1402## [2.6.31] - 2023-08-20
1403
b1aae695
JB
1404### Fixed
1405
3e8611a8 1406- Fix worker choice strategy retries mechanism in some edge cases.
b1aae695 1407
94407def
JB
1408### Changed
1409
e695d66f 1410- Make orthogonal worker choice strategies tasks distribution and created dynamic worker usage.
a71b05bc 1411- Remove the experimental status of the `LEAST_ELU` worker choice strategy.
94407def 1412
962b9863
JB
1413## [2.6.30] - 2023-08-19
1414
33e6bb4c
JB
1415### Fixed
1416
1417- Ensure pool event `backPressure` is emitted.
1418- Ensure pool event `full` is emitted only once.
8735b4e5 1419- Ensure worker node cannot be instantiated without proper arguments.
33e6bb4c 1420
8cc4ea81
JB
1421## [2.6.29] - 2023-08-18
1422
6169563b
JB
1423### Fixed
1424
55082af9 1425- Fix race condition between readiness and task functions worker message handling at startup.
5dd4043c 1426- Fix duplicate task function worker usage statistics computation per task function.
db0e38ee 1427- Update task function worker usage statistics if and only if there's at least two different task functions.
5bb5be17 1428- Fix race condition at task function worker usage executing task computation leading to negative value.
6169563b 1429
8990357d
JB
1430### Added
1431
445264e8 1432- Add back pressure detection on the worker node queue. Event `backPressure` is emitted when all worker node queues are full (worker node queue size >= poolMaxSize^2).
8990357d
JB
1433- Use back pressure detection in worker choice strategies.
1434- Add worker choice strategies retries mechanism if no worker is eligible.
1435
21157987
JB
1436## [2.6.28] - 2023-08-16
1437
f05ed93c
JB
1438### Fixed
1439
1440- Ensure pool workers are properly initialized.
1441
12d67776
JB
1442### Added
1443
1444- HTTP server pool examples: express-cluster, express-hybrid.
1445
d18fccb1
JB
1446### Changed
1447
1448- Remove now useless branching in worker hot code path.
1449
741cdb34
JB
1450## [2.6.27] - 2023-08-15
1451
50e7f498
JB
1452### Fixed
1453
1454- Add `KillHandler` type definition to exported types.
1455
ef3891a3
JB
1456### Added
1457
1458- Add `destroy` event to pool API.
1459
e9dc6efa
JB
1460## [2.6.26] - 2023-08-15
1461
2b099bf7
JB
1462### Added
1463
1464- Add kill handler to worker options allowing to execute custom code when worker is killed.
ef3891a3 1465- Add `listTaskFunctions()` method to pool API.
1f4553c6 1466- SMTP client pool example: nodemailer.
2b099bf7 1467
5b726f72
JB
1468## [2.6.25] - 2023-08-13
1469
72855e92
JB
1470### Added
1471
3b311539 1472- HTTP server pool examples: fastify-cluster, fastify-hybrid.
02999424 1473- WebSocket server pool examples: ws-cluster, ws-hybrid.
72855e92 1474
7aadd6e5
JB
1475## [2.6.24] - 2023-08-12
1476
7d91a8cd
JB
1477### Added
1478
1479- Add array of transferable objects to the `execute()` method arguments.
02999424 1480- WebSocket server pool examples: ws-worker_threads.
7d91a8cd 1481
6b4263b4
JB
1482## [2.6.23] - 2023-08-11
1483
3d76750a 1484### Fixed
8e0af894 1485
3d76750a 1486- Fix pool busyness semantic when tasks queueing is enabled: the pool is busy when the number of executing tasks on each worker has reached the maximum tasks concurrency per worker.
9606b474 1487
3d76750a
JB
1488### Added
1489
1490- HTTP client pool examples: fetch, node-fetch and axios with multiple task functions.
02999424 1491- HTTP server pool examples: express-worker_threads, fastify-worker_threads.
3d76750a
JB
1492
1493## [2.6.22] - 2023-08-10
9606b474 1494
3d76750a 1495### Fixed
9606b474
JB
1496
1497- Add missing `types` field to package.json `exports`.
1498
3d76750a
JB
1499### Changed
1500
1501- Structure markdown documentation (PR #811).
1502
d9647bdd
JB
1503## [2.6.21] - 2023-08-03
1504
2111ec12
JB
1505### Changed
1506
1507- Improve code documentation.
1508- Code refactoring and cleanup for better maintainability and readability.
1509
5c30b9d9
JB
1510## [2.6.20] - 2023-07-21
1511
10ecf8fd
JB
1512### Fixed
1513
1514- Fix queued tasks redistribution on error task execution starvation.
a1763c54 1515- Ensure tasks queueing per worker condition is untangled from the pool busyness semantic.
10ecf8fd 1516
aa9eede8
JB
1517### Changed
1518
7c89e6a4 1519- Drastically reduce lookups by worker in the worker nodes.
aa9eede8 1520
62485908
JB
1521## [2.6.19] - 2023-07-20
1522
2e2ef9c3
JB
1523### Added
1524
1525- Dedicated internal communication channel for worker_threads pools.
1526
8f4c9491
JB
1527## [2.6.18] - 2023-07-19
1528
8660b972
JB
1529### Changed
1530
1531- Code refactoring and cleanup for better maintainability and readability. Bundle size is a bit smaller.
1532
206a3519
JB
1533## [2.6.17] - 2023-07-16
1534
b4899fae
JB
1535### Added
1536
1a3e01ba 1537- Add `listTaskFunctions()` method to worker API.
b4899fae 1538
58a06a6c
JB
1539## [2.6.16] - 2023-07-12
1540
2a69b8c5
JB
1541### Fixed
1542
80520ca4 1543- Fix pool startup detection.
2a69b8c5
JB
1544- Fix worker task functions handling.
1545
b5900b02
JB
1546## [2.6.15] - 2023-07-11
1547
19dbc45b
JB
1548### Added
1549
1550- Take into account worker node readiness in worker choice strategies.
1551
4a0db581
JB
1552## [2.6.14] - 2023-07-10
1553
87e44747
JB
1554### Fixed
1555
1556- Fix task function statistics tracking.
1557
0265272f
JB
1558## [2.6.13] - 2023-07-10
1559
968a2e8c
JB
1560### Added
1561
1562- Add per task function statistics tracking.
782299f8 1563- Add public methods to manipulate the worker task functions at runtime.
968a2e8c 1564
44c8c00f
JB
1565## [2.6.12] - 2023-07-09
1566
aa4bf4b2
JB
1567### Fixed
1568
1569- Workaround import issue with `node:os` module in node 16.x.x.
1570
b7cfced1
JB
1571## [2.6.11] - 2023-07-09
1572
d5024c00
JB
1573### Fixed
1574
1575- Fix pool readiness semantic.
1576
f313a208
JB
1577## [2.6.10] - 2023-07-08
1578
2431bdb4
JB
1579### Fixed
1580
1581- Ensure workers are not recreated on error at pool startup.
1582
1583### Added
1584
1585- Add `ready` and `strategy` fields to pool information.
1586- Add pool event `ready` to notify when the number of workers created in the pool has reached the maximum size expected and are ready.
caadbd41 1587- Add dynamic pool sizing checks.
2431bdb4 1588
369d0a51
JB
1589## [2.6.9] - 2023-07-07
1590
2845f2a5
JB
1591### Fixed
1592
1593- Recreate the right worker type on uncaught exception.
1594
1595### Added
1596
1597- Add minimum and maximum to internal measurement statistics.
1dcf8b7b 1598- Add `runTime` and `waitTime` to pool information.
75d3401a 1599- Check worker inactive time only on dynamic worker.
2845f2a5 1600
fc97d613
JB
1601## [2.6.8] - 2023-07-03
1602
92b1feaa
JB
1603### Fixed
1604
1605- Brown paper bag release to fix version handling in pool information.
1606
52d54060
JB
1607## [2.6.7] - 2023-07-03
1608
5bc91f3e
JB
1609### Fixed
1610
1611- Ensure worker queued tasks at error are reassigned to other pool workers.
1612
afe0d5bf
JB
1613### Added
1614
1615- Add pool `utilization` ratio to pool information.
23ccf9d7 1616- Add `version` to pool information.
e5b3047d 1617- Add worker information to worker nodes.
afe0d5bf 1618
f42c583f
JB
1619## [2.6.6] - 2023-07-01
1620
6961ca9a
JB
1621### Added
1622
d5e3c4ff 1623- Add safe helper `availableParallelism()` to help sizing the pool.
6961ca9a 1624
3749facb
JB
1625### Fixed
1626
1627- Ensure message handler is only registered in worker.
1628
6fed2513
JB
1629## [2.6.5] - 2023-06-27
1630
c72f6987
JB
1631### Known issues
1632
70726c28 1633- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
c72f6987
JB
1634
1635### Fixed
1636
1637- Artificial version bump to 2.6.5 to workaround publication issue.
d5e3c4ff 1638- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
c72f6987
JB
1639- Ensure pool event is emitted before task error promise rejection.
1640- Fix queued tasks count computation.
1641
1642### Removed
1643
2fbe1783 1644- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
c72f6987 1645
6426631b
JB
1646## [2.6.4] - 2023-06-27
1647
941f9a7c
JB
1648### Known issues
1649
70726c28 1650- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782
941f9a7c 1651
2c039e43
JB
1652### Fixed
1653
d5e3c4ff 1654- Ensure cluster pool `destroy()` gracefully shutdowns worker's server.
2c039e43 1655- Ensure pool event is emitted before task error promise rejection.
9c16fb4b 1656- Fix queued tasks count computation.
2c039e43 1657
941f9a7c
JB
1658### Removed
1659
2fbe1783 1660- Remove unneeded worker_threads worker `MessageChannel` internal usage for IPC.
941f9a7c 1661
bc1b0765
JB
1662## [2.6.3] - 2023-06-19
1663
a6a2dc4c
JB
1664### Fixed
1665
1666- Ensure no tasks are queued when trying to soft kill a dynamic worker.
f0d7f803 1667- Update strategies internals after statistics computation.
a6a2dc4c 1668
7b56f532
JB
1669### Changed
1670
1671- Optimize O(1) queue implementation.
1672
b628596c
JB
1673## [2.6.2] - 2023-06-12
1674
a9e89d00
JB
1675### Fixed
1676
1677- Fix new worker use after creation in dynamic pool given the current worker choice strategy.
1678
4368a898
JB
1679## [2.6.1] - 2023-06-10
1680
931d43e2
JB
1681### Added
1682
13ab5b87 1683- Add worker choice strategy documentation: [README.md](./docs/worker-choice-strategies.md).
931d43e2 1684
f1c06930
JB
1685### Fixed
1686
1687- Fix average statistics computation: ensure failed tasks are not accounted.
1688
16671b07
JB
1689## [2.6.0] - 2023-06-09
1690
a1347286
JB
1691### Added
1692
5af9c0f7 1693- Add `LEAST_ELU` worker choice strategy (experimental).
9adcefab 1694- Add tasks ELU instead of runtime support to `FAIR_SHARE` worker choice strategy.
a1347286 1695
1c6fe997
JB
1696### Changed
1697
1698- Refactor pool worker node usage internals.
477f48e7 1699- Breaking change: refactor worker choice strategy statistics requirements: the syntax of the worker choice strategy options has changed.
f63a9dda 1700- Breaking change: pool information `info` property object fields have been renamed.
1c6fe997
JB
1701
1702### Fixed
1703
1704- Fix wait time accounting.
1705- Ensure worker choice strategy `LEAST_BUSY` accounts also tasks wait time.
1706- Ensure worker choice strategy `LEAST_USED` accounts also queued tasks.
1707
aa07d6ee
JB
1708## [2.5.4] - 2023-06-07
1709
b6b32453
JB
1710### Added
1711
1712- Add Event Loop Utilization (ELU) statistics to worker tasks usage.
1713
1714### Changed
1715
1716- Compute statistics at the worker level only if needed.
2fbe1783 1717- Add `worker_threads` options to thread pool options.
b6b32453 1718
272d4d8f
JB
1719### Fixed
1720
1721- Make the `LEAST_BUSY` strategy only relies on task runtime.
1722
ed47fb3d
JB
1723## [2.5.3] - 2023-06-04
1724
89a4abfd
JB
1725### Changed
1726
1727- Refine pool information content.
b4213b7f 1728- Limit pool internals public exposure.
89a4abfd 1729
8a9febf5
JB
1730## [2.5.2] - 2023-06-02
1731
91ee39ed
JB
1732### Added
1733
1734- Add `taskError` pool event for task execution error.
6b27d407 1735- Add pool information `info` property to pool.
91ee39ed
JB
1736- Emit pool information on `busy` and `full` pool events.
1737
8babb151
JB
1738## [2.5.1] - 2023-06-01
1739
0e05c4dc
JB
1740### Added
1741
1f68cede 1742- Add pool option `restartWorkerOnError` to restart worker on uncaught error. Default to `true`.
91ee39ed 1743- Add `error` pool event for uncaught worker error.
0e05c4dc 1744
a8766181
JB
1745## [2.5.0] - 2023-05-31
1746
e4543b14
JB
1747### Added
1748
1749- Switch pool event emitter to `EventEmitterAsyncResource`.
6da80d38 1750- Add tasks wait time accounting in per worker tasks usage.
5af9c0f7 1751- Add interleaved weighted round robin `INTERLEAVED_WEIGHTED_ROUND_ROBIN` worker choice strategy (experimental).
e4543b14
JB
1752
1753### Changed
1754
1755- Renamed worker choice strategy `LESS_BUSY` to `LEAST_BUSY` and `LESS_USED` to `LEAST_USED`.
1756
570efb11
JB
1757## [2.4.14] - 2023-05-09
1758
b0f28bad
JB
1759### Fixed
1760
1761- Ensure no undefined task runtime can land in the tasks history.
1762- Fix median computation implementation once again.
1763
110b6d13
JB
1764### Added
1765
1766- Unit tests for median and queue implementations.
1767
72584880
JB
1768## [2.4.13] - 2023-05-08
1769
b0d6ed8f
JB
1770### Fixed
1771
e3058615 1772- Fix worker choice strategy options validation.
b0d6ed8f
JB
1773- Fix fair share worker choice strategy internals update: ensure virtual task end timestamp is computed at task submission.
1774
06140c32
JB
1775## [2.4.12] - 2023-05-06
1776
a86b6df1
JB
1777### Added
1778
1779- Support multiple task functions per worker.
08f3f44c 1780- Add custom worker weights support to worker choice strategies options.
a86b6df1 1781
29ee7e9a
JB
1782### Changed
1783
1784- Use O(1) queue implementation for tasks queueing.
1785
0682ba15
JB
1786### Fixed
1787
1788- Fix median computation implementation.
1789- Fix fair share worker choice strategy internals update.
1790
936d53ec
JB
1791## [2.4.11] - 2023-04-23
1792
cb70b19d
JB
1793### Changed
1794
1795- Optimize free worker finding in worker choice strategies.
1796
15bb637a
JB
1797## [2.4.10] - 2023-04-15
1798
ef41a6e6
JB
1799### Fixed
1800
82ea6492 1801- Fix typescript type definition for task function: ensure the input data is optional.
ef41a6e6
JB
1802- Fix typescript type definition for pool execute(): ensure the input data is optional.
1803
181eb2b4
JB
1804## [2.4.9] - 2023-04-15
1805
a20f0ba5
JB
1806### Added
1807
1808- Add tasks queue enablement runtime setter to pool.
1809- Add tasks queue options runtime setter to pool.
1810- Add worker choice strategy options runtime setter to pool.
1811
1812### Changed
1813
1814- Remove the tasks queuing experimental status.
1815
d4aeae5a
JB
1816### Fixed
1817
82ea6492 1818- Fix task function type definition and validation.
2fc5cae3 1819- Fix worker choice strategy options handling.
d4aeae5a 1820
1d9e7023
JB
1821## [2.4.8] - 2023-04-12
1822
f9b4bbf8
JB
1823### Fixed
1824
1825- Fix message between main worker and worker type definition for tasks.
1826- Fix code documentation.
1827
12ae3210
JB
1828## [2.4.7] - 2023-04-11
1829
7171d33f
JB
1830### Added
1831
1832- Add worker tasks queue options to pool options.
1833
e8bd29ce
JB
1834### Fixed
1835
1836- Fix missing documentation.
1837
42c7bc10
JB
1838## [2.4.6] - 2023-04-10
1839
681196cc
JB
1840### Fixed
1841
1842- Ensure one task at a time is executed per worker with tasks queueing enabled.
1c6fe997 1843- Properly count worker executing tasks with tasks queueing enabled.
681196cc 1844
54d360e3
JB
1845## [2.4.5] - 2023-04-09
1846
3fafb1b2
JB
1847### Added
1848
9e775f96
JB
1849- Use monotonic high resolution timer for worker tasks runtime.
1850- Add worker tasks median runtime to statistics.
ff733df7 1851- Add worker tasks queue (experimental).
3fafb1b2 1852
92fa3eb6
JB
1853## [2.4.4] - 2023-04-07
1854
aee46736
JB
1855### Added
1856
1857- Add `PoolEvents` enumeration and `PoolEvent` type.
1858
36b5e78f
JB
1859### Fixed
1860
ff0c2b3e 1861- Destroy worker only on alive check.
36b5e78f 1862
9fb0f324
JB
1863## [2.4.3] - 2023-04-07
1864
28cf3617
JB
1865### Fixed
1866
1867- Fix typedoc generation with inheritance.
1868
848f0f27
JB
1869## [2.4.2] - 2023-04-06
1870
164d950a
JB
1871### Added
1872
1873- Add `full` event to dynamic pool.
32417142 1874- Keep worker choice strategy in memory for conditional reuse.
164d950a 1875
78ab2555
JB
1876### Fixed
1877
1878- Fix possible negative worker key at worker removal in worker choice strategies.
1879
79aafe9f
JB
1880## [2.4.1] - 2023-04-05
1881
9cd39dd4
JB
1882### Changed
1883
1884- Optimize worker choice strategy for dynamic pool.
1885
965415bb
JB
1886### Fixed
1887
1888- Ensure dynamic pool does not alter worker choice strategy expected behavior.
1889
d8b60b1c
JB
1890## [2.4.0] - 2023-04-04
1891
c6bd2650
JB
1892### Added
1893
1894- Add `LESS_BUSY` worker choice strategy.
1895
1896### Changed
1897
1898- Optimize worker storage in pool.
1899- Optimize worker alive status check.
1900- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1901- Optimize `LESS_USED` worker choice strategy.
2a87030e 1902- Update benchmark versus external threads pools.
c6bd2650
JB
1903- Optimize tasks usage statistics requirements for worker choice strategy.
1904
1905### Fixed
1906
1907- Ensure trimmable characters are checked at pool initialization.
1908- Fix message id integer overflow.
1909- Fix pool worker removal in worker choice strategy internals.
1910- Fix package publication with pnpm.
1911
d0a3f018
JB
1912## [2.4.0-3] - 2023-04-04
1913
b2ede285
JB
1914### Added
1915
1916- Add `LESS_BUSY` worker choice strategy.
1917
1918### Changed
1919
1920- Optimize worker storage in pool.
1921- Optimize worker alive status check.
1922- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1923- Optimize `LESS_USED` worker choice strategy.
2a87030e 1924- Update benchmark versus external threads pools.
b2ede285
JB
1925
1926### Fixed
1927
1928- Ensure trimmable characters are checked at pool initialization.
1929- Fix message id integer overflow.
1930- Fix pool worker removal in worker choice strategy internals.
1931- Fix package publication with pnpm.
1932
a015ea40
JB
1933## [2.4.0-2] - 2023-04-03
1934
698f4bbc
JB
1935### Added
1936
1937- Add `LESS_BUSY` worker choice strategy.
1938
1939### Changed
1940
1941- Optimize worker storage in pool.
1942- Optimize worker alive status check.
1943- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1944- Optimize `LESS_USED` worker choice strategy.
1945
1946### Fixed
1947
1948- Ensure trimmable characters are checked at pool initialization.
1949- Fix message id integer overflow.
1950- Fix pool worker removal in worker choice strategy internals.
1951- Fix package publication with pnpm.
1952
8fe15920
JB
1953## [2.4.0-1] - 2023-04-03
1954
5b301c28
JB
1955### Added
1956
1957- Add `LESS_BUSY` worker choice strategy.
1958
1959### Changed
1960
1961- Optimize worker storage in pool.
1962- Optimize worker alive status check.
1963- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
1964- Optimize `LESS_USED` worker choice strategy.
1965
1966### Fixed
1967
1968- Ensure trimmable characters are checked at pool initialization.
1969- Fix message id integer overflow.
1970- Fix pool worker removal in worker choice strategy internals.
1971
2fb9ca9c
JB
1972## [2.4.0-0] - 2023-04-03
1973
168c526f
JB
1974### Added
1975
1976- Add `LESS_BUSY` worker choice strategy.
1977
1d71a908
JB
1978### Changed
1979
ffcbbad8 1980- Optimize worker storage in pool.
1d71a908 1981- Optimize worker alive status check.
65a60b3b 1982- BREAKING CHANGE: Rename worker choice strategy `LESS_RECENTLY_USED` to `LESS_USED`.
737c6d97 1983- Optimize `LESS_USED` worker choice strategy.
1d71a908 1984
ffcbbad8
JB
1985### Fixed
1986
1987- Ensure trimmable characters are checked at pool initialization.
b4e75778 1988- Fix message id integer overflow.
97a2abc3 1989- Fix pool worker removal in worker choice strategy internals.
ffcbbad8 1990
08372738
JB
1991## [2.3.10] - 2023-03-18
1992
710826bc
JB
1993### Fixed
1994
9606b474 1995- Fix package.json `exports` syntax for ESM and CommonJS.
710826bc
JB
1996
1997### Changed
1998
1999- Permit SemVer pre-release publication.
76e5ac6f 2000
e4796ecd
JB
2001## [2.3.10-2] - 2023-03-18
2002
6abad580
JB
2003### Fixed
2004
9606b474 2005- Fix package.json `exports` syntax for ESM and CommonJS.
6abad580 2006
a2ee98cc
JB
2007## [2.3.10-1] - 2023-03-18
2008
7e060cee
JB
2009### Changed
2010
90483887 2011- Permit SemVer pre-release publication.
7e060cee 2012
c81bfafb
JB
2013## [2.3.10-0] - 2023-03-18
2014
fe18768d
JB
2015### Fixed
2016
9606b474 2017- Fix package.json `exports` syntax for ESM and CommonJS.
fe18768d 2018
d7b78217
JB
2019## [2.3.9] - 2023-03-18
2020
ed6dd37f
JB
2021### Changed
2022
2023- Introduce ESM module support along with CommonJS one.
2024
2025### Fixed
2026
2027- Fix brown paper bag bug referencing the same object literal.
2028
68e2ad86
JB
2029## [2.3.8] - 2023-03-18
2030
ca6c7d70
JB
2031### Changed
2032
2033- Switch internal benchmarking code to benny.
fbdedeb9
JB
2034- Switch to TypeScript 5.x.x.
2035- Switch rollup bundler plugins to core ones.
ed6dd37f 2036- Switch to TSDoc syntax.
fbdedeb9 2037- Enforce conventional commits.
ca6c7d70 2038
d15211d4
JB
2039### Fixed
2040
2041- Fix random integer generator.
fbdedeb9 2042- Fix worker choice strategy pool type identification at initialization.
d15211d4 2043
995705ea
JB
2044## [2.3.7] - 2022-10-23
2045
b953022b
JB
2046### Changed
2047
2048- Switch to open collective FOSS project funding platform.
78cea37e
JB
2049- Switch to ts-standard linter configuration on TypeScript code.
2050
2051### Fixed
2052
2053- Fixed missing async on pool execute method.
2054- Fixed typing in TypeScript example.
2055- Fixed types in unit tests.
b953022b 2056
3b9f6953
JB
2057## [2.3.6] - 2022-10-22
2058
f80cead4
JB
2059### Changed
2060
2061- Cleanup pool attributes and methods.
2062- Refine error types thrown.
2063
2064### Fixed
2065
2066- Fix continuous integration build on windows.
2067- Fix code coverage reporting by using c8 instead of nyc.
2068
efc22107
JB
2069## [2.3.5] - 2022-10-21
2070
7a6a0a96
JB
2071### Changed
2072
a05c10de
JB
2073- Improve benchmarks: add IO intensive task workload, add task size option, integrate code into linter.
2074- Optimize tasks usage lookup implementation.
7a6a0a96 2075
b4904890
JB
2076### Fixed
2077
2078- Fix missed pool event emitter type export.
2079- Fix typedoc documentation generation.
2080
a875f8d1
JB
2081## [2.3.4] - 2022-10-17
2082
73cda448
JB
2083### Added
2084
2085- Fully automate release process with release-it.
2086
45a5a54c
JB
2087### Changed
2088
73cda448 2089- Optimize fair share task scheduling algorithm implementation.
2a87030e 2090- Update benchmark versus external pools results with latest version.
45a5a54c 2091
90ee1b18 2092## [2.3.3] - 2022-10-15
1a76932b
JB
2093
2094### Added
2095
2096- Add support for [cluster settings](https://nodejs.org/api/cluster.html#cluster_cluster_settings) in cluster pool options.
2097
90ee1b18 2098## [2.3.2] - 2022-10-14
11df3590
JB
2099
2100### Changed
2101
2102- Optimize fair share worker selection strategy implementation.
2103
2104### Fixed
2105
2106- Fix WRR worker selection strategy: ensure the condition triggering the round robin can be fulfilled.
2107
90ee1b18 2108## [2.3.1] - 2022-10-13
23ff945a
JB
2109
2110### Added
2111
2112- Pool worker choice strategies:
2113 - `WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN` strategy based on weighted round robin scheduling algorithm using tasks execution time for now.
2114 - `WorkerChoiceStrategies.FAIR_SHARE` strategy based on fair share scheduling algorithm using tasks execution time for now.
2115
90ee1b18 2116## [2.2.2] - 2022-10-09
cb2b6c69
JB
2117
2118### Fixed
2119
2120- Fixed `README.md` file.
2121
90ee1b18 2122## [2.2.1] - 2022-10-08
bdacc2d2 2123
bdaf31cd
JB
2124### Added
2125
2126- Dynamic worker choice strategy change at runtime.
bdacc2d2 2127
90ee1b18 2128## [2.2.0] - 2022-01-05
7e0d447f
JB
2129
2130### Breaking Changes
2131
9606b474 2132- Support only Node.js version 16.x.x for cluster pool: upstream cluster API have changed on that version.
7e0d447f 2133
90ee1b18 2134## [2.1.0] - 2021-08-29
35cf1c03
JB
2135
2136### Added
2137
2138- Add an optional pool option `messageHandler` to `PoolOptions<Worker>` for registering a message handler callback on each worker.
e088a00c
JB
2139
2140### Breaking Changes
2141
2142- `AbstractWorker` class `maxInactiveTime`, `killBehavior` and `async` attributes have been removed in favour of the same ones in the worker options `opts` public attribute.
2143- `AbstractWorker` class `lastTask` attribute have been renamed to `lastTaskTimestamp`.
2144- `AbstractWorker` class `interval` attribute have been renamed to `aliveInterval`.
c365b2d3 2145- `AbstractWorker` class cannot be instantiated without specifying the `mainWorker` argument referencing the main worker.
e088a00c 2146
90ee1b18 2147## [2.0.2] - 2021-05-12
14916bf9
JB
2148
2149### Bug fixes
2150
2151- Fix `busy` event emission on fixed pool type
2152
90ee1b18 2153## [2.0.1] - 2021-03-16
7f685093
JB
2154
2155### Bug fixes
2156
2157- Check if pool options are properly set.
2158- `busy` event is emitted on all pool types.
2159
90ee1b18 2160## [2.0.0] - 2021-03-01
fa0f5b28 2161
f3f833ab 2162### Bug fixes
d63d3be3 2163
ddbeaffd 2164- Now a thread/process by default is not deleted when the task submitted take more time than maxInactiveTime configured (issue #70).
d63d3be3 2165
fa0f5b28
S
2166### Breaking Changes
2167
7f685093 2168- `FullPool` event is now renamed to `busy`.
1927ee67 2169- `maxInactiveTime` on `ThreadWorker` default behavior is now changed, if you want to keep the old behavior set `killBehavior` to `KillBehaviors.HARD`.
1a81f8af 2170 _Find more details on our JSDoc._
ddbeaffd 2171
1927ee67
APA
2172- `maxTasks` option on `FixedThreadPool` and `DynamicThreadPool` is now removed since is no more needed.
2173
ddbeaffd 2174- We changed some internal structures, but you shouldn't be too affected by them as these are internal changes.
fa0f5b28 2175
ec2ccfc8
JB
2176### Pool options types declaration merge
2177
2178`FixedThreadPoolOptions` and `DynamicThreadPoolOptions` type declarations have been merged to `PoolOptions<Worker>`.
2179
fa0f5b28
S
2180#### New `export` strategy
2181
2182```js
2183// Before
0eee77cb 2184const DynamicThreadPool = require('poolifier/lib/dynamic')
fa0f5b28 2185// After
0eee77cb 2186const { DynamicThreadPool } = require('poolifier/lib/dynamic')
fa0f5b28
S
2187```
2188
2189But you should always prefer just using
2190
2191```js
0eee77cb 2192const { DynamicThreadPool } = require('poolifier')
fa0f5b28
S
2193```
2194
d3c8a1a8
S
2195#### New type definitions for input data and response
2196
6677a3d3 2197For cluster worker and worker-thread pools, you can now only send and receive structured-cloneable data.
9606b474 2198_This is not a limitation by poolifier but Node.js._
d3c8a1a8 2199
3a4b605f 2200#### Public property replacements
5c5a1fb7 2201
3a4b605f 2202`numWorkers` property is now `numberOfWorkers`
5c5a1fb7 2203
280c2a77 2204#### Internal (protected) properties and methods renaming
fa0f5b28 2205
280c2a77
S
2206These properties are not intended for end users
2207
2208- `id` => `nextMessageId`
2209
2210These methods are not intended for end users
fa0f5b28
S
2211
2212- `_chooseWorker` => `chooseWorker`
280c2a77 2213- `_newWorker` => `createWorker`
fa0f5b28
S
2214- `_execute` => `internalExecute`
2215- `_chooseWorker` => `chooseWorker`
2216- `_checkAlive` => `checkAlive`
2217- `_run` => `run`
2218- `_runAsync` => `runAsync`
2219
90ee1b18 2220## [1.1.0] - 2020-05-21
0312f71a
APA
2221
2222### Added
2223
2224- ThreadWorker support async functions as option
cf9aa6c3 2225- Various external library patches
0312f71a 2226
90ee1b18 2227## [1.0.0] - 2020-01-24
522eea03 2228
2229### Added
2230
2231- FixedThreadPool implementation
2232- DynamicThreadPool implementation
0312f71a 2233- WorkerThread implementation to improve developer experience