1Changelog
2=========
3
42021.11.2
5---------
6
7Released on November 19, 2021
8
9- Ensure cancelled error transition can properly release a key (:pr:`5528`) `Florian Jetter`_
10- Refactor release key (:pr:`5507`) `Florian Jetter`_
11- Fix deadlock caused by an erred task (executing->cancelled->error) (:pr:`5503`) `Florian Jetter`_
12- Resolve ``KeyError``-related deadlock (:pr:`5525`) `Florian Jetter`_
13- Remove extra quotation in worker failure docs (:pr:`5518`) `James Bourbeau`_
14- Ensure ``safe_sizeof`` warning is accurate (:pr:`5519`) `James Bourbeau`_
15- Visualize cluster-wide memory usage over time (:pr:`5477`) `crusaderky`_
16- AMM: redesign start/stop methods (:pr:`5476`) `crusaderky`_
17- Preserve ``contextvars`` during comm offload (:pr:`5486`) `Gabe Joseph`_
18- Deserialization: zero-copy merge subframes when possible (:pr:`5208`) `Gabe Joseph`_
19- Add support for multiple workers per SSH connection (:pr:`5506`) `Jacob Tomlinson`_
20- Client method to dump cluster state (:pr:`5470`) `Florian Jetter`_
21
22
232021.11.1
24---------
25
26Released on November 8, 2021
27
28- Revert "Avoid multiple blocking calls by gathering UCX frames" (:pr:`5505`) `Peter Andreas Entschev`_
29
30
312021.11.0
32---------
33
34Released on November 5, 2021
35
36- Fix ``cluster_info`` sync handling (:pr:`5488`) `Jim Crist-Harif`_
37- Serialization family to preserve headers of the underlying dumps functions (:pr:`5380`) `Mads R. B. Kristensen`_
38- Point users to Discourse (:pr:`5489`) `James Bourbeau`_
39- Avoid multiple blocking calls by gathering UCX frames (:pr:`5487`) `Peter Andreas Entschev`_
40- Update all UCX tests to use ``asyncio`` marker (:pr:`5484`) `Peter Andreas Entschev`_
41- Register UCX close callback (:pr:`5474`) `Peter Andreas Entschev`_
42- Use older version of ``pynvml.nvmlDeviceGetComputeRunningProcesses`` (:pr:`5469`) `Jacob Tomlinson`_
43- Check for Futures from the wrong ``Client`` in ``gather`` (:pr:`5468`) `Gabe Joseph`_
44- Fix ``performance_report`` when used with ``%%time`` or ``%%timeit`` magic (:pr:`5463`) `Erik Welch`_
45- Scatter and replicate to avoid paused workers (:pr:`5441`) `crusaderky`_
46- AMM to avoid paused workers (:pr:`5440`) `crusaderky`_
47- Update changelog with ``LocalCluster`` host security note (:pr:`5462`) `Jim Crist-Harif`_
48
49
502021.10.0
51---------
52
53Released on October 22, 2021
54
55.. note::
56
57    This release fixed a potential security vulnerability relating to
58    single-machine Dask clusters. Clusters started with
59    ``dask.distributed.LocalCluster`` or ``dask.distributed.Client()`` (which
60    defaults to using ``LocalCluster``) would mistakenly configure their
61    respective Dask workers to listen on external interfaces (typically with a
62    randomly selected high port) rather than only on ``localhost``. A Dask
63    cluster created using this method AND running on a machine that has these
64    ports exposed could be used by a sophisticated attacker to enable remote
65    code execution.  Users running on machines with standard firewalls in place
66    should not be affected. This vulnerability is documented in `CVE-2021-42343
67    <https://attackerkb.com/topics/oL1UXQct5f/cve-2021-42343>`__, and is fixed
68    in this release (:pr:`5427`). Thanks to Jean-Pierre van Riel for
69    discovering and reporting the issue.
70
71- Ensure resumed flight tasks are still fetched (:pr:`5426`) `Florian Jetter`_
72- AMM high level documentation (:pr:`5456`) `crusaderky`_
73- Provide stack for suspended coro in test timeout (:pr:`5446`) `Florian Jetter`_
74- Handle ``UCXNotConnected`` error (:pr:`5449`) `Peter Andreas Entschev`_
75- Don't schedule tasks to paused workers (:pr:`5431`) `crusaderky`_
76- Use ``pip install .`` instead of calling ``setup.py`` (:pr:`5442`) `Matthias Bussonnier`_
77- Increase latency for stealing (:pr:`5390`) `Florian Jetter`_
78- Type annotations for ``Worker`` and ``gen_cluster`` (:pr:`5438`) `crusaderky`_
79- Ensure reconnecting workers do not loose required data (:pr:`5436`) `Florian Jetter`_
80- Mark ``test_gather_dep*`` as ``xfail`` (:pr:`5432`) `crusaderky`_
81- Remove ``zict``-related skips (:pr:`5429`) `James Bourbeau`_
82- Pass ``host`` through ``LocalCluster`` to workers (:pr:`5427`) `Jim Crist-Harif`_
83- Fixes ``async`` warnings in UCX tests (:pr:`5396`) `Peter Andreas Entschev`_
84- Resolve work stealing deadlock caused by race in ``move_task_confirm`` (:pr:`5379`) `Florian Jetter`_
85- Add scroll to dashboard dropdown (:pr:`5418`) `Jacob Tomlinson`_
86- Fix regression where unknown tasks were allowed to be stolen (:pr:`5392`) `Florian Jetter`_
87- Enable ``mypy`` in CI 2/2 (:pr:`5348`) `crusaderky`_
88- Rewrite ``test_client_timeout`` (:pr:`5397`) `crusaderky`_
89- Simple ``SSHCluster`` example (:pr:`5349`) `Ray Bell`_
90- Do not attempt to fetch keys which are no longer in flight (:pr:`5160`) `Florian Jetter`_
91- Revisit ``Scheduler.add_plugin`` / ``Scheduler.remove_plugin`` (:pr:`5394`) `crusaderky`_
92- Fix flaky ``test_WorkerPlugin_overwrite`` (:pr:`5398`) `crusaderky`_
93- Active Memory Manager to use bulk comms (:pr:`5357`) `crusaderky`_
94- Add coverage badge to ``README`` (:pr:`5382`) `James Bourbeau`_
95- Mark ``test_stress_creation_and_deletion`` as ``xfail`` (:pr:`5393`) `James Bourbeau`_
96- Mark ``test_worker_reconnects_mid_compute*`` tests as flaky (:pr:`5378`) `James Bourbeau`_
97- Use new Dask docs theme (:pr:`5391`) `Jacob Tomlinson`_
98- Remove ``pytest.mark.repeat`` from ``test_prometheus_collect_task_states`` (:pr:`5376`) `James Bourbeau`_
99- Log original exception upon compute failure (:pr:`5387`) `Florian Jetter`_
100- Add code coverage (:pr:`4670`) `James Bourbeau`_
101- Fix zombie worker tasks after missing transition (:pr:`5316`) `Florian Jetter`_
102- Add support for partial functions to ``iscoroutinefunction`` util (:pr:`5344`) `Michael Adkins`_
103- Mark ``distributed/tests/test_client.py::test_profile_server`` as flaky (:pr:`5375`) `James Bourbeau`_
104- Enable ``mypy`` in CI 1/2 (:pr:`5328`) `crusaderky`_
105- Ensure ``dask-worker`` and ``dask-scheduler`` pick up preload configuration values  (:pr:`5365`) `James Bourbeau`_
106- Use ``dask-spec`` for ``SSHCluster`` (:pr:`5191`) `Charles Blackmon-Luca`_
107- Update ``_cluster_info`` dict in ``__init__`` (:pr:`5305`) `Jacob Tomlinson`_
108- Use Dask temporary file utility  (:pr:`5361`) `James Bourbeau`_
109- Avoid deprecated random set sampling (:pr:`5360`) `James Bourbeau`_
110- Add check for unsupported NVML metrics (:pr:`5343`) `Charles Blackmon-Luca`_
111- Workers submit a reply to the scheduler if replica removal was rejected (:pr:`5356`) `Florian Jetter`_
112- Pickle exception and traceback immediately (:pr:`5338`) `Mads R. B. Kristensen`_
113- Reinstate: AMM ``ReduceReplicas`` to iterate only on replicated tasks (:pr:`5341`) `crusaderky`_
114- Sync worker status to the scheduler; new 'paused' status (:pr:`5330`) `crusaderky`_
115- Add pre-commit to environments (:pr:`5362`) `Ray Bell`_
116- Worker State Machine Refactor: clean up dead handlers (:pr:`5359`) `crusaderky`_
117- Bump ``RAPIDS_VER`` for gpuCI (:pr:`5358`) `Charles Blackmon-Luca`_
118- Generate Cython HTML annotations (:pr:`5321`) `crusaderky`_
119- Worker state machine refactor (:pr:`5046`) `Florian Jetter`_
120- ``fsspec`` and ``s3fs`` git tips are incompatible (:pr:`5346`) `crusaderky`_
121- Fix ``test_many_Progress`` and others (:pr:`5329`) `crusaderky`_
122- Run multiple AMMs in parallel (:pr:`5339`) `crusaderky`_
123- Enhance AMM docstrings (:pr:`5340`) `crusaderky`_
124- Run ``pyupgrade`` in CI (:pr:`5327`) `crusaderky`_
125- Fix typo in client side example ``foundations.rst`` (:pr:`5336`) `Genevieve Buckley`_
126
127
1282021.09.1
129---------
130
131Released on September 21, 2021
132
133- Revert AMM ``ReduceReplicas`` and parallel AMMs updates (:pr:`5335`) `James Bourbeau`_
134- Run multiple AMMs in parallel (:pr:`5315`) `crusaderky`_
135- AMM ``ReduceReplicas`` to iterate only on replicated tasks (:pr:`5297`) `crusaderky`_
136- Add type annotations to various functions within ``distributed.worker`` (:pr:`5290`) `Tom Forbes`_
137- Mark ``test_ucx_config_w_env_var`` flaky on UCX < 1.11 (:pr:`5262`) `Peter Andreas Entschev`_
138- Warn if CUDA context is created on incorrect device in UCX (:pr:`5308`) `Peter Andreas Entschev`_
139- Remove redundant timeouts from ``test_client`` (:pr:`5314`) `crusaderky`_
140- Allow ``Client`` to subscribe to events // Remote printing and warning (:pr:`5217`) `Florian Jetter`_
141- Test pickle protocols 4 & 5 (:pr:`5313`) `jakirkham`_
142- Fix-up ``test_pickle_empty`` (:pr:`5303`) `jakirkham`_
143- Increase timeout for ``test_worker_reconnects_mid_compute_multiple_states_on_scheduler`` (:pr:`5304`) `Florian Jetter`_
144- Add synced dict between cluster and scheduler to store cluster info (:pr:`5033`) `Jacob Tomlinson`_
145- Update ``test_sub_submit_priority`` (:pr:`5301`) `James Bourbeau`_
146- Revert "Add test setup fixture (:pr:`5242`)" (:pr:`5300`) `James Bourbeau`_
147- Fix flaky ``test_worker_reconnects_mid_compute`` (:pr:`5299`) `Florian Jetter`_
148- Use ``gen_test`` in ``test_adaptive`` (:pr:`5298`) `crusaderky`_
149- Increase ``worker.suspicious_counter`` threshold (:pr:`5228`) `Florian Jetter`_
150- Active Memory Manager framework + discard excess replicas (:pr:`5111`) `crusaderky`_
151- Add test setup fixture (:pr:`5242`) `James Bourbeau`_
152
153
1542021.09.0
155---------
156
157Released on September 3, 2021
158
159- Fix ``add_plugin`` warnings (:pr:`5267`) `Doug Davis`_
160- Add ``list`` around iterator in ``handle_missing_dep`` (:pr:`5285`) `Matthew Rocklin`_
161- Jupyter-client 7 compatiblity (:pr:`5286`) `Min RK`_
162- Replace ``atop`` with ``blockwise`` (:pr:`5289`) `James Bourbeau`_
163- Add pytest color to CI (:pr:`5276`) `James Bourbeau`_
164- Fix ``test_map`` and others (:pr:`5278`) `crusaderky`_
165- Use ``name`` argument with ``Scheduler.remove_plugin`` calls (:pr:`5260`) `Doug Davis`_
166- Downgrade to ``jupyter_client`` 6 (:pr:`5273`) `crusaderky`_
167- Migrate ``Security`` HTML repr to Jinja2 (:pr:`5264`) `Jacob Tomlinson`_
168- Migrate ``ProcessInterface`` HTML repr to Jinja2 (:pr:`5263`) `Jacob Tomlinson`_
169- Add support for diskless machines to system monitor (:pr:`5257`) `James Bourbeau`_
170- Avoid during-iteration scheduler plugin changes (:pr:`5259`) `Doug Davis`_
171- Remove ``GroupProgress`` scheduler plugin (:pr:`5256`) `James Bourbeau`_
172- Properly check for ipv6 availability (:pr:`5255`) `crusaderky`_
173- Improved IPv6 dask-worker support (:pr:`5197`) `Walt Woods`_
174- Overwrite worker plugins (:pr:`5248`) `Matthew Rocklin`_
175- Refactor scheduler plugins; store in a dictionary (:pr:`5120`) `Doug Davis`_
176- Fix "then" -> "than" typo in docs (:pr:`5247`) `David Chudzicki`_
177- Fix typo (remove extra verb "creates") in docs (:pr:`5244`) `David Chudzicki`_
178- Fix "fractiom" -> "fraction" typo in docstring (:pr:`5245`) `David Chudzicki`_
179- Fix "schedulers" -> "scheduler" typo in docs (:pr:`5246`) `David Chudzicki`_
180- Use non-histogram plots up to 100 workers (:pr:`5249`) `Matthew Rocklin`_
181
182
1832021.08.1
184---------
185
186Released on August 20, 2021
187
188- Rename plots to fit in the labextension (:pr:`5239`) `Naty Clementi`_
189- Log messages for ``CommClosedError`` now includes information about remote address (:pr:`5209`) `Florian Jetter`_
190- Add ``target='_blank'`` for redirects of dashboard link (:pr:`5237`) `Naty Clementi`_
191- Update computation code retrieval logic (:pr:`5236`) `James Bourbeau`_
192- Minor polish on cfexecutor (:pr:`5233`) `crusaderky`_
193- Use development version of ``dask`` in gpuCI build (:pr:`5232`) `James Bourbeau`_
194- Use upstream ``dask.widgets`` (:pr:`5205`) `Jacob Tomlinson`_
195- Fix flaky ``test_worker_reconnects_mid_compute`` (:pr:`5227`) `Florian Jetter`_
196- Update ``WorkerPlugin`` docstring about usage of ``TaskState`` objects (:pr:`5226`) `Florian Jetter`_
197- Worker Network Timeseries (:pr:`5129`) `Naty Clementi`_
198- Add HTML Repr for ``ProcessInterface`` class and all its subclasses (:pr:`5181`) `Freyam Mehta`_
199- Fix an issue where a reconnecting worker could cause an invalid transition (:pr:`5210`) `Florian Jetter`_
200- Minor fixes for cfexecutor (:pr:`5177`) `Florian Jetter`_
201- Add HTML Repr for ``Security`` class (:pr:`5178`) `Freyam Mehta`_
202- Fix performance report sizing issue (:pr:`5213`) `Ian Rose`_
203- Drop RMM compatibility code from RAPIDS < 0.11 (:pr:`5214`) `Peter Andreas Entschev`_
204
205
2062021.08.0
207---------
208
209Released on August 13, 2021
210
211- Include addresses in closed comm repr  (:pr:`5203`) `James Bourbeau`_
212- Test ``nanny.environ`` precedence (:pr:`5204`) `Florian Jetter`_
213- Migrating HTML reprs to jinja2 (:pr:`5188`) `Jacob Tomlinson`_
214- Fix ``test_process_executor_kills_process`` flakyness (:pr:`5183`) `crusaderky`_
215- Remove ``urllib3`` as a dependency downloading preloads (:pr:`5199`) `Marcos Moyano`_
216- Download preload urls in the ``Preload`` constructor  (:pr:`5194`) `Marcos Moyano`_
217- Avoid recursion error in ``profile.merge`` (:pr:`5195`) `Matthew Rocklin`_
218- Add text exceptions to the ``Scheduler`` (:pr:`5148`) `Matthew Rocklin`_
219- Use ``kwarg`` for ``Theme`` filename (:pr:`5190`) `Bryan Van de Ven`_
220- Add a ``.git-ignore-revs`` file (:pr:`5187`) `Florian Jetter`_
221- Replace ``not not`` with ``bool()`` (:pr:`5182`) `Jacob Tomlinson`_
222- Resolve deadlock cause by transition error after fetching dependency (:pr:`5157`) `Florian Jetter`_
223- Set z-index of data-table lower (:pr:`5175`) `Julia Signell`_
224- Add ``no-worker`` - ``memory`` transition to scheduler (:pr:`5174`) `Florian Jetter`_
225- Deprecate worker plugin overwrite policy (:pr:`5146`) `James Bourbeau`_
226- Fix flaky tests in CI (:pr:`5168`) `crusaderky`_
227- Instructions for jemalloc with brew on macOS (:pr:`4996`) `Gabe Joseph`_
228- Bump ``RAPIDS_VER`` to 21.10 (:pr:`5165`) `Charles Blackmon-Luca`_
229- Tweak verbiage around ``async`` functions (:pr:`5166`) `crusaderky`_
230- Use Python 3 ``super()`` calls (:pr:`5167`) `crusaderky`_
231- Support asynchronous tasks (:pr:`5151`) `Matthew Rocklin`_
232- Rename total comm bytes and provide doc string (:pr:`5155`) `Florian Jetter`_
233- Add GPU executor if GPU is present (:pr:`5123`) `Matthew Rocklin`_
234- Fix RMM and UCX tests (:pr:`5158`) `Peter Andreas Entschev`_
235- Remove excessive timeout of ``test_steal_during_task_deserialization`` (:pr:`5156`) `Florian Jetter`_
236- Add gpuCI build script (:pr:`5147`) `Charles Blackmon-Luca`_
237- Demote ``Worker.ensure_computing`` to function (:pr:`5153`) `Florian Jetter`_
238
239
2402021.07.2
241---------
242
243Released on July 30, 2021
244
245- Fix a deadlock connected to task stealing and task deserialization (:pr:`5128`) `Florian Jetter`_
246- Include maximum shard size in second ``to_frames`` method (:pr:`5145`) `Matthew Rocklin`_
247- Minor dashboard style updates (:pr:`5143`) `Bryan Van de Ven`_
248- Cap maximum shard size at the size of an integer (:pr:`5141`) `Matthew Rocklin`_
249- Document automatic ``MALLOC_TRIM_THRESHOLD_`` environment variable (:pr:`5139`) `James Bourbeau`_
250- Mark ``ucx-py`` tests for GPU (:pr:`5133`) `Charles Blackmon-Luca`_
251- Update individual profile plot sizing (:pr:`5131`) `James Bourbeau`_
252- Handle ``NVMLError_Unknown`` in NVML diagnostics (:pr:`5121`) `Peter Andreas Entschev`_
253- Unit tests to use a random port for the dashboard (:pr:`5060`) `crusaderky`_
254- Ensure worker reconnect registers existing tasks properly (:pr:`5103`) `Florian Jetter`_
255- Halve CI runtime! (:pr:`5074`) `crusaderky`_
256- Add ``NannyPlugins`` (:pr:`5118`) `Matthew Rocklin`_
257- Add ``WorkerNetworkBandwidth`` chart to dashboard (:pr:`5104`) `Naty Clementi`_
258- Set nanny environment variables in config (:pr:`5098`) `Matthew Rocklin`_
259- Read smaller frames to workaround OpenSSL bug (:pr:`5115`) `jakirkham`_
260- Move UCX/RMM config variables to Distributed namespace  (:pr:`4916`) `Charles Blackmon-Luca`_
261- Allow ws(s) messages greater than 10Mb (:pr:`5110`) `Marcos Moyano`_
262- Short-circuit root-ish check for many deps (:pr:`5113`) `Gabe Joseph`_
263
264
2652021.07.1
266---------
267
268Released on July 23, 2021
269
270- Remove experimental feature warning from actors docs (:pr:`5108`) `James Bourbeau`_
271- Keep dependents in worker dependency if TS is still known (:pr:`5034`) `Florian Jetter`_
272- Add ``Scheduler.set_restrictions`` (:pr:`5101`) `Matthew Rocklin`_
273- Make ``Actor`` futures awaitable and work with ``as_completed`` (:pr:`5092`) `Martin Durant`_
274- Simplify ``test_secede_balances`` (:pr:`5071`) `Florian Jetter`_
275- ``Computation`` class (:pr:`5001`) `Florian Jetter`_
276- Some light dashboard cleanup (:pr:`5102`) `Bryan Van de Ven`_
277- Don't package tests (:pr:`5054`) `James Bourbeau`_
278- Add pytest marker for GPU tests (:pr:`5023`) `Charles Blackmon-Luca`_
279- Actor: don't hold key references on workers (:pr:`4937`) `Gabe Joseph`_
280- Collapse nav to hamburger sooner (:pr:`5094`) `Julia Signell`_
281- Verify that actors survive pickling (:pr:`5086`) `Matthew Rocklin`_
282- Reenable UCX-Py tests that used to segfault (:pr:`5076`) `Peter Andreas Entschev`_
283- Better support ``ProcessPoolExecutors`` (:pr:`5063`) `Matthew Rocklin`_
284- Simplify ``test_worker_heartbeat_after_cancel`` (:pr:`5067`) `Florian Jetter`_
285- Avoid property validation in Bokeh (:pr:`5065`) `Matthew Rocklin`_
286- Reduce default websocket frame size and make configurable (:pr:`5070`) `Ian Rose`_
287- Disable pytest-timeout ``SIGALARM`` on MacOS (:pr:`5057`) `crusaderky`_
288- ``rebalance()`` resilience to computations (:pr:`4968`) `crusaderky`_
289- Improve CI stability (:pr:`5022`) `crusaderky`_
290- Ensure heartbeats after cancelation do not raise ``KeyError`` s (:pr:`5053`) `Florian Jetter`_
291- Add more useful exception message on TLS cert mismatch (:pr:`5040`) `Jacob Tomlinson`_
292- Add bokeh ``mode`` parameter to performance reports (:pr:`5025`) `James Bourbeau`_
293
294
2952021.07.0
296---------
297
298Released on July 9, 2021
299
300- Fix Nbytes jitter - less expensive (:pr:`5043`) `Naty Clementi`_
301- Use native GH actions cancel feature (:pr:`5037`) `Florian Jetter`_
302- Don't require workers to report to scheduler if scheduler shuts down (:pr:`5032`) `Florian Jetter`_
303- Add pandas to the list of checked packages for ``client.get_versions()`` (:pr:`5029`) `Ian Rose`_
304- Move worker preload before scheduler address is set (:pr:`5024`) `Matthew Rocklin`_
305- Fix flaky ``test_oversubscribing_leases`` (:pr:`5030`) `Florian Jetter`_
306- Update scheduling policy docs for #4967 (:pr:`5018`) `Gabe Joseph`_
307- Add echo handler to ``Server`` class (:pr:`5020`) `Matthew Rocklin`_
308- Also include pngs when bundling package (:pr:`5016`) `Ian Rose`_
309- Remove duplicated dashboard panes (:pr:`5017`) `Ian Rose`_
310- Fix worker memory dashboard flickering (:pr:`4997`) `Naty Clementi`_
311- Tabs on bottom left corner on dashboard (:pr:`5006`) `Naty Clementi`_
312- Rename nbytes widgets (:pr:`4878`) `crusaderky`_
313- Co-assign root-ish tasks (:pr:`4967`) `Gabe Joseph`_
314- ``OSError`` tweaks (:pr:`5003`) `crusaderky`_
315- Update imports to ``cudf.testing._utils`` (:pr:`5005`) `Peter Andreas Entschev`_
316- Ensure shuffle split default durations uses proper prefix (:pr:`4991`) `Florian Jetter`_
317- Follow up ``pyupgrade`` formatting (:pr:`4993`) `Florian Jetter`_
318- Rename plot dropdown (:pr:`4992`) `James Bourbeau`_
319- Pyupgrade (:pr:`4741`) `Florian Jetter`_
320- Misc Sphinx tweaks (:pr:`4988`) `crusaderky`_
321- No longer hold dependencies of erred tasks in memory #4918 `Florian Jetter`_
322- Add maximum shard size to config (:pr:`4986`) `Matthew Rocklin`_
323- Ensure shuffle split operations are blacklisted from work stealing (:pr:`4964`) `Florian Jetter`_
324- Add dropdown menu to access individual plots (:pr:`4984`) `Jacob Tomlinson`_
325- Edited the path to ``scheduler.py`` (:pr:`4983`) `Freyam Mehta`_
326- Task Group Graph Visualization (:pr:`4886`) `Naty Clementi`_
327- Remove more internal references to deprecated utilities (:pr:`4971`) `James Bourbeau`_
328- Restructure nbytes hover (:pr:`4952`) `Naty Clementi`_
329- Except more errors in ``pynvml.nvmlInit()`` (:pr:`4970`) `gerrymanoim`_
330- Add occupancy as individual plot (:pr:`4963`) `Naty Clementi`_
331- Deprecate utilities which have moved to dask (:pr:`4966`) `James Bourbeau`_
332- Ensure connectionpool does not leave comms if closed mid connect (:pr:`4951`) `Florian Jetter`_
333- Add support for registering scheduler plugins from `Client` (:pr:`4808`) `Doug Davis`_
334- Stealing dashboard fixes (:pr:`4948`) `Florian Jetter`_
335- Allow requirements verification to be ignored when loading backends from entrypoints (:pr:`4961`) `Florian Jetter`_
336- Add ``Log`` and ``Logs`` to API docs (:pr:`4946`) `James Bourbeau`_
337- Support fixtures and ``pytest.mark.parametrize`` with ``gen_cluster`` (:pr:`4958`) `Gabe Joseph`_
338
339
3402021.06.2
341---------
342
343Released on June 22, 2021
344
345- Revert refactor to ``utils.Log[s]`` and ``Cluster.get_logs`` (:pr:`4941`) `Charles Blackmon-Luca`_
346- Use deprecation utility from Dask (:pr:`4924`) `James Bourbeau`_
347- Add transition counter to ``Scheduler`` (:pr:`4934`) `Matthew Rocklin`_
348- Remove ``nbytes_in_memory`` (:pr:`4930`) `Matthew Rocklin`_
349
350
3512021.06.1
352---------
353
354Released on June 18, 2021
355
356- Fix deadlock in ``handle_missing_dep`` if additional replicas are available (:pr:`4929`) `Florian Jetter`_
357- Add configuration to enable/disable NVML diagnostics (:pr:`4893`) `Peter Andreas Entschev`_
358- Add scheduler log tab to performance reports (:pr:`4909`) `Charles Blackmon-Luca`_
359- Add HTML repr to ``scheduler_info`` and incorporate into client and cluster reprs (:pr:`4857`) `Jacob Tomlinson`_
360- Fix error state typo (:pr:`4898`) `James Bourbeau`_
361- Allow actor exceptions to propagate (:pr:`4232`) `Martin Durant`_
362- Remove importing ``apply`` from ``dask.compatibility`` (:pr:`4913`) `Elliott Sales de Andrade`_
363- Use more informative default name for ``WorkerPlugin`` s (:pr:`4908`) `James Bourbeau`_
364- Removed unused utility functions (:pr:`4911`) `James Bourbeau`_
365- Locally rerun successfully completed futures (:pr:`4813`) `ArtinSarraf`_
366- Forget erred tasks and fix deadlocks on worker (:pr:`4784`) `Florian Jetter`_
367- Handle ``HTTPClientError`` in websocket connector (:pr:`4900`) `Marcos Moyano`_
368- Update ``dask_cuda`` usage in ``SSHCluster`` docstring (:pr:`4894`) `James Bourbeau`_
369- Remove tests for ``process_time`` and ``thread_time`` (:pr:`4895`) `James Bourbeau`_
370- Flake8 config cleanup (:pr:`4888`) `Florian Jetter`_
371- Don't strip scheduler protocol when determining host (:pr:`4883`) `James Bourbeau`_
372- Add more documentation on memory management (:pr:`4874`) `crusaderky`_
373- Add ``range_query`` tests to NVML test suite (:pr:`4879`) `Charles Blackmon-Luca`_
374- No longer cancel result future in async process when using timeouts (:pr:`4882`) `Florian Jetter`_
375
376
3772021.06.0
378---------
379
380Released on June 4, 2021
381
382- Multiple worker executors (:pr:`4869`) `Mads R. B. Kristensen`_
383- Ensure PyNVML works correctly when installed with no GPUs (:pr:`4873`) `Peter Andreas Entschev`_
384- Show more in test summary (:pr:`4875`) `James Bourbeau`_
385- Move ``SystemMonitor`` s GPU initialization back to constructor (:pr:`4866`) `Peter Andreas Entschev`_
386- Mark ``test_server_comms_mark_active_handlers`` with ``pytest.mark.asyncio`` (:pr:`4876`) `James Bourbeau`_
387- Who has has what html reprs v2 (:pr:`4865`) `Jacob Tomlinson`_
388- O(1) rebalance (:pr:`4774`) `crusaderky`_
389- Ensure repr and eq for cluster always works (:pr:`4799`) `Florian Jetter`_
390
391
3922021.05.1
393---------
394
395Released on May 28, 2021
396
397- Drop usage of ``WhoHas`` & ``WhatHas`` from ``Client`` (:pr:`4863`) `jakirkham`_
398- Ensure adaptive scaling is properly awaited and closed (:pr:`4720`) `Florian Jetter`_
399- Fix ``WhoHas``/ ``HasWhat`` ``async`` usage (:pr:`4860`) `Benjamin Zaitlen`_
400- Add HTML reprs for ``Client.who_has`` and ``Client.has_what`` (:pr:`4853`) `Jacob Tomlinson`_
401- Prevent accidentally starting multiple ``Worker`` s in the same process (:pr:`4852`) `crusaderky`_
402- Add system tab to performance reports (:pr:`4561`) `Charles Blackmon-Luca`_
403- Let servers close faster if there are no active handlers (:pr:`4805`) `Florian Jetter`_
404- Fix UCX scrub config logging (:pr:`4850`) `Peter Andreas Entschev`_
405- Ensure worker clients are closed (:pr:`3921`) `Florian Jetter`_
406- Fix warning for attribute error when deleting a client (:pr:`4807`) `Florian Jetter`_
407- Ensure exceptions are raised if workers are incorrectly started (:pr:`4733`) `Florian Jetter`_
408- Update handling of UCX exceptions on endpoint closing (:pr:`4836`) `Peter Andreas Entschev`_
409- Ensure busy workloads properly look up ``who_has`` (:pr:`4793`) `Florian Jetter`_
410- Check ``distributed.scheduler.pickle`` in ``Scheduler.run_function`` (:pr:`4838`) `James Bourbeau`_
411- Add performance_report to API docs (:pr:`4840`) `James Bourbeau`_
412- Use ``dict`` ``_workers_dv`` in unordered use cases (:pr:`4826`) `jakirkham`_
413- Bump ``pre-commit`` hook versions (:pr:`4835`) `James Bourbeau`_
414- Do not mindlessly spawn workers when no memory limit is set (:pr:`4397`) `Torsten Wörtwein`_
415- ``test_memory`` to use ``gen_cluster`` (:pr:`4811`) `crusaderky`_
416- Increase timeout of ``gen_test`` to 30s (:pr:`4821`) `Florian Jetter`_
417
418
4192021.05.0
420---------
421
422Released on May 14, 2021
423
424- Merge global annotations on the client (:pr:`4691`) `Mads R. B. Kristensen`_
425- Add support for ``click`` 8 (:pr:`4810`) `James Bourbeau`_
426- Add HTML reprs to some scheduler classes (:pr:`4795`) `James Bourbeau`_
427- Use JupyterLab theme variables (:pr:`4796`) `Ian Rose`_
428- Allow the dashboard to run on multiple ports (:pr:`4786`) `Jacob Tomlinson`_
429- Remove ``release_dep`` from ``WorkerPlugin`` API (:pr:`4791`) `James Bourbeau`_
430- Support for UCX 1.10+ (:pr:`4787`) `Peter Andreas Entschev`_
431- Reduce complexity of ``test_gather_allow_worker_reconnect`` (:pr:`4739`) `Florian Jetter`_
432- Fix doctests in ``utils.py`` (:pr:`4785`) `Jacob Tomlinson`_
433- Ensure deps are actually logged in worker (:pr:`4753`) `Florian Jetter`_
434- Add ``stacklevel`` keyword into ``performance_report()`` to allow for selecting calling code to be displayed (:pr:`4777`) `Nathan Danielsen`_
435- Unregister worker plugin (:pr:`4748`) `Naty Clementi`_
436- Fixes some pickling issues in the Cythonized ``Scheduler`` (:pr:`4768`) `jakirkham`_
437- Improve graceful shutdown if nanny is involved (:pr:`4725`) `Florian Jetter`_
438- Update cythonization in CI (:pr:`4764`) `James Bourbeau`_
439- Use ``contextlib.nullcontext`` (:pr:`4763`) `James Bourbeau`_
440- Cython fixes for ``MemoryState`` (:pr:`4761`) `jakirkham`_
441- Fix errors in ``check_thread_leak`` (:pr:`4747`) `James Bourbeau`_
442- Handle missing ``key`` case in ``report_on_key`` (:pr:`4755`) `jakirkham`_
443- Drop temporary ``set`` variables ``s`` (:pr:`4758`) `jakirkham`_
444
445
4462021.04.1
447---------
448
449Released on April 23, 2021
450
451- Avoid ``active_threads`` changing size during iteration (:pr:`4729`) `James Bourbeau`_
452- Fix ``UnboundLocalError`` in ``AdaptiveCore.adapt()`` (:pr:`4731`) `Anderson Banihirwe`_
453- Minor formatting updates for HTTP endpoints doc (:pr:`4736`) `James Bourbeau`_
454- Unit test for ``metrics["memory"]=None`` (:pr:`4727`) `crusaderky`_
455- Enable configuration of prometheus metrics namespace (:pr:`4722`) `Jacob Tomlinson`_
456- Reintroduce ``weight`` function (:pr:`4723`) `James Bourbeau`_
457- Add ``ready->memory`` to transitions in worker (:pr:`4728`) `Gil Forsyth`_
458- Fix regressions in :pr:`4651` (:pr:`4719`) `crusaderky`_
459- Add descriptions for UCX config options (:pr:`4683`) `Charles Blackmon-Luca`_
460- Split RAM measure into dask keys/other old/other new (:pr:`4651`) `crusaderky`_
461- Fix ``DeprecationWarning`` on Python 3.9 (:pr:`4717`) `George Sakkis`_
462- ipython causes ``test_profile_nested_sizeof`` crash on windows (:pr:`4713`) `crusaderky`_
463- Add ``iterate_collection`` argument to ``serialize`` (:pr:`4641`) `Richard J Zamora`_
464- When closing ``Server``, close all listeners (:pr:`4704`) `Florian Jetter`_
465- Fix timeout in ``client.restart`` (:pr:`4690`) `Matteo De Wint`_
466- Avoid repeatedly using the same worker on first task with quiet cluster (:pr:`4638`) `Doug Davis`_
467- Grab ``func`` for ``finish`` case only if used (:pr:`4702`) `jakirkham`_
468- Remove hostname check in ``test_dashboard`` (:pr:`4706`) `James Bourbeau`_
469- Faster ``tests_semaphore::test_worker_dies`` (:pr:`4703`) `Florian Jetter`_
470- Clean up ``test_dashboard`` (:pr:`4700`) `crusaderky`_
471- Add timing information to ``TaskGroup`` (:pr:`4671`) `Matthew Rocklin`_
472- Remove ``WSSConnector`` TLS presence check (:pr:`4695`) `Marcos Moyano`_
473- Fix typo and remove unused ``time.time`` import (:pr:`4689`) `Hristo Georgiev`_
474- Don't initialize CUDA context in monitor (:pr:`4688`) `Charles Blackmon-Luca`_
475- Add support for extra conn args for HTTP protocols (:pr:`4682`) `Marcos Moyano`_
476- Adjust timings in ``test_threadpoolworkers`` (:pr:`4681`) `Florian Jetter`_
477- Add GPU metrics to ``SystemMonitor`` (:pr:`4661`) `Charles Blackmon-Luca`_
478- Removing ``dumps_msgpack()`` and ``loads_msgpack()`` (:pr:`4677`) `Mads R. B. Kristensen`_
479- Expose worker ``SystemMonitor`` s to scheduler via RPC (:pr:`4657`) `Charles Blackmon-Luca`_
480
481
4822021.04.0
483---------
484
485Released on April 2, 2021
486
487- Fix un-merged frames (:pr:`4666`) `Matthew Rocklin`_
488- Add informative error message to install uvloop (:pr:`4664`) `Matthew Rocklin`_
489- Remove incorrect comment regarding default ``LocalCluster`` creation (:pr:`4660`) `cameron16`_
490- Treat empty/missing ``writeable`` as a no-op (:pr:`4659`) `jakirkham`_
491- Avoid list mutation in ``pickle_loads`` (:pr:`4653`) `Matthew Rocklin`_
492- Ignore ``OSError`` exception when scaling down (:pr:`4633`) `Gerald`_
493- Add ``isort`` to pre-commit hooks, package resorting (:pr:`4647`) `Charles Blackmon-Luca`_
494- Use powers-of-two when displaying RAM (:pr:`4649`) `crusaderky`_
495- Support Websocket communication protocols (:pr:`4396`) `Marcos Moyano`_
496- ``scheduler.py`` / ``worker.py`` code cleanup (:pr:`4626`) `crusaderky`_
497- Update out-of-date references to ``config.yaml`` (:pr:`4643`) `Hristo Georgiev`_
498- Suppress ``OSError`` on ``SpecCluster`` shutdown (:pr:`4567`) `Jacob Tomlinson`_
499- Replace conda with mamba (:pr:`4585`) `crusaderky`_
500- Expand documentation on pure functions (:pr:`4644`) `James Lamb`_
501
502
5032021.03.1
504---------
505
506Released on March 26, 2021
507
508- Add standalone dashboard page for GPU usage (:pr:`4556`) `Jacob Tomlinson`_
509- Handle ``stream is None`` case in TCP comm finalizer (:pr:`4631`) `James Bourbeau`_
510- Include ``LIST_PICKLE`` in NumPy array serialization (:pr:`4632`) `James Bourbeau`_
511- Rename annotation plugin in ``test_highlevelgraph.py`` (:pr:`4618`) `James Bourbeau`_
512- UCX use ``nbytes`` instead of ``len`` (:pr:`4621`) `Mads R. B. Kristensen`_
513- Skip NumPy and pandas tests if not importable (:pr:`4563`) `Ben Greiner`_
514- Remove ``utils.shutting_down`` in favor of ``sys.is_finalizing`` (:pr:`4624`) `James Bourbeau`_
515- Handle ``async`` clients when closing (:pr:`4623`) `Matthew Rocklin`_
516- Drop ``log`` from ``remove_key_from_stealable`` (:pr:`4609`) `jakirkham`_
517- Introduce events log length config option (:pr:`4615`) `Fabian Gebhart`_
518- Upstream config serialization and inheritance (:pr:`4372`) `Jacob Tomlinson`_
519- Add check to scheduler creation in ``SpecCluster`` (:pr:`4605`) `Jacob Tomlinson`_
520- Make length of events ``deque`` configurable (:pr:`4604`) `Fabian Gebhart`_
521- Add explicit ``fetch`` state to worker ``TaskState`` (:pr:`4470`) `Gil Forsyth`_
522- Update ``develop.rst`` (:pr:`4603`) `Florian Jetter`_
523- ``pickle_loads()``: Handle empty ``memoryview`` (:pr:`4595`) `Mads R. B. Kristensen`_
524- Switch documentation builds for PRs to readthedocs (:pr:`4599`) `James Bourbeau`_
525- Track frame sizes along with frames (:pr:`4593`) `jakirkham`_
526- Add support for a list of keys when using ``batch_size`` in ``client.map`` (:pr:`4592`) `Sultan Orazbayev`_
527- If ``SpecCluster`` fails to start attempt to gracefully close out again (:pr:`4590`) `Jacob Tomlinson`_
528- Multi-lock extension (:pr:`4503`) `Mads R. B. Kristensen`_
529- Update ``PipInstall`` plugin command (:pr:`4584`) `James Bourbeau`_
530- IPython magics: remove deprecated ``ioloop`` workarounds (:pr:`4530`) `Min RK`_
531- Add GitHub actions workflow to cancel duplicate builds (:pr:`4581`) `James Bourbeau`_
532- Remove outdated macOS build badge from ``README`` (:pr:`4576`) `James Bourbeau`_
533- Dask master -> main (:pr:`4569`) `Julia Signell`_
534- Drop support for Python 3.6 (:pr:`4390`) `James Bourbeau`_
535- Add docstring for ``dashboard_link`` property (:pr:`4572`) `Doug Davis`_
536- Change default branch from master to main (:pr:`4495`) `Julia Signell`_
537- Msgpack handles extract serialize (:pr:`4531`) `Mads R. B. Kristensen`_
538
539
5402021.03.0
541---------
542
543Released on March 5, 2021
544
545.. note::
546
547    This is the first release with support for Python 3.9 and the
548    last release with support for Python 3.6
549
550- ``tcp.write()``: cast ``memoryview`` to byte itemsize (:pr:`4555`) `Mads R. B. Kristensen`_
551- Refcount the ``thread_state.asynchronous`` flag (:pr:`4557`) `Mads R. B. Kristensen`_
552- Python 3.9 (:pr:`4460`) `crusaderky`_
553- Better bokeh defaults for dashboard (:pr:`4554`) `Benjamin Zaitlen`_
554- Expose system monitor dashboard as individual plot for lab extension (:pr:`4540`) `Jacob Tomlinson`_
555- Pass on original temp dir from nanny to worker (:pr:`4549`) `Martin Durant`_
556- Serialize and split (:pr:`4541`) `Mads R. B. Kristensen`_
557- Use the new HLG pack/unpack API in Dask (:pr:`4489`) `Mads R. B. Kristensen`_
558- Handle annotations for culled tasks (:pr:`4544`) `Tom Augspurger`_
559- Make sphinx autosummary and autoclass consistent (:pr:`4367`) `Casey Clements`_
560- Move ``_transition*`` to ``SchedulerState`` (:pr:`4545`) `jakirkham`_
561- Migrate from travis to GitHub actions (:pr:`4504`) `crusaderky`_
562- Move ``new_task`` to ``SchedulerState`` (:pr:`4527`) `jakirkham`_
563- Batch more Scheduler sends (:pr:`4526`) `jakirkham`_
564- ``transition_memory_released`` and ``get_nbytes()`` optimizations (:pr:`4516`) `jakirkham`_
565- Pin ``black`` pre-commit (:pr:`4533`) `James Bourbeau`_
566- Read & write all frames in one pass (:pr:`4506`) `jakirkham`_
567- Skip ``stream.write`` call for empty frames (:pr:`4507`) `jakirkham`_
568- Prepend frame metadata header (:pr:`4505`) `jakirkham`_
569- ``transition_processing_memory`` optimizations, etc. (:pr:`4487`) `jakirkham`_
570- Attempt to get client from worker in ``Queue`` and ``Variable`` (:pr:`4490`) `James Bourbeau`_
571- Use ``main`` branch for ``zict`` (:pr:`4499`) `jakirkham`_
572- Use a callback to close TCP Comms, rather than check every time (:pr:`4453`) `Matthew Rocklin`_
573
574
5752021.02.0
576---------
577
578Released on February 5, 2021
579
580- Bump minimum Dask to 2021.02.0 (:pr:`4486`) `James Bourbeau`_
581- Update ``TaskState`` documentation about dependents attribute (:pr:`4440`) `Florian Jetter`_
582- DOC: Autoreformat all functions docstrings (:pr:`4475`) `Matthias Bussonnier`_
583- Use cached version of ``is_coroutine_function`` in stream handling to (:pr:`4481`) `Ian Rose`_
584- Optimize ``transitions`` (:pr:`4451`) `jakirkham`_
585- Create ``PULL_REQUEST_TEMPLATE.md`` (:pr:`4476`) `Ray Bell`_
586- DOC: typo, directives ends with 2 colons ``::`` (:pr:`4472`) `Matthias Bussonnier`_
587- DOC: Proper numpydoc syntax for ``distributed/protocol/*.py`` (:pr:`4473`) `Matthias Bussonnier`_
588- Update ``pytest.skip`` usage in ``test_server_listen`` (:pr:`4467`) `James Bourbeau`_
589- Unify annotations (:pr:`4406`) `Ian Rose`_
590- Added worker resources from config (:pr:`4456`) `Tom Augspurger`_
591- Fix var name in worker validation func (:pr:`4457`) `Gil Forsyth`_
592- Refactor ``task_groups`` & ``task_prefixes`` (:pr:`4452`) `jakirkham`_
593- Use ``parent._tasks`` in ``heartbeat`` (:pr:`4450`) `jakirkham`_
594- Refactor ``SchedulerState`` from ``Scheduler`` (:pr:`4365`) `jakirkham`_
595
596
5972021.01.1
598---------
599
600Released on January 22, 2021
601
602- Make system monitor interval configurable (:pr:`4447`) `Matthew Rocklin`_
603- Add ``uvloop`` config value (:pr:`4448`) `Matthew Rocklin`_
604- Additional optimizations to stealing (:pr:`4445`) `jakirkham`_
605- Give clusters names (:pr:`4426`) `Jacob Tomlinson`_
606- Use worker comm pool in ``Semaphore`` (:pr:`4195`) `Florian Jetter`_
607- Set ``runspec`` on all new tasks to avoid deadlocks (:pr:`4432`) `Florian Jetter`_
608- Support ``TaskState`` objects in story methods (:pr:`4434`) `Matthew Rocklin`_
609- Support missing event loop in ``Client.asynchronous`` (:pr:`4436`) `Matthew Rocklin`_
610- Don't require network to inspect tests (:pr:`4433`) `Matthew Rocklin`_
611
612
6132021.01.0
614---------
615
616Released on January 15, 2021
617
618- Add time started to scheduler info (:pr:`4425`) `Jacob Tomlinson`_
619- Log adaptive error (:pr:`4422`) `Jacob Tomlinson`_
620- Xfail normalization tests (:pr:`4411`) `Jacob Tomlinson`_
621- Use ``dumps_msgpack`` and ``loads_msgpack`` when packing high level graphs (:pr:`4409`) `Mads R. B. Kristensen`_
622- Add ``nprocs`` auto option to ``dask-worker`` CLI (:pr:`4377`) `Jacob Tomlinson`_
623- Type annotation of ``_reevaluate_occupancy_worker`` (:pr:`4398`) `jakirkham`_
624- Type ``TaskGroup`` in ``active_states`` (:pr:`4408`) `jakirkham`_
625- Fix ``test_as_current_is_thread_local`` (:pr:`4402`) `jakirkham`_
626- Use ``list`` comprehensions to bind ``TaskGroup`` type (:pr:`4401`) `jakirkham`_
627- Make tests pass after 2028 (:pr:`4403`) `Bernhard M. Wiedemann`_
628- Fix compilation warnings, ``decide_worker`` now a C func, stealing improvements (:pr:`4375`) `jakirkham`_
629- Drop custom ``__eq__`` from ``Status`` (:pr:`4270`) `jakirkham`_
630- ``test_performance_report``: skip without bokeh (:pr:`4388`) `Bruno Pagani`_
631- ``Nanny`` now respects dask settings from ctx mgr (:pr:`4378`) `Florian Jetter`_
632- Better task duration estimates for outliers (:pr:`4213`) `selshowk`_
633- Dask internal inherit config (:pr:`4364`) `Jacob Tomlinson`_
634- Provide ``setup.py`` option to profile Cython code (:pr:`4362`) `jakirkham`_
635- Optimizations of ``*State`` and ``Task*`` objects and stealing (:pr:`4358`) `jakirkham`_
636- Cast ``SortedDict`` s to ``dict`` s in a few key places & other minor changes (:pr:`4355`) `jakirkham`_
637- Use task annotation priorities for user-level priorities (:pr:`4354`) `James Bourbeau`_
638- Added docs to highlevelgraph pack/unpack (:pr:`4352`) `Mads R. B. Kristensen`_
639- Optimizations in notable functions used by transitions (:pr:`4351`) `jakirkham`_
640- Silence exception when releasing futures on process shutdown (:pr:`4309`) `Benjamin Zaitlen`_
641
642
6432020.12.0
644---------
645
646Released on December 10, 2020
647
648Highlights
649^^^^^^^^^^
650
651- Switched to `CalVer <https://calver.org/>`_ for versioning scheme.
652- The scheduler can now receives Dask ``HighLevelGraph`` s instead of raw dictionary task graphs.
653  This allows for a much more efficient communication of task graphs from the client to the scheduler.
654- Added support for using custom ``Layer``-level annotations like ``priority``, ``retries``,
655  etc. with the ``dask.annotations`` context manager.
656- Updated minimum supported version of Dask to 2020.12.0.
657- Added many type annotations and updates to allow for gradually Cythonizing the scheduler.
658
659All changes
660^^^^^^^^^^^
661
662- Some common optimizations across transitions (:pr:`4348`) `jakirkham`_
663- Drop serialize extension (:pr:`4344`) `jakirkham`_
664- Log duplciate workers in scheduler (:pr:`4338`) `Matthew Rocklin`_
665- Annotation of some comm related methods in the ``Scheduler`` (:pr:`4341`) `jakirkham`_
666- Optimize ``assert`` in ``validate_waiting`` (:pr:`4342`) `jakirkham`_
667- Optimize ``decide_worker`` (:pr:`4332`) `jakirkham`_
668- Store occupancy in ``_reevaluate_occupancy_worker`` (:pr:`4337`) `jakirkham`_
669- Handle ``WorkerState`` ``memory_limit`` of ``None`` (:pr:`4335`) `jakirkham`_
670- Use ``bint`` to annotate boolean attributes (:pr:`4334`) `jakirkham`_
671- Optionally use offload executor in worker (:pr:`4307`) `Matthew Rocklin`_
672- Optimize ``send_task_to_worker`` (:pr:`4331`) `jakirkham`_
673- Optimize ``valid_workers`` (:pr:`4329`) `jakirkham`_
674- Store occupancy in ``transition_waiting_processing`` (:pr:`4330`) `jakirkham`_
675- Optimize ``get_comm_cost`` (:pr:`4328`) `jakirkham`_
676- Use ``.pop(...)`` to remove ``key`` (:pr:`4327`) `jakirkham`_
677- Use ``operator.attrgetter`` on ``WorkerState.address`` (:pr:`4324`) `jakirkham`_
678- Annotate ``Task*`` objects for Cythonization (:pr:`4302`) `jakirkham`_
679- Ensure ``retire_workers`` always ``return`` a ``dict`` (:pr:`4323`) `jakirkham`_
680- Some Cython fixes for ``WorkerState`` (:pr:`4321`) `jakirkham`_
681- Optimize ``WorkerState.__eq__`` (:pr:`4320`) `jakirkham`_
682- Swap order of ``TaskGroup`` and ``TaskPrefix`` (:pr:`4319`) `jakirkham`_
683- Check traceback object can be unpickled (:pr:`4299`) `jakirkham`_
684- Move ``TaskGroup`` & ``TaskPrefix`` before `TaskState` (:pr:`4318`) `jakirkham`_
685- Remove empty ``test_highgraph.py`` file (:pr:`4313`) `James Bourbeau`_
686- Ensure that ``retire_workers`` returns a ``dict`` (:pr:`4315`) `Matthew Rocklin`_
687- Annotate ``WorkerState`` for Cythonization (:pr:`4294`) `jakirkham`_
688- Close ``comm`` on low-level errors (:pr:`4239`) `jochen-ott-by`_
689- Coerce new ``TaskState.nbytes`` value to ``int`` (:pr:`4311`) `jakirkham`_
690- Remove offload ``try``/``except`` for ``thread_name_prefix`` keyword (:pr:`4308`) `James Bourbeau`_
691- Fix ``pip`` install issue on CI (:pr:`4310`) `jakirkham`_
692- Transmit ``Layer`` annotations to scheduler (:pr:`4279`) `Simon Perkins`_
693- Ignores any compiled files generated by Cython (:pr:`4301`) `jakirkham`_
694- Protect against missing key in ``get_metrics`` (:pr:`4300`) `Matthew Rocklin`_
695- Provide option to build Distributed with Cython (:pr:`4292`) `jakirkham`_
696- Set ``WorkerState.processing`` w/``dict`` in ``clean`` (:pr:`4295`) `jakirkham`_
697- Annotate ``ClientState`` for Cythonization (:pr:`4290`) `jakirkham`_
698- Annotate ``check_idle_saturated`` for Cythonization (:pr:`4289`) `jakirkham`_
699- Avoid flicker in ``TaskStream`` with "Scheduler is empty" message (:pr:`4284`) `Matthew Rocklin`_
700- Make ``gather_dep`` robust to missing tasks (:pr:`4285`) `Matthew Rocklin`_
701- Annotate ``extract_serialize`` (for Cythonization) (:pr:`4283`) `jakirkham`_
702- Move ``nbytes`` from Worker's state to ``TaskState`` (:pr:`4274`) `Gil Forsyth`_
703- Drop extra type check in ``_extract_serialize`` (:pr:`4281`) `jakirkham`_
704- Move Status to top-level import (:pr:`4280`) `Matthew Rocklin`_
705- Add ``__hash__`` and ``__eq__`` for ``TaskState`` (:pr:`4278`) `jakirkham`_
706- Add ``__hash__`` and ``__eq__`` for ``ClientState`` (:pr:`4276`) `jakirkham`_
707- Collect ``report``'s ``client_key``s in a ``list`` (:pr:`4275`) `jakirkham`_
708- Precompute ``hash`` for ``WorkerState`` (:pr:`4271`) `jakirkham`_
709- Use ``Status`` ``Enum`` in ``remove_worker`` (:pr:`4269`) `jakirkham`_
710- Add aggregated topic logs and ``log_event`` method (:pr:`4230`) `James Bourbeau`_
711- Find the set of workers instead of their frequency (:pr:`4267`) `jakirkham`_
712- Use ``set.update`` to include other ``comms`` (:pr:`4268`) `jakirkham`_
713- Support string timeouts in ``sync`` (:pr:`4266`) `James Bourbeau`_
714- Use ``dask.utils.stringify()`` instead of ``distributed.utils.tokey()`` (:pr:`4255`) `Mads R. B. Kristensen`_
715- Use ``.items()`` to walk through keys and values (:pr:`4261`) `jakirkham`_
716- Simplify frame length packing in TCP write (:pr:`4257`) `jakirkham`_
717- Comm/tcp listener: do not pass comm with failed handshake to ``comm_handler`` (:pr:`4240`) `jochen-ott-by`_
718- Fuse steps in ``extract_serialize`` (:pr:`4254`) `jakirkham`_
719- Drop ``test_sklearn`` (:pr:`4253`) `jakirkham`_
720- Document task priority tie breaking (:pr:`4252`) `James Bourbeau`_
721- ``__dask_distributed_pack__()``: client argument (:pr:`4248`) `Mads R. B. Kristensen`_
722- Configurable timeouts for ``worker_client`` and ``get_client`` (:pr:`4146`) `GeethanjaliEswaran`_
723- Add dask/distributed versions to ``performance_report`` (:pr:`4249`) `Matthew Rocklin`_
724- Update miniconda GitHub action (:pr:`4250`) `James Bourbeau`_
725- UCX closing ignore error (:pr:`4236`) `Mads R. B. Kristensen`_
726- Redirect to ``dask-worker`` cli documentation (:pr:`4247`) `Timost`_
727- Upload file worker plugin (:pr:`4238`) `Ian Rose`_
728- Create dependency ``TaskState`` as needed in ``gather_dep`` (:pr:`4241`) `Gil Forsyth`_
729- Instantiate plugin if needed in ``register_worker_plugin`` (:pr:`4198`) `Julia Signell`_
730- Allow actors to call actors on the same worker (:pr:`4225`) `Martin Durant`_
731- Special case profile thread in leaked thread check (:pr:`4229`) `James Bourbeau`_
732- Use ``intersection()`` on a set instead of ``dict_keys`` in ``update_graph`` (:pr:`4227`) `Mads R. B. Kristensen`_
733- Communicate ``HighLevelGraphs`` directly to the ``Scheduler`` (:pr:`4140`) `Mads R. B. Kristensen`_
734- Add ``get_task_metadata`` context manager (:pr:`4216`) `James Bourbeau`_
735- Task state logs and data fix (:pr:`4206`) `Gil Forsyth`_
736- Send active task durations from worker to scheduler (:pr:`4192`) `James Bourbeau`_
737- Fix state check in ``test_close_gracefully`` (:pr:`4203`) `Gil Forsyth`_
738- Avoid materializing layers in ``Client.compute()`` (:pr:`4196`) `Mads R. B. Kristensen`_
739- Add ``TaskState`` metadata (:pr:`4191`) `James Bourbeau`_
740- Fix regression in task stealing for already released keys (:pr:`4182`) `Florian Jetter`_
741- Fix ``_graph_to_futures`` bug for futures-based dependencies (:pr:`4178`) `Richard J Zamora`_
742- High level graph ``dumps``/``loads`` support (:pr:`4174`) `Mads R. B. Kristensen`_
743- Implement pass HighLevelGraphs through ``_graph_to_futures`` (:pr:`4139`) `Mads R. B. Kristensen`_
744- Support ``async`` preload click commands (:pr:`4170`) `James Bourbeau`_
745- ``dask-worker`` cli memory limit option doc fix (:pr:`4172`) `marwan116`_
746- Add ``TaskState`` to ``worker.py`` (:pr:`4107`) `Gil Forsyth`_
747- Increase robustness of ``Semaphore.release`` (:pr:`4151`) `Lucas Rademaker`_
748- Skip batched comm test win / tornado5 (:pr:`4166`) `Tom Augspurger`_
749- Set Zict buffer target to maxsize when ``memory_target_fraction`` is ``False`` (:pr:`4156`) `Krishan Bhasin`_
750- Add ``PipInstall`` ``WorkerPlugin`` (:pr:`3216`) `Matthew Rocklin`_
751- Log ``KilledWorker`` events in the scheduler (:pr:`4157`) `Matthew Rocklin`_
752- Fix ``test_gpu_metrics`` failure (:pr:`4154`) `jakirkham`_
753
754
7552.30.1 - 2020-11-03
756-------------------
757
758- Pin ``pytest-asyncio`` version (:pr:`4212`) `James Bourbeau`_
759- Replace ``AsyncProcess`` exit handler by ``weakref.finalize`` (:pr:`4184`) `Peter Andreas Entschev`_
760- Remove hard coded connect handshake timeouts (:pr:`4176`) `Florian Jetter`_
761
762
7632.30.0 - 2020-10-06
764-------------------
765
766- Support ``SubgraphCallable`` in ``str_graph()`` (:pr:`4148`) `Mads R. B. Kristensen`_
767- Handle exceptions in ``BatchedSend`` (:pr:`4135`) `Tom Augspurger`_
768- Fix for missing ``:`` in autosummary docs (:pr:`4143`) `Gil Forsyth`_
769- Limit GPU metrics to visible devices only (:pr:`3810`) `Jacob Tomlinson`_
770
771
7722.29.0 - 2020-10-02
773-------------------
774
775- Use ``pandas.testing`` (:pr:`4138`) `jakirkham`_
776- Fix a few typos (:pr:`4131`) `Pav A`_
777- Return right away in ``Cluster.close`` if cluster is already closed (:pr:`4116`) `Tom Rochette`_
778- Update async doc with example on ``.compute()`` vs ``client.compute()`` (:pr:`4137`) `Benjamin Zaitlen`_
779- Correctly tear down ``LoopRunner`` in ``Client`` (:pr:`4112`) `Sergey Kozlov`_
780- Simplify ``Client._graph_to_futures()`` (:pr:`4127`) `Mads R. B. Kristensen`_
781- Cleanup new exception traceback (:pr:`4125`) `Krishan Bhasin`_
782- Stop writing config files by default (:pr:`4123`) `Matthew Rocklin`_
783
784
7852.28.0 - 2020-09-25
786-------------------
787
788- Fix SSL ``connection_args`` for ``progressbar`` connect (:pr:`4122`) `jennalc`_
789
790
7912.27.0 - 2020-09-18
792-------------------
793
794- Fix registering a worker plugin with ``name`` arg (:pr:`4105`) `Nick Evans`_
795- Support different ``remote_python`` paths on cluster nodes (:pr:`4085`) `Abdulelah Bin Mahfoodh`_
796- Allow ``RuntimeError`` s when closing global clients (:pr:`4115`) `Matthew Rocklin`_
797- Match ``pre-commit`` in dask (:pr:`4049`) `Julia Signell`_
798- Update ``super`` usage (:pr:`4110`) `Poruri Sai Rahul`_
799
800
8012.26.0 - 2020-09-11
802-------------------
803
804- Add logging for adaptive start and stop (:pr:`4101`) `Matthew Rocklin`_
805- Don't close a nannied worker if it hasn't yet started (:pr:`4093`) `Matthew Rocklin`_
806- Respect timeouts when closing clients synchronously (:pr:`4096`) `Matthew Rocklin`_
807- Log when downloading a preload script (:pr:`4094`) `Matthew Rocklin`_
808- ``dask-worker --nprocs`` accepts negative values (:pr:`4089`) `Dror Speiser`_
809- Support zero-worker clients (:pr:`4090`) `Matthew Rocklin`_
810- Exclude ``fire-and-forget`` client from metrics (:pr:`4078`) `Tom Augspurger`_
811- Drop ``Serialized.deserialize()`` method (:pr:`4073`) `jakirkham`_
812- Add ``timeout=`` keyword to ``Client.wait_for_workers`` method (:pr:`4087`) `Matthew Rocklin`_
813
814
8152.25.0 - 2020-08-28
816-------------------
817
818- Update for black (:pr:`4081`) `Tom Augspurger`_
819- Provide informative error when connecting an older version of Dask (:pr:`4076`) `Matthew Rocklin`_
820- Simplify ``pack_frames`` (:pr:`4068`) `jakirkham`_
821- Simplify ``frame_split_size`` (:pr:`4067`) `jakirkham`_
822- Use ``list.insert`` to add prelude up front (:pr:`4066`) `jakirkham`_
823- Graph helper text (:pr:`4064`) `Julia Signell`_
824- Graph dashboard: Reset container data if task number is too large (:pr:`4056`) `Florian Jetter`_
825- Ensure semaphore picks correct ``IOLoop`` for threadpool workers (:pr:`4060`) `Florian Jetter`_
826- Add cluster log method (:pr:`4051`) `Jacob Tomlinson`_
827- Cleanup more exception tracebacks (:pr:`4054`) `Krishan Bhasin`_
828- Improve documentation of ``scheduler.locks`` options (:pr:`4062`) `Florian Jetter`_
829
830
8312.24.0 - 2020-08-22
832-------------------
833
834-   Move toolbar to above and fix y axis (#4043) `Julia Signell`_
835-   Make behavior clearer for how to get worker dashboard (#4047) `Julia Signell`_
836-   Worker dashboard clean up (#4046) `Julia Signell`_
837-   Add a default argument to the datasets and a possibility to override datasets (#4052) `Nils Braun`_
838-   Discover HTTP endpoints (#3744) `Martin Durant`_
839
840
8412.23.0 - 2020-08-14
842-------------------
843
844- Tidy up exception traceback in TCP Comms (:pr:`4042`) `Krishan Bhasin`_
845- Angle on the x-axis labels (:pr:`4030`) `Mathieu Dugré`_
846- Always set RMM's strides in the ``header`` (:pr:`4039`) `jakirkham`_
847- Fix documentation ``upload_file`` (:pr:`4038`) `Roberto Panai`_
848- Update UCX tests for new handshake step (:pr:`4036`) `jakirkham`_
849- Add test for informative errors in serialization cases (:pr:`4029`) `Matthew Rocklin`_
850- Add compression, pickle protocol to comm contexts (:pr:`4019`) `Matthew Rocklin`_
851- Make GPU plots robust to not having GPUs (:pr:`4008`) `Matthew Rocklin`_
852- Update ``PendingDeprecationWarning`` with correct version number (:pr:`4025`) `Matthias Bussonnier`_
853- Install PyTorch on CI (:pr:`4017`) `jakirkham`_
854- Try getting cluster ``dashboard_link`` before asking scheduler (:pr:`4018`) `Matthew Rocklin`_
855- Ignore writeable frames with builtin ``array`` (:pr:`4016`) `jakirkham`_
856- Just extend ``frames2`` by ``frames`` (:pr:`4015`) `jakirkham`_
857- Serialize builtin array (:pr:`4013`) `jakirkham`_
858- Use cuDF's ``assert_eq`` (:pr:`4014`) `jakirkham`_
859- Clear function cache whenever we upload a new file (:pr:`3993`) `Jack Xiaosong Xu`_
860- Emmit warning when assign/comparing string with ``Status`` ``Enum`` (:pr:`3875`) `Matthias Bussonnier`_
861- Track mutable frames (:pr:`4004`) `jakirkham`_
862- Improve ``bytes`` and ``bytearray`` serialization (:pr:`4009`) `jakirkham`_
863- Fix memory histogram values in dashboard (:pr:`4006`) `Willi Rath`_
864
865
8662.22.0 - 2020-07-31
867-------------------
868
869- Only call ``frame_split_size`` when there are frames (:pr:`3996`) `jakirkham`_
870- Fix failing ``test_bandwidth`` (:pr:`3999`) `jakirkham`_
871- Handle sum of memory percentage when ``memory_limit`` is 0 (:pr:`3984`) `Julia Signell`_
872- Drop msgpack pre-0.5.2 compat code (:pr:`3977`) `jakirkham`_
873- Revert to localhost for local IP if no network available (:pr:`3991`) `Matthew Rocklin`_
874- Add missing backtick in inline directive. (:pr:`3988`) `Matthias Bussonnier`_
875- Warn when ``threads_per_worker`` is set to zero (:pr:`3986`) `Julia Signell`_
876- Use ``memoryview`` in ``unpack_frames`` (:pr:`3980`) `jakirkham`_
877- Iterate over list of comms (:pr:`3959`) `Matthew Rocklin`_
878- Streamline ``pack_frames``/``unpack_frames`` frames (:pr:`3973`) `jakirkham`_
879- Always attempt to create ``dask-worker-space`` folder and continue if it exists (:pr:`3972`) `Jendrik Jördening`_
880- Use ``merge_frames`` with host memory only (:pr:`3971`) `jakirkham`_
881- Simplify ``pack_frames_prelude`` (:pr:`3961`) `jakirkham`_
882- Use continuation prompt for proper example parsing (:pr:`3966`) `Matthias Bussonnier`_
883- Ensure writable frames (:pr:`3967`) `jakirkham`_
884
885
8862.21.0 - 2020-07-17
887-------------------
888
889- Fix data replication error (:pr:`3963`) `Andrew Fulton`_
890- Treat falsey local directory as ``None`` (:pr:`3964`) `Tom Augspurger`_
891- Unpin ``numpydoc`` now that 1.1 is released (:pr:`3957`) `Gil Forsyth`_
892- Error hard when Dask has mismatched versions or lz4 installed (:pr:`3936`) `Matthew Rocklin`_
893- Skip coercing to ``bytes`` in ``merge_frames`` (:pr:`3960`) `jakirkham`_
894- UCX: reuse endpoints in order to fix NVLINK issue (:pr:`3953`) `Mads R. B. Kristensen`_
895- Optionally use ``pickle5`` (:pr:`3849`) `jakirkham`_
896- Update time per task chart with filtering and pie (:pr:`3933`) `Benjamin Zaitlen`_
897- UCX: explicit shutdown message (:pr:`3950`) `Mads R. B. Kristensen`_
898- Avoid too aggressive retry of connections (:pr:`3944`) `Matthias Bussonnier`_
899- Parse timeouts in ``Client.sync`` (:pr:`3952`) `Matthew Rocklin`_
900- Synchronize on non-trivial CUDA frame transmission (:pr:`3949`) `jakirkham`_
901- Serialize ``memoryview`` with ``shape`` and ``format`` (:pr:`3947`) `jakirkham`_
902- Move ``scheduler_comm`` into ``Cluster.__init__`` (:pr:`3945`) `Matthew Rocklin`_
903
904
9052.20.0 - 2020-07-02
906-------------------
907
908- Link issue on using ``async`` with ``executor_submit`` (:pr:`3939`) `jakirkham`_
909- Make dashboard server listens on all IPs by default even when interface is set explicitly (:pr:`3941`) `Loïc Estève`_
910- Update logic for worker removal in check ttl (:pr:`3927`) `Benjamin Zaitlen`_
911- Close a created cluster quietly (:pr:`3935`) `Matthew Rocklin`_
912- Ensure ``Worker.run*`` handles ``kwargs`` correctly (:pr:`3937`) `jakirkham`_
913- Restore ``Scheduler.time_started`` for Dask Gateway (:pr:`3934`) `Tom Augspurger`_
914- Fix exception handling in ``_wait_until_connected`` (:pr:`3912`) `Alexander Clausen`_
915- Make local directory if it does not exist (:pr:`3928`) `Matthew Rocklin`_
916- Install vanilla status route if bokeh dependency is not satisfied (:pr:`3844`) `joshreback`_
917- Make ``Worker.delete_data`` sync (:pr:`3922`) `Peter Andreas Entschev`_
918- Fix ``ensure_bytes`` import location (:pr:`3919`) `jakirkham`_
919- Fix race condition in repeated calls to ``cluster.adapt()`` (:pr:`3915`) `Jacob Tomlinson`_
920
921
9222.19.0 - 2020-06-19
923-------------------
924
925- Notify worker plugins when a task is released (:pr:`3817`) `Nick Evans`_
926- Update heartbeat checks in scheduler (:pr:`3896`) `Benjamin Zaitlen`_
927- Make encryption default if ``Security`` is given arguments (:pr:`3887`) `Matthew Rocklin`_
928- Show ``cpu_fraction`` on hover for dashboard workers circle plot. (:pr:`3906`) `Loïc Estève`_
929- Prune virtual client on variable deletion (:pr:`3910`) `Marco Neumann`_
930- Fix total aggregated metrics in dashboard (:pr:`3897`) `Loïc Estève`_
931- Support Bokeh 2.1 (:pr:`3904`) `Matthew Rocklin`_
932- Update ``related-work.rst`` (:pr:`3889`) `DomHudson`_
933- Skip ``test_pid_file`` in older versions of Python (:pr:`3888`) `Matthew Rocklin`_
934- Replace ``stream=`` with ``comm=`` in handlers (:pr:`3860`) `Julien Jerphanion`_
935- Check hosts for ``None`` value in SSH cluster. (:pr:`3883`) `Matthias Bussonnier`_
936- Allow dictionaries in ``security=`` keywords (:pr:`3874`) `Matthew Rocklin`_
937- Use pickle protocol 5 with NumPy object arrays (:pr:`3871`) `jakirkham`_
938- Cast any ``frame`` to ``uint8`` (same type as ``bytes``) (:pr:`3870`) `jakirkham`_
939- Use ``Enum`` for worker, scheduler and nanny status. (:pr:`3853`) `Matthias Bussonnier`_
940- Drop legacy ``buffer_interface`` assignment (:pr:`3869`) `jakirkham`_
941- Drop old frame splitting in NumPy serialization (:pr:`3868`) `jakirkham`_
942- Drop no longer needed local ``import pickle`` (:pr:`3865`) `jakirkham`_
943- Fix typo in ``feed``'s log message (:pr:`3867`) `jakirkham`_
944- Tidy pickle (:pr:`3866`) `jakirkham`_
945- Handle empty times in task stream (:pr:`3862`) `Benjamin Zaitlen`_
946- Change ``asyncssh`` objects to sphinx references (:pr:`3861`) `Jacob Tomlinson`_
947- Improve ``SSHCluster`` docstring for ``connect_options`` (:pr:`3859`) `Jacob Tomlinson`_
948- Validate address parameter in client constructor (:pr:`3842`) `joshreback`_
949- Use ``SpecCluster`` name in worker names (:pr:`3855`) `Loïc Estève`_
950- Allow async ``add_worker`` and ``remove_worker`` plugin methods (:pr:`3847`) `James Bourbeau`_
951
952
9532.18.0 - 2020-06-05
954-------------------
955
956- Merge frames in ``deserialize_bytes`` (:pr:`3639`) `John Kirkham`_
957- Allow ``SSHCluster`` to take a list of ``connect_options`` (:pr:`3854`) `Jacob Tomlinson`_
958- Add favicon to performance report (:pr:`3852`) `Jacob Tomlinson`_
959- Add dashboard plots for the amount of time spent per key and for transfer/serialization (:pr:`3792`) `Benjamin Zaitlen`_
960- Fix variable name in journey of a task documentation (:pr:`3840`) `Matthias Bussonnier`_
961- Fix typo in journey of a task doc (:pr:`3838`) `James Bourbeau`_
962- Register ``dask_cudf`` serializers (:pr:`3832`) `John Kirkham`_
963- Fix key check in ``rebalance`` missing keys (:pr:`3834`) `Jacob Tomlinson`_
964- Allow collection of partial profile information in case of exceptions (:pr:`3773`) `Florian Jetter`_
965
966
9672.17.0 - 2020-05-26
968-------------------
969
970- Record the time since the last run task on the scheduler (:pr:`3830`) `Matthew Rocklin`_
971- Set colour of ``nbytes`` pane based on thresholds (:pr:`3805`) `Krishan Bhasin`_
972- Include total number of tasks in the performance report (:pr:`3822`) `Abdulelah Bin Mahfoodh`_
973- Allow to pass in task key strings in the worker restrictions (:pr:`3826`) `Nils Braun`_
974- Control de/ser offload (:pr:`3793`) `Martin Durant`_
975- Parse timeout parameters in ``Variable``/``Event``/``Lock`` to support text timeouts (:pr:`3825`) `Nils Braun`_
976- Don't send empty dependencies (:pr:`3423`) `Jakub Beránek`_
977- Add distributed Dask ``Event`` that mimics ``threading.Event`` (:pr:`3821`) `Nils Braun`_
978- Enhance ``VersionMismatchWarning`` messages (:pr:`3786`) `Abdulelah Bin Mahfoodh`_
979- Support Pickle's protocol 5 (:pr:`3784`) `jakirkham`_
980- Replace ``utils.ignoring`` with ``contextlib.suppress`` (:pr:`3819`) `Nils Braun`_
981- Make re-creating conda environments from the CI output easier (:pr:`3816`) `Lucas Rademaker`_
982- Add prometheus metrics for semaphore (:pr:`3757`) `Lucas Rademaker`_
983- Fix worker plugin called with superseded transition (:pr:`3812`) `Nick Evans`_
984- Add retries to server listen (:pr:`3801`) `Jacob Tomlinson`_
985- Remove commented out lines from ``scheduler.py`` (:pr:`3803`) `James Bourbeau`_
986- Fix ``RuntimeWarning`` for never awaited coroutine when using ``distributed.Semaphore`` (:pr:`3713`) `Florian Jetter`_
987- Fix profile thread leakage during test teardown on some platforms (:pr:`3795`) `Florian Jetter`_
988- Await self before handling comms (:pr:`3788`) `Matthew Rocklin`_
989- Fix typo in ``Cluster`` docstring (:pr:`3787`) `Scott Sanderson`_
990
991
9922.16.0 - 2020-05-08
993-------------------
994
995- ``Client.get_dataset`` to always create ``Futures`` attached to itself (:pr:`3729`) `crusaderky`_
996- Remove dev-requirements since it is unused (:pr:`3782`) `Julia Signell`_
997- Use bokeh column for ``/system`` instead of custom css (:pr:`3781`) `Julia Signell`_
998- Attempt to fix ``test_preload_remote_module`` on windows (:pr:`3775`) `James Bourbeau`_
999- Fix broadcast for TLS comms (:pr:`3766`) `Florian Jetter`_
1000- Don't validate http preloads locally (:pr:`3768`) `Rami Chowdhury`_
1001- Allow range of ports to be specified for ``Workers`` (:pr:`3704`) `James Bourbeau`_
1002- Add UCX support for RDMACM (:pr:`3759`) `Peter Andreas Entschev`_
1003- Support web addresses in preload (:pr:`3755`) `Matthew Rocklin`_
1004
1005
10062.15.2 - 2020-05-01
1007-------------------
1008
1009- Connect to dashboard when address provided (:pr:`3758`) `Tom Augspurger`_
1010- Move ``test_gpu_metrics test`` (:pr:`3721`) `Tom Augspurger`_
1011- Nanny closing worker on ``KeyboardInterrupt`` (:pr:`3747`) `Mads R. B. Kristensen`_
1012- Replace ``OrderedDict`` with ``dict`` in scheduler (:pr:`3740`) `Matthew Rocklin`_
1013- Fix exception handling typo (:pr:`3751`) `Jonas Haag`_
1014
1015
10162.15.1 - 2020-04-28
1017-------------------
1018
1019- Ensure ``BokehTornado`` uses prefix (:pr:`3746`) `James Bourbeau`_
1020- Warn if cluster closes before starting (:pr:`3735`) `Matthew Rocklin`_
1021- Memoryview serialisation (:pr:`3743`) `Martin Durant`_
1022- Allows logging config under distributed key (:pr:`2952`) `Dillon Niederhut`_
1023
1024
10252.15.0 - 2020-04-24
1026-------------------
1027
1028- Reinstate support for legacy ``@gen_cluster`` functions (:pr:`3738`) `crusaderky`_
1029- Relax NumPy requirement in UCX (:pr:`3731`) `jakirkham`_
1030- Add Configuration Schema (:pr:`3696`) `Matthew Rocklin`_
1031- Reuse CI scripts for local installation process (:pr:`3698`) `crusaderky`_
1032- Use ``PeriodicCallback`` class from tornado (:pr:`3725`) `James Bourbeau`_
1033- Add ``remote_python`` option in ssh cmd (:pr:`3709`) `Abdulelah Bin Mahfoodh`_
1034- Configurable polling interval for cluster widget (:pr:`3723`) `Julia Signell`_
1035- Fix copy-paste in docs (:pr:`3728`) `Julia Signell`_
1036- Replace ``gen.coroutine`` with async-await in tests (:pr:`3706`) `crusaderky`_
1037- Fix flaky ``test_oversubscribing_leases`` (:pr:`3726`) `Florian Jetter`_
1038- Add ``batch_size`` to ``Client.map`` (:pr:`3650`) `Tom Augspurger`_
1039- Adjust semaphore test timeouts (:pr:`3720`) `Florian Jetter`_
1040- Dask-serialize dicts longer than five elements (:pr:`3689`) `Richard J Zamora`_
1041- Force ``threads_per_worker`` (:pr:`3715`) `crusaderky`_
1042- Idempotent semaphore acquire with retries (:pr:`3690`) `Florian Jetter`_
1043- Always use ``readinto`` in TCP (:pr:`3711`) `jakirkham`_
1044- Avoid ``DeprecationWarning`` from pandas (:pr:`3712`) `Tom Augspurger`_
1045- Allow modification of ``distributed.comm.retry`` at runtime (:pr:`3705`) `Florian Jetter`_
1046- Do not log an error on unset variable delete (:pr:`3652`) `Jonathan J. Helmus`_
1047- Add ``remote_python`` keyword to the new ``SSHCluster`` (:pr:`3701`) `Abdulelah Bin Mahfoodh`_
1048- Replace Example with Examples in docstrings (:pr:`3697`) `Matthew Rocklin`_
1049- Add ``Cluster`` ``__enter__`` and ``__exit__`` methods (:pr:`3699`) `Matthew Rocklin`_
1050- Fix propagating inherit config in ``SSHCluster`` for non-bash shells (:pr:`3688`) `Abdulelah Bin Mahfoodh`_
1051- Add ``Client.wait_to_workers`` to ``Client`` autosummary table (:pr:`3692`) `James Bourbeau`_
1052- Replace Bokeh Server with Tornado HTTPServer (:pr:`3658`) `Matthew Rocklin`_
1053- Fix ``dask-ssh`` after removing ``local-directory`` from ``dask_scheduler`` cli (:pr:`3684`) `Abdulelah Bin Mahfoodh`_
1054- Support preload modules in ``Nanny`` (:pr:`3678`) `Matthew Rocklin`_
1055- Refactor semaphore internals: make ``_get_lease`` synchronous (:pr:`3679`) `Lucas Rademaker`_
1056- Don't make task graphs too big (:pr:`3671`) `Martin Durant`_
1057- Pass through ``connection``/``listen_args`` as splatted keywords (:pr:`3674`) `Matthew Rocklin`_
1058- Run preload at import, start, and teardown (:pr:`3673`) `Matthew Rocklin`_
1059- Use relative URL in scheduler dashboard (:pr:`3676`) `Nicholas Smith`_
1060- Expose ``Security`` object as public API (:pr:`3675`) `Matthew Rocklin`_
1061- Add zoom tools to profile plots (:pr:`3672`) `James Bourbeau`_
1062- Update ``Scheduler.rebalance`` return value when data is missing (:pr:`3670`) `James Bourbeau`_
1063
1064
10652.14.0 - 2020-04-03
1066-------------------
1067
1068- Enable more UCX tests (:pr:`3667`) `jakirkham`_
1069- Remove openssl 1.1.1d pin for Travis (:pr:`3668`) `Jonathan J. Helmus`_
1070- More documentation for ``Semaphore`` (:pr:`3664`) `Florian Jetter`_
1071- Get CUDA context to finalize Numba ``DeviceNDArray`` (:pr:`3666`) `jakirkham`_
1072- Add Resouces option to ``get_task_stream`` and call ``output_file`` (:pr:`3653`) `Prasun Anand`_
1073- Add ``Semaphore`` extension (:pr:`3573`) `Lucas Rademaker`_
1074- Replace ``ncores`` with ``nthreads`` in work stealing tests (:pr:`3615`) `James Bourbeau`_
1075- Clean up some test warnings (:pr:`3662`) `Matthew Rocklin`_
1076- Write "why killed" docs (:pr:`3596`) `Martin Durant`_
1077- Update Python version checking (:pr:`3660`) `James Bourbeau`_
1078- Add newlines to ensure code formatting for ``retire_workers`` (:pr:`3661`) `Rami Chowdhury`_
1079- Clean up performance report test (:pr:`3655`) `Matthew Rocklin`_
1080- Avoid diagnostics time in performance report (:pr:`3654`) `Matthew Rocklin`_
1081- Introduce config for default task duration (:pr:`3642`) `Gabriel Sailer`_
1082- UCX simplify receiving frames in ``comm`` (:pr:`3651`) `jakirkham`_
1083- Bump checkout GitHub action to v2 (:pr:`3649`) `James Bourbeau`_
1084- Handle exception in ``faulthandler`` (:pr:`3646`) `Jacob Tomlinson`_
1085- Add prometheus metric for suspicious tasks (:pr:`3550`) `Gabriel Sailer`_
1086- Remove ``local-directory`` keyword (:pr:`3620`) `Prasun Anand`_
1087- Don't create output Futures in Client when there are mixed Client Futures (:pr:`3643`) `James Bourbeau`_
1088- Add link to ``contributing.md`` (:pr:`3621`) `Prasun Anand`_
1089- Update bokeh dependency in CI builds (:pr:`3637`) `James Bourbeau`_
1090
1091
10922.13.0 - 2020-03-25
1093-------------------
1094
1095- UCX synchronize default stream only on CUDA frames (:pr:`3638`) `Peter Andreas Entschev`_
1096- Add ``as_completed.clear`` method (:pr:`3617`) `Matthew Rocklin`_
1097- Drop unused line from ``pack_frames_prelude`` (:pr:`3634`) `John Kirkham`_
1098- Add logging message when closing idle dask scheduler (:pr:`3632`) `Matthew Rocklin`_
1099- Include frame lengths of CUDA objects in ``header["lengths"]`` (:pr:`3631`) `John Kirkham`_
1100- Ensure ``Client`` connection pool semaphore attaches to the ``Client`` event loop (:pr:`3546`) `James Bourbeau`_
1101- Remove dead stealing code (:pr:`3619`) `Florian Jetter`_
1102- Check ``nbytes`` and ``types`` before reading ``data`` (:pr:`3628`) `John Kirkham`_
1103- Ensure that we don't steal blacklisted fast tasks (:pr:`3591`) `Florian Jetter`_
1104- Support async ``Listener.stop`` functions (:pr:`3613`) `Matthew Rocklin`_
1105- Add str/repr methods to ``as_completed`` (:pr:`3618`) `Matthew Rocklin`_
1106- Add backoff to comm connect attempts. (:pr:`3496`) `Matthias Urlichs`_
1107- Make ``Listeners`` awaitable (:pr:`3611`) `Matthew Rocklin`_
1108- Increase number of visible mantissas in dashboard plots (:pr:`3585`) `Scott Sievert`_
1109- Pin openssl to 1.1.1d for Travis (:pr:`3602`) `Jacob Tomlinson`_
1110- Replace ``tornado.queues`` with ``asyncio.queues`` (:pr:`3607`) `James Bourbeau`_
1111- Remove ``dill`` from CI environments (:pr:`3608`) `Loïc Estève`_
1112- Fix linting errors (:pr:`3604`) `James Bourbeau`_
1113- Synchronize default CUDA stream before UCX send/recv (:pr:`3598`) `Peter Andreas Entschev`_
1114- Add configuration for ``Adaptive`` arguments (:pr:`3509`) `Gabriel Sailer`_
1115- Change ``Adaptive`` docs to reference ``adaptive_target`` (:pr:`3597`) `Julia Signell`_
1116- Optionally compress on a frame-by-frame basis (:pr:`3586`) `Matthew Rocklin`_
1117- Add Python version to version check (:pr:`3567`) `James Bourbeau`_
1118- Import ``tlz`` (:pr:`3579`) `John Kirkham`_
1119- Pin ``numpydoc`` to avoid double escaped ``*`` (:pr:`3530`) `Gil Forsyth`_
1120- Avoid ``performance_report`` crashing when a worker dies mid-compute (:pr:`3575`) `Krishan Bhasin`_
1121- Pin ``bokeh`` in CI builds (:pr:`3570`) `James Bourbeau`_
1122- Disable fast fail on GitHub Actions Windows CI (:pr:`3569`) `James Bourbeau`_
1123- Fix typo in ``Client.shutdown`` docstring (:pr:`3562`) `John Kirkham`_
1124- Add ``local_directory`` option to ``dask-ssh`` (:pr:`3554`) `Abdulelah Bin Mahfoodh`_
1125
1126
11272.12.0 - 2020-03-06
1128-------------------
1129
1130- Update ``TaskGroup`` remove logic (:pr:`3557`) `James Bourbeau`_
1131- Fix-up CuPy sparse serialization (:pr:`3556`) `John Kirkham`_
1132- API docs for ``LocalCluster`` and ``SpecCluster`` (:pr:`3548`) `Tom Augspurger`_
1133- Serialize sparse arrays (:pr:`3545`) `John Kirkham`_
1134- Allow tasks with restrictions to be stolen (:pr:`3069`) `Stan Seibert`_
1135- Use UCX default configuration instead of raising (:pr:`3544`) `Peter Andreas Entschev`_
1136- Support using other serializers with ``register_generic`` (:pr:`3536`) `John Kirkham`_
1137- DOC: update to async await (:pr:`3543`) `Tom Augspurger`_
1138- Use ``pytest.raises`` in ``test_ucx_config.py`` (:pr:`3541`) `John Kirkham`_
1139- Fix/more ucx config options (:pr:`3539`) `Benjamin Zaitlen`_
1140- Update heartbeat ``CommClosedError`` error handling (:pr:`3529`) `James Bourbeau`_
1141- Use ``makedirs`` when constructing ``local_directory`` (:pr:`3538`) `John Kirkham`_
1142- Mark ``None`` as MessagePack serializable (:pr:`3537`) `John Kirkham`_
1143- Mark ``bool`` as MessagePack serializable (:pr:`3535`) `John Kirkham`_
1144- Use 'temporary-directory' from ``dask.config`` for Nanny's directory (:pr:`3531`) `John Kirkham`_
1145- Add try-except around getting source code in performance report (:pr:`3505`) `Matthew Rocklin`_
1146- Fix typo in docstring (:pr:`3528`) `Davis Bennett`_
1147- Make work stealing callback time configurable (:pr:`3523`) `Lucas Rademaker`_
1148- RMM/UCX Config Flags (:pr:`3515`) `Benjamin Zaitlen`_
1149- Revise develop-docs: conda env example (:pr:`3406`) `Darren Weber`_
1150- Remove ``import ucp`` from the top of ``ucx.py`` (:pr:`3510`) `Peter Andreas Entschev`_
1151- Rename ``logs`` to ``get_logs`` (:pr:`3473`) `Jacob Tomlinson`_
1152- Stop keep alives when worker reconnecting to the scheduler (:pr:`3493`) `Jacob Tomlinson`_
1153
1154
11552.11.0 - 2020-02-19
1156-------------------
1157
1158- Add dask serialization of CUDA objects (:pr:`3482`) `John Kirkham`_
1159- Suppress cuML ``ImportError`` (:pr:`3499`) `John Kirkham`_
1160- Msgpack 1.0 compatibility (:pr:`3494`) `James Bourbeau`_
1161- Register cuML serializers (:pr:`3485`) `John Kirkham`_
1162- Check exact equality for worker state (:pr:`3483`) `Brett Naul`_
1163- Serialize 1-D, contiguous, ``uint8`` CUDA frames (:pr:`3475`) `John Kirkham`_
1164- Update NumPy array serialization to handle non-contiguous slices (:pr:`3474`) `James Bourbeau`_
1165- Propose fix for collection based resources docs (:pr:`3480`) `Chris Roat`_
1166- Remove ``--verbose`` flag from CI runs (:pr:`3484`) `Matthew Rocklin`_
1167- Do not duplicate messages in scheduler report (:pr:`3477`) `Jakub Beránek`_
1168- Register Dask cuDF serializers (:pr:`3478`) `John Kirkham`_
1169- Add support for Python 3.8 (:pr:`3249`) `James Bourbeau`_
1170- Add last seen column to worker table and highlight errant workers (:pr:`3468`) `kaelgreco`_
1171- Change default value of ``local_directory`` from empty string to ``None`` (:pr:`3441`) `condoratberlin`_
1172- Clear old docs (:pr:`3458`) `Matthew Rocklin`_
1173- Change default multiprocessing behavior to spawn (:pr:`3461`) `Matthew Rocklin`_
1174- Split dashboard host on additional slashes to handle inproc (:pr:`3466`) `Jacob Tomlinson`_
1175- Update ``locality.rst`` (:pr:`3470`) `Dustin Tindall`_
1176- Minor ``gen.Return`` cleanup (:pr:`3469`) `James Bourbeau`_
1177- Update comparison logic for worker state (:pr:`3321`) `rockwellw`_
1178- Update minimum ``tblib`` version to 1.6.0 (:pr:`3451`) `James Bourbeau`_
1179- Add total row to workers plot in dashboard (:pr:`3464`) `Julia Signell`_
1180- Workaround ``RecursionError`` on profile data (:pr:`3455`) `Tom Augspurger`_
1181- Include code and summary in performance report (:pr:`3462`) `Matthew Rocklin`_
1182- Skip ``test_open_close_many_workers`` on Python 3.6 (:pr:`3459`) `Matthew Rocklin`_
1183- Support serializing/deserializing ``rmm.DeviceBuffer`` s (:pr:`3442`) `John Kirkham`_
1184- Always add new ``TaskGroup`` to ``TaskPrefix`` (:pr:`3322`) `James Bourbeau`_
1185- Rerun ``black`` on the code base (:pr:`3444`) `John Kirkham`_
1186- Ensure ``__causes__`` s of exceptions raised on workers are serialized (:pr:`3430`) `Alex Adamson`_
1187- Adjust ``numba.cuda`` import and add check (:pr:`3446`) `John Kirkham`_
1188- Fix name of Numba serialization test (:pr:`3447`) `John Kirkham`_
1189- Checks for command parameters in ``ssh2`` (:pr:`3078`) `Peter Andreas Entschev`_
1190- Update ``worker_kwargs`` description in ``LocalCluster`` constructor (:pr:`3438`) `James Bourbeau`_
1191- Ensure scheduler updates task and worker states after successful worker data deletion (:pr:`3401`) `James Bourbeau`_
1192- Avoid ``loop=`` keyword in asyncio coordination primitives (:pr:`3437`) `Matthew Rocklin`_
1193- Call pip as a module to avoid warnings (:pr:`3436`) `Cyril Shcherbin`_
1194- Add documentation of parameters in coordination primitives (:pr:`3434`) `Søren Fuglede Jørgensen`_
1195- Replace ``tornado.locks`` with asyncio for Events/Locks/Conditions/Semaphore (:pr:`3397`) `Matthew Rocklin`_
1196- Remove object from class hierarchy (:pr:`3432`) `Anderson Banihirwe`_
1197- Add ``dashboard_link`` property to ``Client`` (:pr:`3429`) `Jacob Tomlinson`_
1198- Allow memory monitor to evict data more aggressively (:pr:`3424`) `fjetter`_
1199- Make ``_get_ip`` return an IP address when defaulting (:pr:`3418`) `Pierre Glaser`_
1200- Support version checking with older versions of Dask (:pr:`3390`) `Igor Gotlibovych`_
1201- Add Mac OS build to CI (:pr:`3358`) `James Bourbeau`_
1202
1203
12042.10.0 - 2020-01-28
1205-------------------
1206
1207- Fixed ``ZeroDivisionError`` in dashboard when no workers were present (:pr:`3407`) `James Bourbeau`_
1208- Respect the ``dashboard-prefix`` when redirecting from the root (:pr:`3387`) `Chrysostomos Nanakos`_
1209- Allow enabling / disabling work-stealing after the cluster has started (:pr:`3410`) `John Kirkham`_
1210- Support ``*args`` and ``**kwargs`` in offload (:pr:`3392`) `Matthew Rocklin`_
1211- Add lifecycle hooks to SchedulerPlugin (:pr:`3391`) `Matthew Rocklin`_
1212
1213
12142.9.3 - 2020-01-17
1215------------------
1216
1217- Raise ``RuntimeError`` if no running loop (:pr:`3385`) `James Bourbeau`_
1218- Fix ``get_running_loop`` import (:pr:`3383`) `James Bourbeau`_
1219- Get JavaScript document location instead of window and handle proxied url (:pr:`3382`) `Jacob Tomlinson`_
1220
1221
12222.9.2 - 2020-01-16
1223------------------
1224
1225- Move Windows CI to GitHub Actions (:pr:`3373`) `Jacob Tomlinson`_
1226- Add client join and leave hooks (:pr:`3371`) `Jacob Tomlinson`_
1227- Add cluster map dashboard (:pr:`3361`) `Jacob Tomlinson`_
1228- Close connection comm on retry (:pr:`3365`) `James Bourbeau`_
1229- Fix scheduler state in case of worker name collision (:pr:`3366`) `byjott`_
1230- Add ``--worker-class`` option to ``dask-worker`` CLI (:pr:`3364`) `James Bourbeau`_
1231- Remove ``locale`` check that fails on OS X (:pr:`3360`) `Jacob Tomlinson`_
1232- Rework version checking (:pr:`2627`) `Matthew Rocklin`_
1233- Add websocket scheduler plugin (:pr:`3335`) `Jacob Tomlinson`_
1234- Return task in ``dask-worker`` ``on_signal`` function (:pr:`3354`) `James Bourbeau`_
1235- Fix failures on mixed integer/string worker names (:pr:`3352`) `Benedikt Reinartz`_
1236- Avoid calling ``nbytes`` multiple times when sending data (:pr:`3349`) `Markus Mohrhard`_
1237- Avoid setting event loop policy if within IPython kernel and no running event loop (:pr:`3336`) `Mana Borwornpadungkitti`_
1238- Relax intermittent failing ``test_profile_server`` (:pr:`3346`) `Matthew Rocklin`_
1239
1240
12412.9.1 - 2019-12-27
1242------------------
1243
1244-  Add lock around dumps_function cache (:pr:`3337`) `Matthew Rocklin`_
1245-  Add setuptools to dependencies (:pr:`3320`) `James Bourbeau`_
1246-  Use TaskPrefix.name in Graph layout (:pr:`3328`) `Matthew Rocklin`_
1247-  Add missing `"` in performance report example (:pr:`3329`) `John Kirkham`_
1248-  Add performance report docs and color definitions to docs (:pr:`3325`) `Benjamin Zaitlen`_
1249-  Switch startstops to dicts and add worker name to transfer (:pr:`3319`) `Jacob Tomlinson`_
1250-  Add plugin entry point for out-of-tree comms library (:pr:`3305`) `Patrick Sodré`_
1251-  All scheduler task states in prometheus (:pr:`3307`) `fjetter`_
1252-  Use worker name in logs (:pr:`3309`) `Stephan Erb`_
1253-  Add TaskGroup and TaskPrefix scheduler state (:pr:`3262`)  `Matthew Rocklin`_
1254-  Update latencies with heartbeats (:pr:`3310`) `fjetter`_
1255-  Update inlining Futures in task graph in Client._graph_to_futures (:pr:`3303`) `James Bourbeau`_
1256-  Use hostname as default IP address rather than localhost (:pr:`3308`) `Matthew Rocklin`_
1257-  Clean up flaky test_nanny_throttle (:pr:`3295`) `Tom Augspurger`_
1258-  Add lock to scheduler for sensitive operations (:pr:`3259`) `Matthew Rocklin`_
1259-  Log address for each of the Scheduler listerners (:pr:`3306`) `Matthew Rocklin`_
1260-  Make ConnectionPool.close asynchronous (:pr:`3304`) `Matthew Rocklin`_
1261
1262
12632.9.0 - 2019-12-06
1264------------------
1265
1266- Add ``dask-spec`` CLI tool (:pr:`3090`) `Matthew Rocklin`_
1267- Connectionpool: don't hand out closed connections (:pr:`3301`) `byjott`_
1268- Retry operations on network issues (:pr:`3294`) `byjott`_
1269- Skip ``Security.temporary()`` tests if cryptography not installed (:pr:`3302`) `James Bourbeau`_
1270- Support multiple listeners in the scheduler (:pr:`3288`) `Matthew Rocklin`_
1271- Updates RMM comment to the correct release (:pr:`3299`) `John Kirkham`_
1272- Add title to ``performance_report`` (:pr:`3298`) `Matthew Rocklin`_
1273- Forgot to fix slow test (:pr:`3297`) `Benjamin Zaitlen`_
1274- Update ``SSHCluster`` docstring parameters (:pr:`3296`) `James Bourbeau`_
1275- ``worker.close()`` awaits ``batched_stream.close()`` (:pr:`3291`) `Mads R. B. Kristensen`_
1276- Fix asynchronous listener in UCX (:pr:`3292`) `Benjamin Zaitlen`_
1277- Avoid repeatedly adding deps to already in memory stack (:pr:`3293`) `James Bourbeau`_
1278- xfail ucx empty object typed dataframe (:pr:`3279`) `Benjamin Zaitlen`_
1279- Fix ``distributed.wait`` documentation (:pr:`3289`) `Tom Rochette`_
1280- Move Python 3 syntax tests into main tests (:pr:`3281`) `Matthew Rocklin`_
1281- xfail ``test_workspace_concurrency`` for Python 3.6 (:pr:`3283`) `Matthew Rocklin`_
1282- Add ``performance_report`` context manager for static report generation (:pr:`3282`) `Matthew Rocklin`_
1283- Update function serialization caches with custom LRU class (:pr:`3260`) `James Bourbeau`_
1284- Make ``Listener.start`` asynchronous (:pr:`3278`) `Matthew Rocklin`_
1285- Remove ``dask-submit`` and ``dask-remote`` (:pr:`3280`) `Matthew Rocklin`_
1286- Worker profile server (:pr:`3274`) `Matthew Rocklin`_
1287- Improve bandwidth workers plot (:pr:`3273`) `Matthew Rocklin`_
1288- Make profile coroutines consistent between ``Scheduler`` and ``Worker`` (:pr:`3277`) `Matthew Rocklin`_
1289- Enable saving profile information from server threads (:pr:`3271`) `Matthew Rocklin`_
1290- Remove memory use plot (:pr:`3269`) `Matthew Rocklin`_
1291- Add offload size to configuration (:pr:`3270`) `Matthew Rocklin`_
1292- Fix layout scaling on profile plots (:pr:`3268`) `Jacob Tomlinson`_
1293- Set ``x_range`` in CPU plot based on the number of threads (:pr:`3266`) `Matthew Rocklin`_
1294- Use base-2 values for byte-valued axes in dashboard (:pr:`3267`) `Matthew Rocklin`_
1295- Robust gather in case of connection failures (:pr:`3246`) `fjetter`_
1296- Use ``DeviceBuffer`` from newer RMM releases (:pr:`3261`) `John Kirkham`_
1297- Fix dev requirements for pytest (:pr:`3264`) `Elliott Sales de Andrade`_
1298- Add validate options to configuration (:pr:`3258`) `Matthew Rocklin`_
1299
1300
13012.8.1 - 2019-11-22
1302------------------
1303
1304- Fix hanging worker when the scheduler leaves (:pr:`3250`) `Tom Augspurger`_
1305- Fix NumPy writeable serialization bug (:pr:`3253`) `James Bourbeau`_
1306- Skip ``numba.cuda`` tests if CUDA is not available (:pr:`3255`) `Peter Andreas Entschev`_
1307- Add new dashboard plot for memory use by key (:pr:`3243`) `Matthew Rocklin`_
1308- Fix ``array.shape()`` -> ``array.shape`` (:pr:`3247`) `Jed Brown`_
1309- Fixed typos in ``pubsub.py`` (:pr:`3244`) `He Jia`_
1310- Fixed cupy array going out of scope (:pr:`3240`) `Mads R. B. Kristensen`_
1311- Remove ``gen.coroutine`` usage in scheduler (:pr:`3242`) `Jim Crist-Harif`_
1312- Use ``inspect.isawaitable`` where relevant (:pr:`3241`) `Jim Crist-Harif`_
1313
1314
13152.8.0 - 2019-11-14
1316------------------
1317
1318-  Add UCX config values (:pr:`3135`) `Matthew Rocklin`_
1319-  Relax test_MultiWorker (:pr:`3210`) `Matthew Rocklin`_
1320-  Avoid ucp.init at import time (:pr:`3211`) `Matthew Rocklin`_
1321-  Clean up rpc to avoid intermittent test failure (:pr:`3215`) `Matthew Rocklin`_
1322-  Respect protocol if given to Scheduler (:pr:`3212`) `Matthew Rocklin`_
1323-  Use legend_field= keyword in bokeh plots (:pr:`3218`) `Matthew Rocklin`_
1324-  Cache psutil.Process object in Nanny (:pr:`3207`) `Matthew Rocklin`_
1325-  Replace gen.sleep with asyncio.sleep (:pr:`3208`) `Matthew Rocklin`_
1326-  Avoid offloading serialization for small messages (:pr:`3224`) `Matthew Rocklin`_
1327-  Add desired_workers metric (:pr:`3221`) `Gabriel Sailer`_
1328-  Fail fast when importing distributed.comm.ucx (:pr:`3228`) `Matthew Rocklin`_
1329-  Add module name to Future repr (:pr:`3231`) `Matthew Rocklin`_
1330-  Add name to Pub/Sub repr (:pr:`3235`) `Matthew Rocklin`_
1331-  Import CPU_COUNT from dask.system (:pr:`3199`) `James Bourbeau`_
1332-  Efficiently serialize zero strided NumPy arrays (:pr:`3180`) `James Bourbeau`_
1333-  Cache function deserialization in workers (:pr:`3234`) `Matthew Rocklin`_
1334-  Respect ordering of futures in futures_of (:pr:`3236`) `Matthew Rocklin`_
1335-  Bump dask dependency to 2.7.0 (:pr:`3237`) `James Bourbeau`_
1336-  Avoid setting inf x_range (:pr:`3229`) `rockwellw`_
1337-  Clear task stream based on recent behavior (:pr:`3200`) `Matthew Rocklin`_
1338-  Use the percentage field for profile plots (:pr:`3238`) `Matthew Rocklin`_
1339
13402.7.0 - 2019-11-08
1341------------------
1342
1343This release drops support for Python 3.5
1344
1345-  Adds badges to README.rst [skip ci] (:pr:`3152`) `James Bourbeau`_
1346-  Don't overwrite `self.address` if it is present (:pr:`3153`) `Gil Forsyth`_
1347-  Remove outdated references to debug scheduler and worker bokeh pages. (:pr:`3160`) `darindf`_
1348-  Update CONTRIBUTING.md (:pr:`3159`) `Jacob Tomlinson`_
1349-  Add Prometheus metric for a worker's executing tasks count (:pr:`3163`) `darindf`_
1350-  Update Prometheus documentation (:pr:`3165`) `darindf`_
1351-  Fix Numba serialization when strides is None (:pr:`3166`) `Peter Andreas Entschev`_
1352-  Await cluster in Adaptive.recommendations (:pr:`3168`) `Simon Boothroyd`_
1353-  Support automatic TLS (:pr:`3164`) `Jim Crist`_
1354-  Avoid swamping high-memory workers with data requests (:pr:`3071`) `Tom Augspurger`_
1355-  Update UCX variables to use sockcm by default (:pr:`3177`) `Peter Andreas Entschev`_
1356-  Get protocol in Nanny/Worker from scheduler address (:pr:`3175`) `Peter Andreas Entschev`_
1357-  Add worker and tasks state for Prometheus data collection (:pr:`3174`) `darindf`_
1358-  Use async def functions for offload to/from_frames (:pr:`3171`) `Mads R. B. Kristensen`_
1359-  Subprocesses inherit the global dask config (:pr:`3192`) `Mads R. B. Kristensen`_
1360-  XFail test_open_close_many_workers (:pr:`3194`) `Matthew Rocklin`_
1361-  Drop Python 3.5 (:pr:`3179`) `James Bourbeau`_
1362-  UCX: avoid double init after fork (:pr:`3178`) `Mads R. B. Kristensen`_
1363-  Silence warning when importing while offline (:pr:`3203`) `James A. Bednar`_
1364-  Adds docs to Client methods for resources, actors, and traverse (:pr:`2851`) `IPetrik`_
1365-  Add test for concurrent scatter operations (:pr:`2244`) `Matthew Rocklin`_
1366-  Expand async docs (:pr:`2293`) `Dave Hirschfeld`_
1367-  Add PatchedDeviceArray to drop stride attribute for cupy<7.0 (:pr:`3198`) `Richard J Zamora`_
1368
13692.6.0 - 2019-10-15
1370------------------
1371
1372- Refactor dashboard module (:pr:`3138`) `Jacob Tomlinson`_
1373- Use ``setuptools.find_packages`` in ``setup.py`` (:pr:`3150`) `Matthew Rocklin`_
1374- Move death timeout logic up to ``Node.start`` (:pr:`3115`) `Matthew Rocklin`_
1375- Only include metric in ``WorkerTable`` if it is a scalar (:pr:`3140`) `Matthew Rocklin`_
1376- Add ``Nanny(config={...})`` keyword (:pr:`3134`) `Matthew Rocklin`_
1377- Xfail ``test_worksapce_concurrency`` on Python 3.6 (:pr:`3132`) `Matthew Rocklin`_
1378- Extend Worker plugin API with transition method (:pr:`2994`) `matthieubulte`_
1379- Raise exception if the user passes in unused keywords to ``Client`` (:pr:`3117`) `Jonathan De Troye`_
1380- Move new ``SSHCluster`` to top level (:pr:`3128`) `Matthew Rocklin`_
1381- Bump dask dependency (:pr:`3124`) `Jim Crist`_
1382
1383
13842.5.2 - 2019-10-04
1385------------------
1386
1387-  Make dask-worker close quietly when given sigint signal (:pr:`3116`) `Matthew Rocklin`_
1388-  Replace use of tornado.gen with asyncio in dask-worker (:pr:`3114`) `Matthew Rocklin`_
1389-  UCX: allocate CUDA arrays using RMM and Numba (:pr:`3109`) `Mads R. B. Kristensen`_
1390-  Support calling `cluster.scale` as async method (:pr:`3110`) `Jim Crist`_
1391-  Identify lost workers in SpecCluster based on address not name (:pr:`3088`) `James Bourbeau`_
1392-  Add Client.shutdown method (:pr:`3106`) `Matthew Rocklin`_
1393-  Collect worker-worker and type bandwidth information (:pr:`3094`) `Matthew Rocklin`_
1394-  Send noise over the wire to keep dask-ssh connection alive (:pr:`3105`) `Gil Forsyth`_
1395-  Retry scheduler connect multiple times (:pr:`3104`) `Jacob Tomlinson`_
1396-  Add favicon of logo to the dashboard (:pr:`3095`) `James Bourbeau`_
1397-  Remove utils.py functions for their dask/utils.py equivalents (:pr:`3042`) `Matthew Rocklin`_
1398-  Lower default bokeh log level (:pr:`3087`) `Philipp Rudiger`_
1399-  Check if self.cluster.scheduler is a local scheduler (:pr:`3099`) `Jacob Tomlinson`_
1400
1401
14022.5.1 - 2019-09-27
1403------------------
1404
1405-   Support clusters that don't have .security or ._close methods (:pr:`3100`) `Matthew Rocklin`_
1406
1407
14082.5.0 - 2019-09-27
1409------------------
1410
1411-  Use the new UCX Python bindings (:pr:`3059`) `Mads R. B. Kristensen`_
1412-  Fix worker preload config (:pr:`3027`) `byjott`_
1413-  Fix widget with spec that generates multiple workers (:pr:`3067`) `Loïc Estève`_
1414-  Make Client.get_versions async friendly (:pr:`3064`) `Jacob Tomlinson`_
1415-  Add configuation option for longer error tracebacks (:pr:`3086`) `Daniel Farrell`_
1416-  Have Client get Security from passed Cluster (:pr:`3079`) `Matthew Rocklin`_
1417-  Respect Cluster.dashboard_link in Client._repr_html_ if it exists (:pr:`3077`) `Matthew Rocklin`_
1418-  Add monitoring with dask cluster docs (:pr:`3072`) `Arpit Solanki`_
1419-  Protocol of cupy and numba handles serialization exclusively  (:pr:`3047`) `Mads R. B. Kristensen`_
1420-  Allow specification of worker type in SSHCLuster (:pr:`3061`) `Jacob Tomlinson`_
1421-  Use Cluster.scheduler_info for workers= value in repr (:pr:`3058`) `Matthew Rocklin`_
1422-  Allow SpecCluster to scale by memory and cores (:pr:`3057`) `Matthew Rocklin`_
1423-  Allow full script in preload inputs (:pr:`3052`) `Matthew Rocklin`_
1424-  Check multiple cgroups dirs, ceil fractional cpus (:pr:`3056`) `Jim Crist`_
1425-  Add blurb about disabling work stealing (:pr:`3055`) `Chris White`_
1426
1427
14282.4.0 - 2019-09-13
1429------------------
1430
1431- Remove six (:pr:`3045`) `Matthew Rocklin`_
1432- Add missing test data to sdist tarball (:pr:`3050`) `Elliott Sales de Andrade`_
1433- Use mock from unittest standard library (:pr:`3049`) `Elliott Sales de Andrade`_
1434- Use cgroups resource limits to determine default threads and memory (:pr:`3039`) `Jim Crist`_
1435- Move task deserialization to immediately before task execution (:pr:`3015`) `James Bourbeau`_
1436- Drop joblib shim module in distributed (:pr:`3040`) `John Kirkham`_
1437- Redirect configuration doc page (:pr:`3038`) `Matthew Rocklin`_
1438- Support ``--name 0`` and ``--nprocs`` keywords in dask-worker cli (:pr:`3037`) `Matthew Rocklin`_
1439- Remove lost workers from ``SpecCluster.workers`` (:pr:`2990`) `Guillaume Eynard-Bontemps`_
1440- Clean up ``test_local.py::test_defaults`` (:pr:`3017`) `Matthew Rocklin`_
1441- Replace print statement in ``Queue.__init__`` with debug message (:pr:`3035`) `Mikhail Akimov`_
1442- Set the ``x_range`` limit of the Meory utilization plot to memory-limit (:pr:`3034`) `Matthew Rocklin`_
1443- Rely on cudf codebase for cudf serialization (:pr:`2998`) `Benjamin Zaitlen`_
1444- Add fallback html repr for Cluster (:pr:`3023`) `Jim Crist`_
1445- Add support for zstandard compression to comms (:pr:`2970`) `Abael He`_
1446- Avoid collision when using ``os.environ`` in ``dashboard_link`` (:pr:`3021`) `Matthew Rocklin`_
1447- Fix ``ConnectionPool`` limit handling (:pr:`3005`) `byjott`_
1448- Support Spec jobs that generate multiple workers (:pr:`3013`) `Matthew Rocklin`_
1449- Tweak ``Logs`` styling (:pr:`3012`) `Jim Crist`_
1450- Better name for cudf deserialization function name (:pr:`3008`) `Benjamin Zaitlen`_
1451- Make ``spec.ProcessInterface`` a valid no-op worker (:pr:`3004`) `Matthew Rocklin`_
1452- Return dictionaries from ``new_worker_spec`` rather than name/worker pairs (:pr:`3000`) `Matthew Rocklin`_
1453- Fix minor typo in documentation (:pr:`3002`) `Mohammad Noor`_
1454- Permit more keyword options when scaling with cores and memory (:pr:`2997`) `Matthew Rocklin`_
1455- Add ``cuda_ipc`` to UCX environment for NVLink (:pr:`2996`) `Benjamin Zaitlen`_
1456- Add ``threads=`` and ``memory=`` to Cluster and Client reprs (:pr:`2995`) `Matthew Rocklin`_
1457- Fix PyNVML initialization (:pr:`2993`) `Richard J Zamora`_
1458
1459
14602.3.2 - 2019-08-23
1461------------------
1462
1463-  Skip exceptions in startup information (:pr:`2991`) `Jacob Tomlinson`_
1464
1465
14662.3.1 - 2019-08-22
1467------------------
1468
1469-  Add support for separate external address for SpecCluster scheduler (:pr:`2963`) `Jacob Tomlinson`_
1470-  Defer cudf serialization/deserialization to that library (:pr:`2881`) `Benjamin Zaitlen`_
1471-  Workaround for hanging test now calls ucp.fin() (:pr:`2967`) `Mads R. B. Kristensen`_
1472-  Remove unnecessary bullet point (:pr:`2972`) `Pav A`_
1473-  Directly import progress from diagnostics.progressbar (:pr:`2975`) `Matthew Rocklin`_
1474-  Handle buffer protocol objects in ensure_bytes (:pr:`2969`) `Tom Augspurger`_
1475-  Fix documentatation syntax and tree (:pr:`2981`) `Pav A`_
1476-  Improve get_ip_interface error message when interface does not exist (:pr:`2964`) `Loïc Estève`_
1477-  Add cores= and memory= keywords to scale (:pr:`2974`) `Matthew Rocklin`_
1478-  Make workers robust to bad custom metrics (:pr:`2984`) `Matthew Rocklin`_
1479
1480
14812.3.0 - 2019-08-16
1482------------------
1483
1484- Except all exceptions when checking ``pynvml`` (:pr:`2961`) `Matthew Rocklin`_
1485- Pass serialization down through small base collections (:pr:`2948`) `Peter Andreas Entschev`_
1486- Use ``pytest.warning(Warning)`` rather than ``Exception`` (:pr:`2958`) `Matthew Rocklin`_
1487- Allow ``server_kwargs`` to override defaults in dashboard (:pr:`2955`) `Bruce Merry`_
1488- Update ``utils_perf.py`` (:pr:`2954`) `Shayan Amani`_
1489- Normalize names with ``str`` in ``retire_workers`` (:pr:`2949`) `Matthew Rocklin`_
1490- Update ``client.py`` (:pr:`2951`) `Shayan Amani`_
1491- Add ``GPUCurrentLoad`` dashboard plots (:pr:`2944`) `Matthew Rocklin`_
1492- Pass GPU diagnostics from worker to scheduler (:pr:`2932`) `Matthew Rocklin`_
1493- Import from ``collections.abc`` (:pr:`2938`) `Jim Crist`_
1494- Fixes Worker docstring formatting (:pr:`2939`) `James Bourbeau`_
1495- Redirect setup docs to docs.dask.org (:pr:`2936`) `Matthew Rocklin`_
1496- Wrap offload in ``gen.coroutine`` (:pr:`2934`) `Matthew Rocklin`_
1497- Change ``TCP.close`` to a coroutine to avoid task pending warning (:pr:`2930`) `Matthew Rocklin`_
1498- Fixup black string normalization (:pr:`2929`) `Jim Crist`_
1499- Move core functionality from ``SpecCluster`` to ``Cluster`` (:pr:`2913`) `Matthew Rocklin`_
1500- Add aenter/aexit protocols to ``ProcessInterface`` (:pr:`2927`) `Matthew Rocklin`_
1501- Add real-time CPU utilization plot to dashboard (:pr:`2922`) `Matthew Rocklin`_
1502- Always kill processes in clean tests, even if we don't check (:pr:`2924`) `Matthew Rocklin`_
1503- Add timeouts to processes in SSH tests (:pr:`2925`) `Matthew Rocklin`_
1504- Add documentation around ``spec.ProcessInterface`` (:pr:`2923`) `Matthew Rocklin`_
1505- Cleanup async warnings in tests (:pr:`2920`) `Matthew Rocklin`_
1506- Give 404 when requesting nonexistent tasks or workers (:pr:`2921`) `Martin Durant`_
1507- Raise informative warning when rescheduling an unknown task (:pr:`2916`) `James Bourbeau`_
1508- Fix docstring (:pr:`2917`) `Martin Durant`_
1509- Add keep-alive message between worker and scheduler (:pr:`2907`) `Matthew Rocklin`_
1510- Rewrite ``Adaptive``/``SpecCluster`` to support slowly arriving workers (:pr:`2904`) `Matthew Rocklin`_
1511- Call heartbeat rather than reconnect on disconnection (:pr:`2906`) `Matthew Rocklin`_
1512
1513
15142.2.0 - 2019-07-31
1515------------------
1516
1517-  Respect security configuration in LocalCluster (:pr:`2822`) `Russ Bubley`_
1518-  Add Nanny to worker docs (:pr:`2826`) `Christian Hudon`_
1519-  Don't make False add-keys report to scheduler (:pr:`2421`) `tjb900`_
1520-  Include type name in SpecCluster repr (:pr:`2834`) `Jacob Tomlinson`_
1521-  Extend prometheus metrics endpoint (:pr:`2833`) `Gabriel Sailer`_
1522-  Add alternative SSHCluster implementation (:pr:`2827`) `Matthew Rocklin`_
1523-  Dont reuse closed worker in get_worker (:pr:`2841`) `Pierre Glaser`_
1524-  SpecCluster: move init logic into start (:pr:`2850`) `Jacob Tomlinson`_
1525-  Document distributed.Reschedule in API docs (:pr:`2860`) `James Bourbeau`_
1526-  Add fsspec to installation of test builds (:pr:`2859`) `Martin Durant`_
1527-  Make await/start more consistent across Scheduler/Worker/Nanny (:pr:`2831`) `Matthew Rocklin`_
1528-  Add cleanup fixture for asyncio tests (:pr:`2866`) `Matthew Rocklin`_
1529-  Use only remote connection to scheduler in Adaptive (:pr:`2865`) `Matthew Rocklin`_
1530-  Add Server.finished async function  (:pr:`2864`) `Matthew Rocklin`_
1531-  Align text and remove bullets in Client HTML repr (:pr:`2867`) `Matthew Rocklin`_
1532-  Test dask-scheduler --idle-timeout flag (:pr:`2862`) `Matthew Rocklin`_
1533-  Remove ``Client.upload_environment`` (:pr:`2877`) `Jim Crist`_
1534-  Replace gen.coroutine with async/await in core (:pr:`2871`) `Matthew Rocklin`_
1535-  Forcefully kill all processes before each test (:pr:`2882`) `Matthew Rocklin`_
1536-  Cleanup Security class and configuration (:pr:`2873`) `Jim Crist`_
1537-  Remove unused variable in SpecCluster scale down (:pr:`2870`) `Jacob Tomlinson`_
1538-  Add SpecCluster ProcessInterface (:pr:`2874`) `Jacob Tomlinson`_
1539-  Add Log(str) and Logs(dict) classes for nice HTML reprs (:pr:`2875`) `Jacob Tomlinson`_
1540-  Pass Client._asynchronous to Cluster._asynchronous (:pr:`2890`) `Matthew Rocklin`_
1541-  Add default logs method to Spec Cluster (:pr:`2889`) `Matthew Rocklin`_
1542-  Add processes keyword back into clean (:pr:`2891`) `Matthew Rocklin`_
1543-  Update black (:pr:`2901`) `Matthew Rocklin`_
1544-  Move Worker.local_dir attribute to Worker.local_directory (:pr:`2900`) `Matthew Rocklin`_
1545-  Link from TapTools to worker info pages in dashboard (:pr:`2894`) `Matthew Rocklin`_
1546-  Avoid exception in Client._ensure_connected if closed (:pr:`2893`) `Matthew Rocklin`_
1547-  Convert Pythonic kwargs to CLI Keywords for SSHCluster (:pr:`2898`) `Matthew Rocklin`_
1548-  Use kwargs in CLI (:pr:`2899`) `Matthew Rocklin`_
1549-  Name SSHClusters by providing name= keyword to SpecCluster (:pr:`2903`) `Matthew Rocklin`_
1550-  Request feed of worker information from Scheduler to SpecCluster (:pr:`2902`) `Matthew Rocklin`_
1551-  Clear out compatibillity file (:pr:`2896`) `Matthew Rocklin`_
1552-  Remove future imports (:pr:`2897`) `Matthew Rocklin`_
1553-  Use click's show_default=True in relevant places (:pr:`2838`) `Christian Hudon`_
1554-  Close workers more gracefully (:pr:`2905`) `Matthew Rocklin`_
1555-  Close workers gracefully with --lifetime keywords (:pr:`2892`) `Matthew Rocklin`_
1556-  Add closing <li> tags to Client._repr_html_ (:pr:`2911`) `Matthew Rocklin`_
1557-  Add endline spacing in Logs._repr_html_ (:pr:`2912`) `Matthew Rocklin`_
1558
15592.1.0 - 2019-07-08
1560------------------
1561
1562- Fix typo that prevented error message (:pr:`2825`) `Russ Bubley`_
1563- Remove ``dask-mpi`` (:pr:`2824`) `Matthew Rocklin`_
1564- Updates to use ``update_graph`` in task journey docs (:pr:`2821`) `James Bourbeau`_
1565- Fix Client repr with ``memory_info=None`` (:pr:`2816`) `Matthew Rocklin`_
1566- Fix case where key, rather than ``TaskState``, could end up in ``ts.waiting_on`` (:pr:`2819`) `tjb900`_
1567- Use Keyword-only arguments (:pr:`2814`) `Matthew Rocklin`_
1568- Relax check for worker references in cluster context manager (:pr:`2813`) `Matthew Rocklin`_
1569- Add HTTPS support for the dashboard (:pr:`2812`) `Jim Crist`_
1570- Use ``dask.utils.format_bytes`` (:pr:`2810`) `Tom Augspurger`_
1571
1572
15732.0.1 - 2019-06-26
1574------------------
1575
1576We neglected to include ``python_requires=`` in our setup.py file, resulting in
1577confusion for Python 2 users who erroneously get packages for 2.0.0.
1578This is fixed in 2.0.1 and we have removed the 2.0.0 files from PyPI.
1579
1580-  Add python_requires entry to setup.py (:pr:`2807`) `Matthew Rocklin`_
1581-  Correctly manage tasks beyond deque limit in TaskStream plot (:pr:`2797`) `Matthew Rocklin`_
1582-  Fix diagnostics page for memory_limit=None (:pr:`2770`) `Brett Naul`_
1583
1584
15852.0.0 - 2019-06-25
1586------------------
1587
1588-  **Drop support for Python 2**
1589-  Relax warnings before release (:pr:`2796`) `Matthew Rocklin`_
1590-  Deprecate --bokeh/--no-bokeh CLI (:pr:`2800`) `Tom Augspurger`_
1591-  Typo in bokeh service_kwargs for dask-worker (:pr:`2783`) `Tom Augspurger`_
1592-  Update command line cli options docs (:pr:`2794`) `James Bourbeau`_
1593-  Remove "experimental" from TLS docs (:pr:`2793`) `James Bourbeau`_
1594-  Add warnings around ncores= keywords (:pr:`2791`) `Matthew Rocklin`_
1595-  Add --version option to scheduler and worker CLI (:pr:`2782`) `Tom Augspurger`_
1596-  Raise when workers initialization times out (:pr:`2784`) `Tom Augspurger`_
1597-  Replace ncores with nthreads throughout codebase (:pr:`2758`) `Matthew Rocklin`_
1598-  Add unknown pytest markers (:pr:`2764`) `Tom Augspurger`_
1599-  Delay lookup of allowed failures. (:pr:`2761`) `Tom Augspurger`_
1600-  Change address -> worker in ColumnDataSource for nbytes plot (:pr:`2755`) `Matthew Rocklin`_
1601-  Remove module state in Prometheus Handlers (:pr:`2760`) `Matthew Rocklin`_
1602-  Add stress test for UCX (:pr:`2759`) `Matthew Rocklin`_
1603-  Add nanny logs (:pr:`2744`) `Tom Augspurger`_
1604-  Move some of the adaptive logic into the scheduler (:pr:`2735`) `Matthew Rocklin`_
1605-  Add SpecCluster.new_worker_spec method (:pr:`2751`) `Matthew Rocklin`_
1606-  Worker dashboard fixes (:pr:`2747`) `Matthew Rocklin`_
1607-  Add async context managers to scheduler/worker classes (:pr:`2745`) `Matthew Rocklin`_
1608-  Fix the resource key representation before sending graphs (:pr:`2733`) `Michael Spiegel`_
1609-  Allow user to configure whether workers are daemon. (:pr:`2739`) `Caleb`_
1610-  Pin pytest >=4 with pip in appveyor and python 3.5 (:pr:`2737`) `Matthew Rocklin`_
1611-  Add Experimental UCX Comm (:pr:`2591`) `Ben Zaitlen`_ `Tom Augspurger`_ `Matthew Rocklin`_
1612-  Close nannies gracefully (:pr:`2731`) `Matthew Rocklin`_
1613-  add kwargs to progressbars (:pr:`2638`) `Manuel Garrido`_
1614-  Add back LocalCluster.__repr__. (:pr:`2732`) `Loïc Estève`_
1615-  Move bokeh module to dashboard (:pr:`2724`) `Matthew Rocklin`_
1616-  Close clusters at exit (:pr:`2730`) `Matthew Rocklin`_
1617-  Add SchedulerPlugin TaskState example (:pr:`2622`) `Matt Nicolls`_
1618-  Add SpecificationCluster (:pr:`2675`) `Matthew Rocklin`_
1619-  Replace register_worker_callbacks with worker plugins (:pr:`2453`) `Matthew Rocklin`_
1620-  Proxy worker dashboards from scheduler dashboard (:pr:`2715`) `Ben Zaitlen`_
1621-  Add docstring to Scheduler.check_idle_saturated (:pr:`2721`) `Matthew Rocklin`_
1622-  Refer to LocalCluster in Client docstring (:pr:`2719`) `Matthew Rocklin`_
1623-  Remove special casing of Scikit-Learn BaseEstimator serialization (:pr:`2713`) `Matthew Rocklin`_
1624-  Fix two typos in Pub class docstring (:pr:`2714`) `Magnus Nord`_
1625-  Support uploading files with multiple modules (:pr:`2587`) `Sam Grayson`_
1626-  Change the main workers bokeh page to /status (:pr:`2689`) `Ben Zaitlen`_
1627-  Cleanly stop periodic callbacks in Client (:pr:`2705`) `Matthew Rocklin`_
1628-  Disable pan tool for the Progress, Byte Stored and Tasks Processing plot (:pr:`2703`) `Mathieu Dugré`_
1629-  Except errors in Nanny's memory monitor if process no longer exists (:pr:`2701`) `Matthew Rocklin`_
1630-  Handle heartbeat when worker has just left (:pr:`2702`) `Matthew Rocklin`_
1631-  Modify styling of histograms for many-worker dashboard plots (:pr:`2695`) `Mathieu Dugré`_
1632-  Add method to wait for n workers before continuing (:pr:`2688`) `Daniel Farrell`_
1633-  Support computation on delayed(None) (:pr:`2697`)  `Matthew Rocklin`_
1634-  Cleanup localcluster (:pr:`2693`)  `Matthew Rocklin`_
1635-  Use 'temporary-directory' from dask.config for Worker's directory (:pr:`2654`) `Matthew Rocklin`_
1636-  Remove support for Iterators and Queues (:pr:`2671`) `Matthew Rocklin`_
1637
1638
16391.28.1 - 2019-05-13
1640-------------------
1641
1642This is a small bugfix release due to a config change upstream.
1643
1644-  Use config accessor method for "scheduler-address" (:pr:`2676`) `James Bourbeau`_
1645
1646
16471.28.0 - 2019-05-08
1648-------------------
1649
1650- Add Type Attribute to TaskState (:pr:`2657`) `Matthew Rocklin`_
1651- Add waiting task count to progress title bar (:pr:`2663`) `James Bourbeau`_
1652- DOC: Clean up reference to cluster object (:pr:`2664`) `K.-Michael Aye`_
1653- Allow scheduler to politely close workers as part of shutdown (:pr:`2651`) `Matthew Rocklin`_
1654- Check direct_to_workers before using get_worker in Client (:pr:`2656`) `Matthew Rocklin`_
1655- Fixed comment regarding keeping existing level if less verbose (:pr:`2655`) `Brett Randall`_
1656- Add idle timeout to scheduler (:pr:`2652`) `Matthew Rocklin`_
1657- Avoid deprecation warnings (:pr:`2653`) `Matthew Rocklin`_
1658- Use an LRU cache for deserialized functions (:pr:`2623`) `Matthew Rocklin`_
1659- Rename Worker._close to Worker.close (:pr:`2650`) `Matthew Rocklin`_
1660- Add Comm closed bookkeeping (:pr:`2648`) `Matthew Rocklin`_
1661- Explain LocalCluster behavior in Client docstring (:pr:`2647`) `Matthew Rocklin`_
1662- Add last worker into KilledWorker exception to help debug (:pr:`2610`) `@plbertrand`_
1663- Set working worker class for dask-ssh (:pr:`2646`) `Martin Durant`_
1664- Add as_completed methods to docs (:pr:`2642`) `Jim Crist`_
1665- Add timeout to Client._reconnect (:pr:`2639`) `Jim Crist`_
1666- Limit test_spill_by_default memory, reenable it (:pr:`2633`) `Peter Andreas Entschev`_
1667- Use proper address in worker -> nanny comms (:pr:`2640`) `Jim Crist`_
1668- Fix deserialization of bytes chunks larger than 64MB (:pr:`2637`) `Peter Andreas Entschev`_
1669
1670
16711.27.1 - 2019-04-29
1672-------------------
1673
1674-  Adaptive: recommend close workers when any are idle (:pr:`2330`) `Michael Delgado`_
1675-  Increase GC thresholds (:pr:`2624`) `Matthew Rocklin`_
1676-  Add interface= keyword to LocalCluster (:pr:`2629`) `Matthew Rocklin`_
1677-  Add worker_class argument to LocalCluster (:pr:`2625`) `Matthew Rocklin`_
1678-  Remove Python 2.7 from testing matrix (:pr:`2631`) `Matthew Rocklin`_
1679-  Add number of trials to diskutils test (:pr:`2630`) `Matthew Rocklin`_
1680-  Fix parameter name in LocalCluster docstring (:pr:`2626`) `Loïc Estève`_
1681-  Integrate stacktrace for low-level profiling (:pr:`2575`) `Peter Andreas Entschev`_
1682-  Apply Black to standardize code styling (:pr:`2614`) `Matthew Rocklin`_
1683-  added missing whitespace to start_worker cmd (:pr:`2613`) `condoratberlin`_
1684-  Updated logging module doc links from docs.python.org/2 to docs.python.org/3. (:pr:`2635`) `Brett Randall`_
1685
1686
16871.27.0 - 2019-04-12
1688-------------------
1689
1690-  Add basic health endpoints to scheduler and worker bokeh. (:pr:`2607`) `amerkel2`_
1691-  Improved description accuracy of --memory-limit option. (:pr:`2601`) `Brett Randall`_
1692-  Check self.dependencies when looking at dependent tasks in memory (:pr:`2606`) `deepthirajagopalan7`_
1693-  Add RabbitMQ SchedulerPlugin example (:pr:`2604`) `Matt Nicolls`_
1694-  add resources to scheduler update_graph plugin (:pr:`2603`) `Matt Nicolls`_
1695-  Use ensure_bytes in serialize_error (:pr:`2588`) `Matthew Rocklin`_
1696-  Specify data storage explicitly from Worker constructor (:pr:`2600`) `Matthew Rocklin`_
1697-  Change bokeh port keywords to dashboard_address (:pr:`2589`) `Matthew Rocklin`_
1698-  .detach_() pytorch tensor to serialize data as numpy array. (:pr:`2586`) `Muammar El Khatib`_
1699-  Add warning if creating scratch directories takes a long time (:pr:`2561`) `Matthew Rocklin`_
1700-  Fix typo in pub-sub doc. (:pr:`2599`) `Loïc Estève`_
1701-  Allow return_when='FIRST_COMPLETED' in wait (:pr:`2598`) `Nikos Tsaousis`_
1702-  Forward kwargs through Nanny to Worker (:pr:`2596`) `Brian Chu`_
1703-  Use ensure_dict instead of dict (:pr:`2594`) `James Bourbeau`_
1704-  Specify protocol in LocalCluster (:pr:`2489`) `Matthew Rocklin`_
1705
17061.26.1 - 2019-03-29
1707-------------------
1708
1709-  Fix LocalCluster to not overallocate memory when overcommitting threads per worker (:pr:`2541`) `George Sakkis`_
1710-  Make closing resilient to lacking an address (:pr:`2542`) `Matthew Rocklin`_
1711-  fix typo in comment (:pr:`2546`) `Brett Jurman`_
1712-  Fix double init of prometheus metrics (:pr:`2544`) `Marco Neumann`_
1713-  Skip test_duplicate_clients without bokeh. (:pr:`2553`) `Elliott Sales de Andrade`_
1714-  Add blocked_handlers to servers (:pr:`2556`) `Chris White`_
1715-  Always yield Server.handle_comm coroutine (:pr:`2559`) `Tom Augspurger`_
1716-  Use yaml.safe_load (:pr:`2566`) `Matthew Rocklin`_
1717-  Fetch executables from build root. (:pr:`2551`) `Elliott Sales de Andrade`_
1718-  Fix Torando 6 test failures (:pr:`2570`) `Matthew Rocklin`_
1719-  Fix test_sync_closed_loop (:pr:`2572`) `Matthew Rocklin`_
1720
17211.26.0 - 2019-02-25
1722-------------------
1723
1724-  Update style to fix recent flake8 update (:pr:`2500`) (:pr:`2509`) `Matthew Rocklin`_
1725-  Fix typo in gen_cluster log message (:pr:`2503`) `Loïc Estève`_
1726-  Allow KeyError when closing event loop (:pr:`2498`) `Matthew Rocklin`_
1727-  Avoid thread testing for TCP ThreadPoolExecutor (:pr:`2510`) `Matthew Rocklin`_
1728-  Find Futures inside SubgraphCallable (:pr:`2505`) `Jim Crist`_
1729-  Avoid AttributeError when closing and sending a message (:pr:`2514`) `Matthew Rocklin`_
1730-  Add deprecation warning to dask_mpi.py (:pr:`2522`) `Julia Kent`_
1731-  Relax statistical profiling test (:pr:`2527`) `Matthew Rocklin`_
1732-  Support alternative --remote-dask-worker SSHCluster() and dask-ssh CLI (:pr:`2526`) `Adam Beberg`_
1733-  Iterate over full list of plugins in transition (:pr:`2518`) `Matthew Rocklin`_
1734-  Create Prometheus Endpoint (:pr:`2499`) `Adam Beberg`_
1735-  Use pytest.importorskip for prometheus test (:pr:`2533`) `Matthew Rocklin`_
1736-  MAINT skip prometheus test when no installed (:pr:`2534`) `Olivier Grisel`_
1737-  Fix intermittent testing failures (:pr:`2535`) `Matthew Rocklin`_
1738-  Avoid using nprocs keyword in dask-ssh if set to one (:pr:`2531`)  `Matthew Rocklin`_
1739-  Bump minimum Tornado version to 5.0
1740
1741
17421.25.3 - 2019-01-31
1743-------------------
1744
1745-  Fix excess threading on missing connections (:pr:`2403`) `Daniel Farrell`_
1746-  Fix typo in doc (:pr:`2457`) `Loïc Estève`_
1747-  Start fewer but larger workers with LocalCluster (:pr:`2452`) `Matthew Rocklin`_
1748-  Check for non-zero ``length`` first in ``read`` loop (:pr:`2465`) `John Kirkham`_
1749-  DOC: Use of local cluster in script (:pr:`2462`) `Peter Killick`_
1750-  DOC/API: Signature for base class write / read (:pr:`2472`) `Tom Augspurger`_
1751-  Support Pytest 4 in Tests (:pr:`2478`) `Adam Beberg`_
1752-  Ensure async behavior in event loop with LocalCluster (:pr:`2484`) `Matthew Rocklin`_
1753-  Fix spurious CancelledError (:pr:`2485`) `Loïc Estève`_
1754-  Properly reset dask.config scheduler and shuffle when closing the client (:pr:`2475`) `George Sakkis`_
1755-  Make it more explict that resources are per worker. (:pr:`2470`) `Loïc Estève`_
1756-  Remove references to center (:pr:`2488`)  `Matthew Rocklin`_
1757-  Expand client clearing timeout to 10s in testing (:pr:`2493`) `Matthew Rocklin`_
1758-  Propagate key keyword in progressbar (:pr:`2492`) `Matthew Rocklin`_
1759-  Use provided cluster's IOLoop if present in Client (:pr:`2494`) `Matthew Rocklin`_
1760
1761
17621.25.2 - 2019-01-04
1763-------------------
1764
1765-  Clean up LocalCluster logging better in async mode (:pr:`2448`) `Matthew Rocklin`_
1766-  Add short error message if bokeh cannot be imported (:pr:`2444`) `Dirk Petersen`_
1767-  Add optional environment variables to Nanny (:pr:`2431`) `Matthew Rocklin`_
1768-  Make the direct keyword docstring entries uniform (:pr:`2441`) `Matthew Rocklin`_
1769-  Make LocalCluster.close async friendly (:pr:`2437`) `Matthew Rocklin`_
1770-  gather_dep: don't request dependencies we already found out we don't want (:pr:`2428`) `tjb900`_
1771-  Add parameters to Client.run docstring (:pr:`2429`) `Matthew Rocklin`_
1772-  Support coroutines and async-def functions in run/run_scheduler (:pr:`2427`) `Matthew Rocklin`_
1773-  Name threads in ThreadPoolExecutors (:pr:`2408`) `Matthew Rocklin`_
1774
1775
1776
17771.25.1 - 2018-12-15
1778-------------------
1779
1780-  Serialize numpy.ma.masked objects properly (:pr:`2384`) `Jim Crist`_
1781-  Turn off bokeh property validation in dashboard (:pr:`2387`) `Jim Crist`_
1782-  Fully initialize WorkerState objects (:pr:`2388`) `Jim Crist`_
1783-  Fix typo in scheduler docstring (:pr:`2393`) `Russ Bubley`_
1784-  DOC: fix typo in distributed.worker.Worker docstring (:pr:`2395`) `Loïc Estève`_
1785-  Remove clients and workers from event log after removal (:pr:`2394`) `tjb900`_
1786-  Support msgpack 0.6.0 by providing length keywords (:pr:`2399`) `tjb900`_
1787-  Use async-await on large messages test (:pr:`2404`) `Matthew Rocklin`_
1788-  Fix race condition in normalize_collection (:pr:`2386`) `Jim Crist`_
1789-  Fix redict collection after HighLevelGraph fix upstream (:pr:`2413`) `Matthew Rocklin`_
1790-  Add a blocking argument to Lock.acquire() (:pr:`2412`) `Stephan Hoyer`_
1791-  Fix long traceback test (:pr:`2417`) `Matthew Rocklin`_
1792-  Update x509 certificates to current OpenSSL standards. (:pr:`2418`) `Diane Trout`_
1793
1794
17951.25.0 - 2018-11-28
1796-------------------
1797
1798-  Fixed the 404 error on the Scheduler Dashboard homepage (:pr:`2361`) `Michael Wheeler`_
1799-  Consolidate two Worker classes into one (:pr:`2363`) `Matthew Rocklin`_
1800-  Avoid warnings in pyarrow and msgpack (:pr:`2364`) `Matthew Rocklin`_
1801-  Avoid race condition in Actor's Future (:pr:`2374`) `Matthew Rocklin`_
1802-  Support missing packages keyword in Client.get_versions (:pr:`2379`) `Matthew Rocklin`_
1803-  Fixup serializing masked arrays (:pr:`2373`) `Jim Crist`_
1804
1805
18061.24.2 - 2018-11-15
1807-------------------
1808
1809-  Add support for Bokeh 1.0 (:pr:`2348`) (:pr:`2356`) `Matthew Rocklin`_
1810-  Fix regression that dropped support for Tornado 4 (:pr:`2353`) `Roy Wedge`_
1811-  Avoid deprecation warnings (:pr:`2355`) (:pr:`2357`) `Matthew Rocklin`_
1812-  Fix typo in worker documentation (:pr:`2349`) `Tom Rochette`_
1813
1814
18151.24.1 - 2018-11-09
1816-------------------
1817
1818-  Use tornado's builtin AnyThreadLoopEventPolicy (:pr:`2326`) `Matthew Rocklin`_
1819-  Adjust TLS tests for openssl 1.1 (:pr:`2331`) `Marius van Niekerk`_
1820-  Avoid setting event loop policy if within Jupyter notebook server (:pr:`2343`) `Matthew Rocklin`_
1821-  Add preload script to conf (:pr:`2325`) `Guillaume Eynard-Bontemps`_
1822-  Add serializer for Numpy masked arrays (:pr:`2335`) `Peter Killick`_
1823-  Use psutil.Process.oneshot (:pr:`2339`) `NotSqrt`_
1824-  Use worker SSL context when getting client from worker. (:pr:`2301`) Anonymous
1825
1826
18271.24.0 - 2018-10-26
1828-------------------
1829
1830-  Remove Joblib Dask Backend from codebase (:pr:`2298`) `Matthew Rocklin`_
1831-  Include worker tls protocol in Scheduler.restart (:pr:`2295`) `Matthew Rocklin`_
1832-  Adapt to new Bokeh selection for 1.0 (:pr:`2292`) `Matthew Rocklin`_
1833-  Add explicit retry method to Future and Client (:pr:`2299`) `Matthew Rocklin`_
1834-  Point to main worker page in bokeh links (:pr:`2300`) `Matthew Rocklin`_
1835-  Limit concurrency when gathering many times (:pr:`2303`) `Matthew Rocklin`_
1836-  Add tls_cluster pytest fixture (:pr:`2302`) `Matthew Rocklin`_
1837-  Convert ConnectionPool.open and active to properties (:pr:`2304`) `Matthew Rocklin`_
1838-  change export_tb to format_tb (:pr:`2306`) `Eric Ma`_
1839-  Redirect joblib page to dask-ml (:pr:`2307`) `Matthew Rocklin`_
1840-  Include unserializable object in error message (:pr:`2310`) `Matthew Rocklin`_
1841-  Import Mapping, Iterator, Set from collections.abc in Python 3 (:pr:`2315`) `Gaurav Sheni`_
1842-  Extend Client.scatter docstring (:pr:`2320`) `Eric Ma`_
1843-  Update for new flake8 (:pr:`2321`)  `Matthew Rocklin`_
1844
1845
18461.23.3 - 2018-10-05
1847-------------------
1848
1849-  Err in dask serialization if not a NotImplementedError (:pr:`2251`) `Matthew Rocklin`_
1850-  Protect against key missing from priority in GraphLayout (:pr:`2259`) `Matthew Rocklin`_
1851-  Do not pull data twice in Client.gather (:pr:`2263`) `Adam Klein`_
1852-  Add pytest fixture for cluster tests (:pr:`2262`) `Matthew Rocklin`_
1853-  Cleanup bokeh callbacks  (:pr:`2261`) (:pr:`2278`) `Matthew Rocklin`_
1854-  Fix bokeh error for `memory_limit=None` (:pr:`2255`) `Brett Naul`_
1855-  Place large keywords into task graph in Client.map (:pr:`2281`) `Matthew Rocklin`_
1856-  Remove redundant blosc threading code from protocol.numpy (:pr:`2284`) `Mike Gevaert`_
1857-  Add ncores to workertable (:pr:`2289`) `Matthew Rocklin`_
1858-  Support upload_file on files with no extension (:pr:`2290`) `Matthew Rocklin`_
1859
1860
18611.23.2 - 2018-09-17
1862-------------------
1863
1864-  Discard dependent rather than remove (:pr:`2250`) `Matthew Rocklin`_
1865-  Use dask_sphinx_theme `Matthew Rocklin`_
1866-  Drop the Bokeh index page (:pr:`2241`) `John Kirkham`_
1867-  Revert change to keep link relative (:pr:`2242`) `Matthew Rocklin`_
1868-  docs: Fix broken AWS link in setup.rst file (:pr:`2240`) `Vladyslav Moisieienkov`_
1869-  Return cancelled futures in as_completed (:pr:`2233`) `Chris White`_
1870
1871
18721.23.1 - 2018-09-06
1873-------------------
1874
1875-  Raise informative error when mixing futures between clients (:pr:`2227`) `Matthew Rocklin`_
1876-  add byte_keys to unpack_remotedata call (:pr:`2232`) `Matthew Rocklin`_
1877-  Add documentation for gist/rawgit for get_task_stream (:pr:`2236`) `Matthew Rocklin`_
1878-  Quiet Client.close by waiting for scheduler stop signal (:pr:`2237`) `Matthew Rocklin`_
1879-  Display system graphs nicely on different screen sizes (:pr:`2239`) `Derek Ludwig`_
1880-  Mutate passed in workers dict in TaskStreamPlugin.rectangles (:pr:`2238`) `Matthew Rocklin`_
1881
1882
18831.23.0 - 2018-08-30
1884-------------------
1885
1886-  Add direct_to_workers to Client `Matthew Rocklin`_
1887-  Add Scheduler.proxy to workers `Matthew Rocklin`_
1888-  Implement Actors `Matthew Rocklin`_
1889-  Fix tooltip (:pr:`2168`) `Loïc Estève`_
1890-  Fix scale /  avoid returning coroutines (:pr:`2171`) `Joe Hamman`_
1891-  Clarify dask-worker --nprocs (:pr:`2173`) `Yu Feng`_
1892-  Concatenate all bytes of small messages in TCP comms (:pr:`2172`) `Matthew Rocklin`_
1893-  Add dashboard_link property (:pr:`2176`) `Jacob Tomlinson`_
1894-  Always offload to_frames (:pr:`2170`) `Matthew Rocklin`_
1895-  Warn if desired port is already in use (:pr:`2191`) (:pr:`2199`) `Matthew Rocklin`_
1896-  Add profile page for event loop thread (:pr:`2144`) `Matthew Rocklin`_
1897-  Use dispatch for dask serialization, also add sklearn, pytorch (:pr:`2175`) `Matthew Rocklin`_
1898-  Handle corner cases with busy signal (:pr:`2182`) `Matthew Rocklin`_
1899-  Check self.dependencies when looking at tasks in memory (:pr:`2196`) `Matthew Rocklin`_
1900-  Add ability to log additional custom metrics from each worker (:pr:`2169`) `Loïc Estève`_
1901-  Fix formatting when port is a tuple (:pr:`2204`) `Loïc Estève`_
1902-  Describe what ZeroMQ is (:pr:`2211`) `Mike DePalatis`_
1903-  Tiny typo fix (:pr:`2214`) `Anderson Banihirwe`_
1904-  Add Python 3.7 to travis.yml (:pr:`2203`) `Matthew Rocklin`_
1905-  Add plot= keyword to get_task_stream (:pr:`2198`) `Matthew Rocklin`_
1906-  Add support for optional versions in Client.get_versions (:pr:`2216`) `Matthew Rocklin`_
1907-  Add routes for solo bokeh figures in dashboard (:pr:`2185`) `Matthew Rocklin`_
1908-  Be resilient to missing dep after busy signal (:pr:`2217`) `Matthew Rocklin`_
1909-  Use CSS Grid to layout status page on the dashboard (:pr:`2213`) `Derek Ludwig`_ and `Luke Canavan`_
1910-  Fix deserialization of queues on main ioloop thread (:pr:`2221`) `Matthew Rocklin`_
1911-  Add a worker initialization function (:pr:`2201`) `Guillaume Eynard-Bontemps`_
1912-  Collapse navbar in dashboard (:pr:`2223`) `Luke Canavan`_
1913
1914
19151.22.1 - 2018-08-03
1916-------------------
1917
1918-  Add worker_class= keyword to Nanny to support different worker types (:pr:`2147`) `Martin Durant`_
1919-  Cleanup intermittent worker failures (:pr:`2152`) (:pr:`2146`) `Matthew Rocklin`_
1920-  Fix msgpack PendingDeprecationWarning for encoding='utf-8' (:pr:`2153`) `Olivier Grisel`_
1921-  Make bokeh coloring deterministic using hash function (:pr:`2143`) `Matthew Rocklin`_
1922-  Allow client to query the task stream plot (:pr:`2122`) `Matthew Rocklin`_
1923-  Use PID and counter in thread names (:pr:`2084`) (:pr:`2128`) `Dror Birkman`_
1924-  Test that worker restrictions are cleared after cancellation (:pr:`2107`) `Matthew Rocklin`_
1925-  Expand resources in graph_to_futures (:pr:`2131`) `Matthew Rocklin`_
1926-  Add custom serialization support for pyarrow  (:pr:`2115`) `Dave Hirschfeld`_
1927-  Update dask-scheduler cli help text for preload (:pr:`2120`) `Matt Nicolls`_
1928-  Added another nested parallelism test (:pr:`1710`) `Tom Augspurger`_
1929-  insert newline by default after TextProgressBar (:pr:`1976`) `Phil Tooley`_
1930-  Retire workers from scale (:pr:`2104`) `Matthew Rocklin`_
1931-  Allow worker to refuse data requests with busy signal (:pr:`2092`) `Matthew Rocklin`_
1932-  Don't forget released keys (:pr:`2098`) `Matthew Rocklin`_
1933-  Update example for stopping a worker (:pr:`2088`) `John Kirkham`_
1934-  removed hardcoded value of memory terminate fraction from a log message (:pr:`2096`) `Bartosz Marcinkowski`_
1935-  Adjust worker doc after change in config file location and treatment (:pr:`2094`) `Aurélien Ponte`_
1936-  Prefer gathering data from same host (:pr:`2090`) `Matthew Rocklin`_
1937-  Handle exceptions on deserialized comm with text error (:pr:`2093`) `Matthew Rocklin`_
1938-  Fix typo in docstring (:pr:`2087`) `Loïc Estève`_
1939-  Provide communication context to serialization functions (:pr:`2054`) `Matthew Rocklin`_
1940-  Allow `name` to be explicitly passed in publish_dataset (:pr:`1995`) `Marius van Niekerk`_
1941-  Avoid accessing Worker.scheduler_delay around yield point (:pr:`2074`) `Matthew Rocklin`_
1942-  Support TB and PB in format bytes (:pr:`2072`) `Matthew Rocklin`_
1943-  Add test for as_completed for loops in Python 2 (:pr:`2071`) `Matthew Rocklin`_
1944-  Allow adaptive to exist without a cluster (:pr:`2064`) `Matthew Rocklin`_
1945-  Have worker data transfer wait until recipient acknowledges (:pr:`2052`) `Matthew Rocklin`_
1946-  Support async def functions in Client.sync (:pr:`2070`) `Matthew Rocklin`_
1947-  Add asynchronous parameter to docstring of LocalCluster `Matthew Rocklin`_
1948-  Normalize address before comparison (:pr:`2066`) `Tom Augspurger`_
1949-  Use ConnectionPool for Worker.scheduler `Matthew Rocklin`_
1950-  Avoid reference cycle in str_graph `Matthew Rocklin`_
1951-  Pull data outside of while loop in gather (:pr:`2059`) `Matthew Rocklin`_
1952
1953
19541.22.0 - 2018-06-14
1955-------------------
1956
1957-  Overhaul configuration (:pr:`1948`) `Matthew Rocklin`_
1958-  Replace get= keyword with scheduler= (:pr:`1959`) `Matthew Rocklin`_
1959-  Use tuples in msgpack (:pr:`2000`) `Matthew Rocklin`_ and `Marius van Niekerk`_
1960-  Unify handling of high-volume connections (:pr:`1970`) `Matthew Rocklin`_
1961-  Automatically scatter large arguments in joblib connector (:pr:`2020`) (:pr:`2030`) `Olivier Grisel`_
1962-  Turn click Python 3 locales failure into a warning (:pr:`2001`) `Matthew Rocklin`_
1963-  Rely on dask implementation of sizeof (:pr:`2042`) `Matthew Rocklin`_
1964-  Replace deprecated workers.iloc with workers.values() (:pr:`2013`) `Grant Jenks`_
1965-  Introduce serialization families (:pr:`1912`) `Matthew Rocklin`_
1966
1967-  Add PubSub (:pr:`1999`) `Matthew Rocklin`_
1968-  Add Dask stylesheet to documentation `Matthew Rocklin`_
1969-  Avoid recomputation on partially-complete results (:pr:`1840`) `Matthew Rocklin`_
1970-  Use sys.prefix in popen for testing (:pr:`1954`) `Matthew Rocklin`_
1971-  Include yaml files in manifest `Matthew Rocklin`_
1972-  Use self.sync so Client.processing works in asynchronous context (:pr:`1962`) `Henry Doupe`_
1973-  Fix bug with bad repr on closed client (:pr:`1965`) `Matthew Rocklin`_
1974-  Parse --death-timeout keyword in dask-worker (:pr:`1967`) `Matthew Rocklin`_
1975-  Support serializers in BatchedSend (:pr:`1964`) `Matthew Rocklin`_
1976-  Use normal serialization mechanisms to serialize published datasets (:pr:`1972`) `Matthew Rocklin`_
1977-  Add security support to LocalCluster. (:pr:`1855`) `Marius van Niekerk`_
1978-  add ConnectionPool.remove method (:pr:`1977`) `Tony Lorenzo`_
1979-  Cleanly close workers when scheduler closes (:pr:`1981`) `Matthew Rocklin`_
1980-  Add .pyz support in upload_file  (:pr:`1781`) `@bmaisson`_
1981-  add comm to packages (:pr:`1980`) `Matthew Rocklin`_
1982-  Replace dask.set_options with dask.config.set `Matthew Rocklin`_
1983-  Exclude versions of sortedcontainers which do not have .iloc. (:pr:`1993`) `Russ Bubley`_
1984-  Exclude gc statistics under PyPy (:pr:`1997`) `Marius van Niekerk`_
1985-  Manage recent config and dataframe changes in dask (:pr:`2009`) `Matthew Rocklin`_
1986-  Cleanup lingering clients in tests (:pr:`2012`) `Matthew Rocklin`_
1987-  Use timeouts during `Client._ensure_connected` (:pr:`2011`) `Martin Durant`_
1988-  Avoid reference cycle in joblib backend (:pr:`2014`) `Matthew Rocklin`_, also `Olivier Grisel`_
1989-  DOC: fixed test example (:pr:`2017`) `Tom Augspurger`_
1990-  Add worker_key parameter to Adaptive (:pr:`1992`) `Matthew Rocklin`_
1991-  Prioritize tasks with their true keys, before stringifying (:pr:`2006`) `Matthew Rocklin`_
1992-  Serialize worker exceptions through normal channels (:pr:`2016`) `Matthew Rocklin`_
1993-  Include exception in progress bar (:pr:`2028`) `Matthew Rocklin`_
1994-  Avoid logging orphaned futures in All (:pr:`2008`) `Matthew Rocklin`_
1995-  Don't use spill-to-disk dictionary if we're not spilling to disk `Matthew Rocklin`_
1996-  Only avoid recomputation if key exists (:pr:`2036`) `Matthew Rocklin`_
1997-  Use client connection and serialization arguments in progress (:pr:`2035`) `Matthew Rocklin`_
1998-  Rejoin worker client on closing context manager (:pr:`2041`) `Matthew Rocklin`_
1999-  Avoid forgetting erred tasks when losing dependencies (:pr:`2047`) `Matthew Rocklin`_
2000-  Avoid collisions in graph_layout (:pr:`2050`) `Matthew Rocklin`_
2001-  Avoid recursively calling bokeh callback in profile plot (:pr:`2048`) `Matthew Rocklin`_
2002
2003
20041.21.8 - 2018-05-03
2005-------------------
2006
2007-  Remove errant print statement (:pr:`1957`) `Matthew Rocklin`_
2008-  Only add reevaluate_occupancy callback once (:pr:`1953`) `Tony Lorenzo`_
2009
2010
20111.21.7 - 2018-05-02
2012-------------------
2013
2014-  Newline needed for doctest rendering (:pr:`1917`) `Loïc Estève`_
2015-  Support Client._repr_html_ when in async mode (:pr:`1909`) `Matthew Rocklin`_
2016-  Add parameters to dask-ssh command (:pr:`1910`) `Irene Rodriguez`_
2017-  Santize get_dataset trace (:pr:`1888`) `John Kirkham`_
2018-  Fix bug where queues would not clean up cleanly (:pr:`1922`) `Matthew Rocklin`_
2019-  Delete cached file safely in upload file (:pr:`1921`) `Matthew Rocklin`_
2020-  Accept KeyError when closing tornado IOLoop in tests (:pr:`1937`) `Matthew Rocklin`_
2021-  Quiet the client and scheduler when gather(..., errors='skip') (:pr:`1936`) `Matthew Rocklin`_
2022-  Clarify couldn't gather keys warning (:pr:`1942`) `Kenneth Koski`_
2023-  Support submit keywords in joblib (:pr:`1947`) `Matthew Rocklin`_
2024-  Avoid use of external resources in bokeh server (:pr:`1934`) `Matthew Rocklin`_
2025-  Drop `__contains__` from `Datasets` (:pr:`1889`) `John Kirkham`_
2026-  Fix bug with queue timeouts (:pr:`1950`) `Matthew Rocklin`_
2027-  Replace msgpack-python by msgpack (:pr:`1927`) `Loïc Estève`_
2028
2029
20301.21.6 - 2018-04-06
2031-------------------
2032
2033-  Fix numeric environment variable configuration (:pr:`1885`) `Joseph Atkins-Kurkish`_
2034-  support bytearrays in older lz4 library (:pr:`1886`) `Matthew Rocklin`_
2035-  Remove started timeout in nanny (:pr:`1852`) `Matthew Rocklin`_
2036-  Don't log errors in sync (:pr:`1894`) `Matthew Rocklin`_
2037-  downgrade stale lock warning to info logging level (:pr:`1890`) `Matthew Rocklin`_
2038-  Fix ``UnboundLocalError`` for ``key`` (:pr:`1900`) `John Kirkham`_
2039-  Resolve deployment issues in Python 2 (:pr:`1905`) `Matthew Rocklin`_
2040-  Support retries and priority in Client.get method (:pr:`1902`) `Matthew Rocklin`_
2041-  Add additional attributes to task page if applicable (:pr:`1901`) `Matthew Rocklin`_
2042-  Add count method to as_completed (:pr:`1897`) `Matthew Rocklin`_
2043-  Extend default timeout to 10s (:pr:`1904`) `Matthew Rocklin`_
2044
2045
2046
2047
20481.21.5 - 2018-03-31
2049-------------------
2050
2051-  Increase default allowable tick time to 3s (:pr:`1854`) `Matthew Rocklin`_
2052-  Handle errant workers when another worker has data (:pr:`1853`) `Matthew Rocklin`_
2053-  Close multiprocessing queue in Nanny to reduce open file descriptors (:pr:`1862`) `Matthew Rocklin`_
2054-  Extend nanny started timeout to 30s, make configurable (:pr:`1865`) `Matthew Rocklin`_
2055-  Comment out the default config file (:pr:`1871`) `Matthew Rocklin`_
2056-  Update to fix bokeh 0.12.15 update errors (:pr:`1872`) `Matthew Rocklin`_
2057-  Downgrade Event Loop unresponsive warning to INFO level (:pr:`1870`) `Matthew Rocklin`_
2058-  Add fifo timeout to control priority generation (:pr:`1828`) `Matthew Rocklin`_
2059-  Add retire_workers API to Client (:pr:`1876`) `Matthew Rocklin`_
2060-  Catch NoSuchProcess error in Nanny.memory_monitor (:pr:`1877`) `Matthew Rocklin`_
2061-  Add uid to nanny queue communitcations (:pr:`1880`) `Matthew Rocklin`_
2062
2063
20641.21.4 - 2018-03-21
2065-------------------
2066
2067-  Avoid passing bytearrays to snappy decompression (:pr:`1831`) `Matthew Rocklin`_
2068-  Specify IOLoop in Adaptive (:pr:`1841`) `Matthew Rocklin`_
2069-  Use connect-timeout config value throughout client (:pr:`1839`) `Matthew Rocklin`_
2070-  Support direct= keyword argument in Client.get (:pr:`1845`) `Matthew Rocklin`_
2071
2072
20731.21.3 - 2018-03-08
2074-------------------
2075
2076-  Add cluster superclass and improve adaptivity (:pr:`1813`) `Matthew Rocklin`_
2077-  Fixup tests and support Python 2 for Tornado 5.0 (:pr:`1818`) `Matthew Rocklin`_
2078-  Fix bug in recreate_error when dependencies are dropped (:pr:`1815`) `Matthew Rocklin`_
2079-  Add worker time to live in Scheduler (:pr:`1811`) `Matthew Rocklin`_
2080-  Scale adaptive based on total_occupancy (:pr:`1807`) `Matthew Rocklin`_
2081-  Support calling compute within worker_client (:pr:`1814`) `Matthew Rocklin`_
2082-  Add percentage to profile plot (:pr:`1817`) `Brett Naul`_
2083-  Overwrite option for remote python in dask-ssh (:pr:`1812`) `Sven Kreiss`_
2084
2085
20861.21.2 - 2018-03-05
2087-------------------
2088
2089-  Fix bug where we didn't check idle/saturated when stealing (:pr:`1801`) `Matthew Rocklin`_
2090-  Fix bug where client was noisy when scheduler closed unexpectedly (:pr:`1806`) `Matthew Rocklin`_
2091-  Use string-based timedeltas (like ``'500 ms'``) everywhere (:pr:`1804`) `Matthew Rocklin`_
2092-  Keep logs in scheduler and worker even if silenced (:pr:`1803`) `Matthew Rocklin`_
2093-  Support minimum, maximum, wait_count keywords in Adaptive (:pr:`1797`) `Jacob Tomlinson`_ and `Matthew Rocklin`_
2094-  Support async protocols for LocalCluster, replace start= with asynchronous= (:pr:`1798`) `Matthew Rocklin`_
2095-  Avoid restarting workers when nanny waits on scheduler (:pr:`1793`) `Matthew Rocklin`_
2096-  Use ``IOStream.read_into()`` when available (:pr:`1477`) `Antoine Pitrou`_
2097-  Reduce LocalCluster logging threshold from CRITICAL to WARN (:pr:`1785`) `Andy Jones`_
2098-  Add `futures_of` to API docs (:pr:`1783`) `John Kirkham`_
2099-  Make diagnostics link in client configurable (:pr:`1810`) `Matthew Rocklin`_
2100
2101
21021.21.1 - 2018-02-22
2103-------------------
2104
2105-  Fixed an uncaught exception in ``distributed.joblib`` with a ``LocalCluster`` using only threads (:issue:`1775`) `Tom Augspurger`_
2106-  Format bytes in info worker page (:pr:`1752`) `Matthew Rocklin`_
2107-  Add pass-through arguments for scheduler/worker `--preload` modules. (:pr:`1634`) `Alexander Ford`_
2108-  Use new LZ4 API (:pr:`1757`) `Thrasibule`_
2109-  Replace dask.optimize with dask.optimization (:pr:`1754`) `Matthew Rocklin`_
2110-  Add graph layout engine and bokeh plot (:pr:`1756`) `Matthew Rocklin`_
2111-  Only expand name with --nprocs if name exists (:pr:`1776`) `Matthew Rocklin`_
2112-  specify IOLoop for stealing PeriodicCallback (:pr:`1777`) `Matthew Rocklin`_
2113-  Fixed distributed.joblib with no processes `Tom Augspurger`_
2114-  Use set.discard to avoid KeyErrors in stealing (:pr:`1766`) `Matthew Rocklin`_
2115-  Avoid KeyError when task has been released during steal (:pr:`1765`) `Matthew Rocklin`_
2116-  Add versions routes to avoid the use of run in Client.get_versions (:pr:`1773`) `Matthew Rocklin`_
2117-  Add write_scheduler_file to Client (:pr:`1778`) `Joe Hamman`_
2118-  Default host to tls:// if tls information provided (:pr:`1780`) `Matthew Rocklin`_
2119
2120
21211.21.0 - 2018-02-09
2122-------------------
2123
2124-  Refactor scheduler to use TaskState objects rather than dictionaries (:pr:`1594`) `Antoine Pitrou`_
2125-  Plot CPU fraction of total in workers page (:pr:`1624`) `Matthew Rocklin`_
2126-  Use thread CPU time in Throttled GC (:pr:`1625`) `Antoine Pitrou`_
2127-  Fix bug with ``memory_limit=None`` (:pr:`1639`) `Matthew Rocklin`_
2128-  Add futures_of to top level api (:pr:`1646`) `Matthew Rocklin`_
2129-  Warn on serializing large data in Client (:pr:`1636`) `Matthew Rocklin`_
2130-  Fix intermittent windows failure when removing lock file (:pr:`1652`) `Antoine Pitrou`_
2131-  Add diagnosis and logging of poor GC Behavior (:pr:`1635`) `Antoine Pitrou`_
2132-  Add client-scheduler heartbeats (:pr:`1657`) `Matthew Rocklin`_
2133-  Return dictionary of worker info in ``retire_workers`` (:pr:`1659`) `Matthew Rocklin`_
2134-  Ensure dumps_function works with unhashable functions (:pr:`1662`) `Matthew Rocklin`_
2135-  Collect client name ids rom client-name config variable (:pr:`1664`) `Matthew Rocklin`_
2136-  Allow simultaneous use of --name and --nprocs in dask-worker (:pr:`1665`) `Matthew Rocklin`_
2137-  Add support for grouped adaptive scaling and adaptive behavior overrides (:pr:`1632`) `Alexander Ford`_
2138-  Share scheduler RPC between worker and client (:pr:`1673`) `Matthew Rocklin`_
2139-  Allow ``retries=`` in ClientExecutor (:pr:`1672`) `@rqx`_
2140-  Improve documentation for get_client and dask.compute examples (:pr:`1638`) `Scott Sievert`_
2141-  Support DASK_SCHEDULER_ADDRESS environment variable in worker (:pr:`1680`) `Matthew Rocklin`_
2142-  Support tuple-keys in retries (:pr:`1681`) `Matthew Rocklin`_
2143-  Use relative links in bokeh dashboard (:pr:`1682`) `Matthew Rocklin`_
2144-  Make message log length configurable, default to zero (:pr:`1691`) `Matthew Rocklin`_
2145-  Deprecate ``Client.shutdown`` (:pr:`1699`) `Matthew Rocklin`_
2146-  Add warning in configuration docs to install pyyaml (:pr:`1701`) `Cornelius Riemenschneider`_
2147-  Handle nested parallelism in distributed.joblib (:pr:`1705`) `Tom Augspurger`_
2148-  Don't wait for Worker.executor to shutdown cleanly when restarting process (:pr:`1708`) `Matthew Rocklin`_
2149-  Add support for user defined priorities (:pr:`1651`) `Matthew Rocklin`_
2150-  Catch and log OSErrors around worker lock files (:pr:`1714`) `Matthew Rocklin`_
2151-  Remove worker prioritization.  Coincides with changes to dask.order (:pr:`1730`) `Matthew Rocklin`_
2152-  Use process-measured memory rather than nbytes in Bokeh dashboard (:pr:`1737`) `Matthew Rocklin`_
2153-  Enable serialization of Locks  (:pr:`1738`) `Matthew Rocklin`_
2154-  Support Tornado 5 beta (:pr:`1735`) `Matthew Rocklin`_
2155-  Cleanup remote_magic client cache after tests (:pr:`1743`) `Min RK`_
2156-  Allow service ports to be specified as (host, port) (:pr:`1744`) `Bruce Merry`_
2157
2158
21591.20.2 - 2017-12-07
2160-------------------
2161
2162-  Clear deque handlers after each test (:pr:`1586`) `Antoine Pitrou`_
2163-  Handle deserialization in FutureState.set_error (:pr:`1592`) `Matthew Rocklin`_
2164-  Add process leak checker to tests (:pr:`1596`) `Antoine Pitrou`_
2165-  Customize process title for subprocess (:pr:`1590`) `Antoine Pitrou`_
2166-  Make linting a separate CI job (:pr:`1599`) `Antoine Pitrou`_
2167-  Fix error from get_client() with no global client (:pr:`1595`) `Daniel Li`_
2168-  Remove Worker.host_health, correct WorkerTable metrics (:pr:`1600`) `Matthew Rocklin`_
2169-  Don't mark tasks as suspicious when retire_workers called. Addresses (:pr:`1607`) `Russ Bubley`_
2170-  Do not include processing workers in workers_to_close (:pr:`1609`) `Russ Bubley`_
2171-  Disallow simultaneous scale up and down in Adaptive (:pr:`1608`) `Russ Bubley`_
2172-  Parse bytestrings in --memory-limit (:pr:`1615`) `Matthew Rocklin`_
2173-  Use environment variable for scheduler address if present (:pr:`1610`) `Matthew Rocklin`_
2174-  Fix deprecation warning from logger.warn (:pr:`1616`) `Brett Naul`_
2175
2176
2177
2178
21791.20.1 - 2017-11-26
2180-------------------
2181
2182- Wrap ``import ssl`` statements with try-except block for ssl-crippled environments, (:pr:`1570`) `Xander Johnson`_
2183- Support zero memory-limit in Nanny (:pr:`1571`) `Matthew Rocklin`_
2184- Avoid PeriodicCallback double starts (:pr:`1573`) `Matthew Rocklin`_
2185- Add disposable workspace facility (:pr:`1543`) `Antoine Pitrou`_
2186- Use format_time in task_stream plots (:pr:`1575`) `Matthew Rocklin`_
2187- Avoid delayed finalize calls in compute (:pr:`1577`) `Matthew Rocklin`_
2188- Doc fix about secede (:pr:`1583`) `Scott Sievert`_
2189- Add tracemalloc option when tracking test leaks (:pr:`1585`) `Antoine Pitrou`_
2190- Add JSON routes to Bokeh server (:pr:`1584`) `Matthew Rocklin`_
2191- Handle exceptions cleanly in Variables and Queues (:pr:`1580`) `Matthew Rocklin`_
2192
2193
21941.20.0 - 2017-11-17
2195-------------------
2196
2197-  Drop use of pandas.msgpack (:pr:`1473`) `Matthew Rocklin`_
2198-  Add methods to get/set scheduler metadata `Matthew Rocklin`_
2199-  Add distributed lock `Matthew Rocklin`_
2200-  Add reschedule exception for worker tasks `Matthew Rocklin`_
2201-  Fix ``nbytes()`` for ``bytearrays`` `Matthew Rocklin`_
2202-  Capture scheduler and worker logs `Matthew Rocklin`_
2203-  Garbage collect after data eviction on high worker memory usage (:pr:`1488`) `Olivier Grisel`_
2204-  Add scheduler HTML routes to bokeh server (:pr:`1478`) (:pr:`1514`) `Matthew Rocklin`_
2205-  Add pytest plugin to test for resource leaks (:pr:`1499`) `Antoine Pitrou`_
2206-  Improve documentation for scheduler states (:pr:`1498`) `Antoine Pitrou`_
2207-  Correct warn_if_longer timeout in ThrottledGC (:pr:`1496`) `Fabian Keller`_
2208-  Catch race condition in as_completed on cancelled futures (:pr:`1507`) `Matthew Rocklin`_
2209-  Transactional work stealing (:pr:`1489`) (:pr:`1528`) `Matthew Rocklin`_
2210-  Avoid forkserver in PyPy (:pr:`1509`) `Matthew Rocklin`_
2211-  Add dict access to get/set datasets (:pr:`1508`) `Mike DePalatis`_
2212-  Support Tornado 5 (:pr:`1509`) (:pr:`1512`) (:pr:`1518`) (:pr:`1534`) `Antoine Pitrou`_
2213-  Move thread_state in Dask (:pr:`1523`) `Jim Crist`_
2214-  Use new Dask collections interface (:pr:`1513`) `Matthew Rocklin`_
2215-  Add nanny flag to dask-mpi `Matthew Rocklin`_
2216-  Remove JSON-based HTTP servers `Matthew Rocklin`_
2217-  Avoid doing I/O in repr/str (:pr:`1536`) `Matthew Rocklin`_
2218-  Fix URL for MPI4Py project (:pr:`1546`) `Ian Hopkinson`_
2219-  Allow automatic retries of a failed task (:pr:`1524`) `Antoine Pitrou`_
2220-  Clean and accelerate tests (:pr:`1548`) (:pr:`1549`) (:pr:`1552`)
2221   (:pr:`1553`) (:pr:`1560`) (:pr:`1564`) `Antoine Pitrou`_
2222- Move HDFS functionality to the hdfs3 library (:pr:`1561`) `Jim Crist`_
2223-  Fix bug when using events page with no events (:pr:`1562`) `@rbubley`_
2224-  Improve diagnostic naming of tasks within tuples (:pr:`1566`) `Kelvyn Yang`_
2225
22261.19.3 - 2017-10-16
2227-------------------
2228
2229-  Handle None case in profile.identity (:pr:`1456`)
2230-  Asyncio rewrite (:pr:`1458`)
2231-  Add rejoin function partner to secede (:pr:`1462`)
2232-  Nested compute (:pr:`1465`)
2233-  Use LooseVersion when comparing Bokeh versions (:pr:`1470`)
2234
2235
22361.19.2 - 2017-10-06
2237-------------------
2238
2239-  as_completed doesn't block on cancelled futures (:pr:`1436`)
2240-  Notify waiting threads/coroutines on cancellation (:pr:`1438`)
2241-  Set Future(inform=True) as default (:pr:`1437`)
2242-  Rename Scheduler.transition_story to story (:pr:`1445`)
2243-  Future uses default client by default (:pr:`1449`)
2244-  Add keys= keyword to Client.call_stack (:pr:`1446`)
2245-  Add get_current_task to worker (:pr:`1444`)
2246-  Ensure that Client remains asynchornous before ioloop starts (:pr:`1452`)
2247-  Remove "click for worker page" in bokeh plot (:pr:`1453`)
2248-  Add Client.current() (:pr:`1450`)
2249-  Clean handling of restart timeouts (:pr:`1442`)
2250
22511.19.1 - September 25th, 2017
2252-----------------------------
2253
2254-  Fix tool issues with TaskStream plot (:pr:`1425`)
2255-  Move profile module to top level (:pr:`1423`)
2256
22571.19.0 - September 24th, 2017
2258-----------------------------
2259
2260-  Avoid storing messages in message log (:pr:`1361`)
2261-  fileConfig does not disable existing loggers (:pr:`1380`)
2262-  Offload upload_file disk I/O to separate thread (:pr:`1383`)
2263-  Add missing SSLContext (:pr:`1385`)
2264-  Collect worker thread information from sys._curent_frames (:pr:`1387`)
2265-  Add nanny timeout (:pr:`1395`)
2266-  Restart worker if memory use goes above 95% (:pr:`1397`)
2267-  Track workers memory use with psutil (:pr:`1398`)
2268-  Track scheduler delay times in workers (:pr:`1400`)
2269-  Add time slider to profile plot (:pr:`1403`)
2270-  Change memory-limit keyword to refer to maximum number of bytes (:pr:`1405`)
2271-  Add ``cancel(force=)`` keyword (:pr:`1408`)
2272
22731.18.2 - September 2nd, 2017
2274----------------------------
2275-  Silently pass on cancelled futures in as_completed (:pr:`1366`)
2276-  Fix unicode keys error in Python 2 (:pr:`1370`)
2277-  Support numeric worker names
2278-  Add dask-mpi executable (:pr:`1367`)
2279
22801.18.1 - August 25th, 2017
2281--------------------------
2282-  Clean up forgotten keys in fire-and-forget workloads (:pr:`1250`)
2283-  Handle missing extensions (:pr:`1263`)
2284-  Allow recreate_exception on persisted collections (:pr:`1253`)
2285-  Add asynchronous= keyword to blocking client methods (:pr:`1272`)
2286-  Restrict to horizontal panning in bokeh plots (:pr:`1274`)
2287-  Rename client.shutdown to client.close (:pr:`1275`)
2288-  Avoid blocking on event loop (:pr:`1270`)
2289-  Avoid cloudpickle errors for Client.get_versions (:pr:`1279`)
2290-  Yield on Tornado IOStream.write futures (:pr:`1289`)
2291-  Assume async behavior if inside a sync statement (:pr:`1284`)
2292-  Avoid error messages on closing (:pr:`1297`), (:pr:`1296`) (:pr:`1318`) (:pr:`1319`)
2293-  Add timeout= keyword to get_client (:pr:`1290`)
2294-  Respect timeouts when restarting (:pr:`1304`)
2295-  Clean file descriptor and memory leaks in tests (:pr:`1317`)
2296-  Deprecate Executor (:pr:`1302`)
2297-  Add timeout to ThreadPoolExecutor.shutdown (:pr:`1330`)
2298-  Clean up AsyncProcess handling (:pr:`1324`)
2299-  Allow unicode keys in Python 2 scheduler (:pr:`1328`)
2300-  Avoid leaking stolen data (:pr:`1326`)
2301-  Improve error handling on failed nanny starts (:pr:`1337`), (:pr:`1331`)
2302-  Make Adaptive more flexible
2303-  Support ``--contact-address`` and ``--listen-address`` in worker (:pr:`1278`)
2304-  Remove old dworker, dscheduler executables (:pr:`1355`)
2305-  Exit workers if nanny process fails (:pr:`1345`)
2306-  Auto pep8 and flake (:pr:`1353`)
2307
23081.18.0 - July 8th, 2017
2309-----------------------
2310-  Multi-threading safety (:pr:`1191`), (:pr:`1228`), (:pr:`1229`)
2311-  Improve handling of byte counting (:pr:`1198`) (:pr:`1224`)
2312-  Add get_client, secede functions, refactor worker-client relationship (:pr:`1201`)
2313-  Allow logging configuraiton using logging.dictConfig() (:pr:`1206`) (:pr:`1211`)
2314-  Offload serialization and deserialization to separate thread (:pr:`1218`)
2315-  Support fire-and-forget tasks (:pr:`1221`)
2316-  Support bytestrings as keys (for Julia) (:pr:`1234`)
2317-  Resolve testing corner-cases (:pr:`1236`), (:pr:`1237`), (:pr:`1240`), (:pr:`1241`), (:pr:`1242`), (:pr:`1244`)
2318-  Automatic use of scatter/gather(direct=True) in more cases (:pr:`1239`)
2319
23201.17.1 - June 14th, 2017
2321------------------------
2322
2323-  Remove Python 3.4 testing from travis-ci (:pr:`1157`)
2324-  Remove ZMQ Support (:pr:`1160`)
2325-  Fix memoryview nbytes issue in Python 2.7 (:pr:`1165`)
2326-  Re-enable counters (:pr:`1168`)
2327-  Improve scheduler.restart (:pr:`1175`)
2328
2329
23301.17.0 - June 9th, 2017
2331-----------------------
2332
2333-  Reevaluate worker occupancy periodically during scheduler downtime
2334   (:pr:`1038`) (:pr:`1101`)
2335-  Add ``AioClient`` asyncio-compatible client API (:pr:`1029`) (:pr:`1092`)
2336   (:pr:`1099`)
2337-  Update Keras serializer (:pr:`1067`)
2338-  Support TLS/SSL connections for security (:pr:`866`) (:pr:`1034`)
2339-  Always create new worker directory when passed ``--local-directory``
2340   (:pr:`1079`)
2341-  Support pre-scattering data when using joblib frontent (:pr:`1022`)
2342-  Make workers more robust to failure of ``sizeof`` function (:pr:`1108`) and
2343   writing to disk (:pr:`1096`)
2344-  Add ``is_empty`` and ``update`` methods to ``as_completed`` (:pr:`1113`)
2345-  Remove ``_get`` coroutine and replace with ``get(..., sync=False)``
2346   (:pr:`1109`)
2347-  Improve API compatibility with async/await syntax (:pr:`1115`) (:pr:`1124`)
2348-  Add distributed Queues (:pr:`1117`) and shared Variables (:pr:`1128`) to
2349   enable inter-client coordination
2350-  Support direct client-to-worker scattering and gathering (:pr:`1130`) as
2351   well as performance enhancements when scattering data
2352-  Style improvements for bokeh web dashboards (:pr:`1126`) (:pr:`1141`) as
2353   well as a removal of the external bokeh process
2354-  HTML reprs for Future and Client objects (:pr:`1136`)
2355-  Support nested collections in client.compute (:pr:`1144`)
2356-  Use normal client API in asynchronous mode (:pr:`1152`)
2357-  Remove old distributed.collections submodule (:pr:`1153`)
2358
2359
23601.16.3 - May 5th, 2017
2361----------------------
2362
2363-  Add bokeh template files to MANIFEST (:pr:`1063`)
2364-  Don't set worker_client.get as default get (:pr:`1061`)
2365-  Clean up logging on Client().shutdown() (:pr:`1055`)
2366
23671.16.2 - May 3rd, 2017
2368----------------------
2369
2370-  Support ``async with Client`` syntax (:pr:`1053`)
2371-  Use internal bokeh server for default diagnostics server (:pr:`1047`)
2372-  Improve styling of bokeh plots when empty (:pr:`1046`) (:pr:`1037`)
2373-  Support efficient serialization for sparse arrays (:pr:`1040`)
2374-  Prioritize newly arrived work in worker (:pr:`1035`)
2375-  Prescatter data with joblib backend (:pr:`1022`)
2376-  Make client.restart more robust to worker failure (:pr:`1018`)
2377-  Support preloading a module or script in dask-worker or dask-scheduler processes (:pr:`1016`)
2378-  Specify network interface in command line interface (:pr:`1007`)
2379-  Client.scatter supports a single element (:pr:`1003`)
2380-  Use blosc compression on all memoryviews passing through comms (:pr:`998`)
2381-  Add concurrent.futures-compatible Executor (:pr:`997`)
2382-  Add as_completed.batches method and return results (:pr:`994`) (:pr:`971`)
2383-  Allow worker_clients to optionally stay within the thread pool (:pr:`993`)
2384-  Add bytes-stored and tasks-processing diagnostic histograms (:pr:`990`)
2385-  Run supports non-msgpack-serializable results (:pr:`965`)
2386
2387
23881.16.1 - March 22nd, 2017
2389-------------------------
2390
2391-  Use inproc transport in LocalCluster (:pr:`919`)
2392-  Add structured and queryable cluster event logs (:pr:`922`)
2393-  Use connection pool for inter-worker communication (:pr:`935`)
2394-  Robustly shut down spawned worker processes at shutdown (:pr:`928`)
2395-  Worker death timeout (:pr:`940`)
2396-  More visual reporting of exceptions in progressbar (:pr:`941`)
2397-  Render disk and serialization events to task stream visual (:pr:`943`)
2398-  Support async for / await protocol (:pr:`952`)
2399-  Ensure random generators are re-seeded in worker processes (:pr:`953`)
2400-  Upload sourcecode as zip module (:pr:`886`)
2401-  Replay remote exceptions in local process (:pr:`894`)
2402
24031.16.0 - February 24th, 2017
2404----------------------------
2405
2406- First come first served priorities on client submissions (:pr:`840`)
2407- Can specify Bokeh internal ports (:pr:`850`)
2408- Allow stolen tasks to return from either worker (:pr:`853`), (:pr:`875`)
2409- Add worker resource constraints during execution (:pr:`857`)
2410- Send small data through Channels (:pr:`858`)
2411- Better estimates for SciPy sparse matrix memory costs (:pr:`863`)
2412- Avoid stealing long running tasks (:pr:`873`)
2413- Maintain fortran ordering of NumPy arrays (:pr:`876`)
2414- Add ``--scheduler-file`` keyword to dask-scheduler (:pr:`877`)
2415- Add serializer for Keras models (:pr:`878`)
2416- Support uploading modules from zip files (:pr:`886`)
2417- Improve titles of Bokeh dashboards (:pr:`895`)
2418
24191.15.2 - January 27th, 2017
2420---------------------------
2421
2422*  Fix a bug where arrays with large dtypes or shapes were being improperly compressed (:pr:`830` :pr:`832` :pr:`833`)
2423*  Extend ``as_completed`` to accept new futures during iteration (:pr:`829`)
2424*  Add ``--nohost`` keyword to ``dask-ssh`` startup utility (:pr:`827`)
2425*  Support scheduler shutdown of remote workers, useful for adaptive clusters (:pr: `811` :pr:`816` :pr:`821`)
2426*  Add ``Client.run_on_scheduler`` method for running debug functions on the scheduler (:pr:`808`)
2427
24281.15.1 - January 11th, 2017
2429---------------------------
2430
2431*  Make compatibile with Bokeh 0.12.4 (:pr:`803`)
2432*  Avoid compressing arrays if not helpful  (:pr:`777`)
2433*  Optimize inter-worker data transfer (:pr:`770`) (:pr:`790`)
2434*  Add --local-directory keyword to worker (:pr:`788`)
2435*  Enable workers to arrive to the cluster with their own data.
2436   Useful if a worker leaves and comes back (:pr:`785`)
2437*  Resolve thread safety bug when using local_client (:pr:`802`)
2438*  Resolve scheduling issues in worker (:pr:`804`)
2439
2440
24411.15.0 - January 2nd, 2017
2442--------------------------
2443
2444*  Major Worker refactor (:pr:`704`)
2445*  Major Scheduler refactor (:pr:`717`) (:pr:`722`) (:pr:`724`) (:pr:`742`) (:pr:`743`
2446*  Add ``check`` (default is ``False``) option to ``Client.get_versions``
2447   to raise if the versions don't match on client, scheduler & workers (:pr:`664`)
2448*  ``Future.add_done_callback`` executes in separate thread (:pr:`656`)
2449*  Clean up numpy serialization (:pr:`670`)
2450*  Support serialization of Tornado v4.5 coroutines (:pr:`673`)
2451*  Use CPickle instead of Pickle in Python 2 (:pr:`684`)
2452*  Use Forkserver rather than Fork on Unix in Python 3 (:pr:`687`)
2453*  Support abstract resources for per-task constraints (:pr:`694`) (:pr:`720`) (:pr:`737`)
2454*  Add TCP timeouts (:pr:`697`)
2455*  Add embedded Bokeh server to workers (:pr:`709`) (:pr:`713`) (:pr:`738`)
2456*  Add embedded Bokeh server to scheduler (:pr:`724`) (:pr:`736`) (:pr:`738`)
2457*  Add more precise timers for Windows (:pr:`713`)
2458*  Add Versioneer (:pr:`715`)
2459*  Support inter-client channels  (:pr:`729`) (:pr:`749`)
2460*  Scheduler Performance improvements (:pr:`740`) (:pr:`760`)
2461*  Improve load balancing and work stealing (:pr:`747`) (:pr:`754`) (:pr:`757`)
2462*  Run Tornado coroutines on workers
2463*  Avoid slow sizeof call on Pandas dataframes (:pr:`758`)
2464
2465
24661.14.3 - November 13th, 2016
2467----------------------------
2468
2469*  Remove custom Bokeh export tool that implicitly relied on nodejs (:pr:`655`)
2470*  Clean up scheduler logging (:pr:`657`)
2471
2472
24731.14.2 - November 11th, 2016
2474----------------------------
2475
2476*  Support more numpy dtypes in custom serialization, (:pr:`627`), (:pr:`630`), (:pr:`636`)
2477*  Update Bokeh plots (:pr:`628`)
2478*  Improve spill to disk heuristics (:pr:`633`)
2479*  Add Export tool to Task Stream plot
2480*  Reverse frame order in loads for very many frames (:pr:`651`)
2481*  Add timeout when waiting on write (:pr:`653`)
2482
2483
24841.14.0 - November 3rd, 2016
2485---------------------------
2486
2487*   Add ``Client.get_versions()`` function to return software and package
2488    information from the scheduler, workers, and client (:pr:`595`)
2489*   Improved windows support (:pr:`577`) (:pr:`590`) (:pr:`583`) (:pr:`597`)
2490*   Clean up rpc objects explicitly (:pr:`584`)
2491*   Normalize collections against known futures (:pr:`587`)
2492*   Add key= keyword to map to specify keynames (:pr:`589`)
2493*   Custom data serialization (:pr:`606`)
2494*   Refactor the web interface (:pr:`608`) (:pr:`615`) (:pr:`621`)
2495*   Allow user-supplied Executor in Worker (:pr:`609`)
2496*   Pass Worker kwargs through LocalCluster
2497
2498
24991.13.3 - October 15th, 2016
2500---------------------------
2501
2502*   Schedulers can retire workers cleanly
2503*   Add ``Future.add_done_callback`` for ``concurrent.futures`` compatibility
2504*   Update web interface to be consistent with Bokeh 0.12.3
2505*   Close streams explicitly, avoiding race conditions and supporting
2506    more robust restarts on Windows.
2507*   Improved shuffled performance for dask.dataframe
2508*   Add adaptive allocation cluster manager
2509*   Reduce administrative overhead when dealing with many workers
2510*   ``dask-ssh --log-directory .`` no longer errors
2511*   Microperformance tuning for the scheduler
2512
25131.13.2
2514------
2515
2516*   Revert dask_worker to use fork rather than subprocess by default
2517*   Scatter retains type information
2518*   Bokeh always uses subprocess rather than spawn
2519
25201.13.1
2521------
2522
2523*   Fix critical Windows error with dask_worker executable
2524
25251.13.0
2526------
2527
2528*   Rename Executor to Client (:pr:`492`)
2529*   Add ``--memory-limit`` option to ``dask-worker``, enabling spill-to-disk
2530    behavior when running out of memory (:pr:`485`)
2531*   Add ``--pid-file`` option to dask-worker and ``--dask-scheduler`` (:pr:`496`)
2532*   Add ``upload_environment`` function to distribute conda environments.
2533    This is experimental, undocumented, and may change without notice.  (:pr:`494`)
2534*   Add ``workers=`` keyword argument to ``Client.compute`` and ``Client.persist``,
2535    supporting location-restricted workloads with Dask collections (:pr:`484`)
2536*   Add ``upload_environment`` function to distribute conda environments.
2537    This is experimental, undocumented, and may change without notice.  (:pr:`494`)
2538
2539    *   Add optional ``dask_worker=`` keyword to ``client.run`` functions that gets
2540        provided the worker or nanny object
2541    *   Add ``nanny=False`` keyword to ``Client.run``, allowing for the execution
2542        of arbitrary functions on the nannies as well as normal workers
2543
2544
25451.12.2
2546------
2547
2548This release adds some new features and removes dead code
2549
2550*   Publish and share datasets on the scheduler between many clients (:pr:`453`).
2551    See :doc:`publish`.
2552*   Launch tasks from other tasks (experimental) (:pr:`471`). See :doc:`task-launch`.
2553*   Remove unused code, notably the ``Center`` object and older client functions (:pr:`478`)
2554*   ``Executor()`` and ``LocalCluster()`` is now robust to Bokeh's absence (:pr:`481`)
2555*   Removed s3fs and boto3 from requirements.  These have moved to Dask.
2556
25571.12.1
2558------
2559
2560This release is largely a bugfix release, recovering from the previous large
2561refactor.
2562
2563*  Fixes from previous refactor
2564    *  Ensure idempotence across clients
2565    *  Stress test losing scattered data permanently
2566*  IPython fixes
2567    *  Add ``start_ipython_scheduler`` method to Executor
2568    *  Add ``%remote`` magic for workers
2569    *  Clean up code and tests
2570*  Pool connects to maintain reuse and reduce number of open file handles
2571*  Re-implement work stealing algorithm
2572*  Support cancellation of tuple keys, such as occur in dask.arrays
2573*  Start synchronizing against worker data that may be superfluous
2574*  Improve bokeh plots styling
2575    *  Add memory plot tracking number of bytes
2576    *  Make the progress bars more compact and align colors
2577    *  Add workers/ page with workers table, stacks/processing plot, and memory
2578*  Add this release notes document
2579
2580
25811.12.0
2582------
2583
2584This release was largely a refactoring release.  Internals were changed
2585significantly without many new features.
2586
2587*  Major refactor of the scheduler to use transitions system
2588*  Tweak protocol to traverse down complex messages in search of large
2589   bytestrings
2590*  Add dask-submit and dask-remote
2591*  Refactor HDFS writing to align with changes in the dask library
2592*  Executor reconnects to scheduler on broken connection or failed scheduler
2593*  Support sklearn.external.joblib as well as normal joblib
2594
2595.. _`Antoine Pitrou`: https://github.com/pitrou
2596.. _`Olivier Grisel`: https://github.com/ogrisel
2597.. _`Fabian Keller`: https://github.com/bluenote10
2598.. _`Mike DePalatis`: https://github.com/mivade
2599.. _`Matthew Rocklin`: https://github.com/mrocklin
2600.. _`Jim Crist`: https://github.com/jcrist
2601.. _`Ian Hopkinson`: https://github.com/IanHopkinson
2602.. _`@rbubley`: https://github.com/rbubley
2603.. _`Kelvyn Yang`: https://github.com/kelvynyang
2604.. _`Scott Sievert`: https://github.com/stsievert
2605.. _`Xander Johnson`: https://github.com/metasyn
2606.. _`Daniel Li`: https://github.com/li-dan
2607.. _`Brett Naul`: https://github.com/bnaul
2608.. _`Cornelius Riemenschneider`: https://github.com/corni
2609.. _`Alexander Ford`: https://github.com/asford
2610.. _`@rqx`: https://github.com/rqx
2611.. _`Min RK`: https://github.comminrk/
2612.. _`Bruce Merry`: https://github.com/bmerry
2613.. _`Tom Augspurger`: https://github.com/TomAugspurger
2614.. _`Joe Hamman`: https://github.com/jhamman
2615.. _`Thrasibule`: https://github.com/thrasibule
2616.. _`Jacob Tomlinson`: https://github.com/jacobtomlinson
2617.. _`Andy Jones`: https://github.com/andyljones
2618.. _`John Kirkham`: https://github.com/jakirkham
2619.. _`Sven Kreiss`:  https://github.com/svenkreiss
2620.. _`Russ Bubley`: https://github.com/rbubley
2621.. _`Joseph Atkins-Kurkish`: https://github.com/spacerat
2622.. _`Irene Rodriguez`: https://github.com/irenerodriguez
2623.. _`Loïc Estève`: https://github.com/lesteve
2624.. _`Kenneth Koski`: https://github.com/knkski
2625.. _`Tony Lorenzo`: https://github.com/alorenzo175
2626.. _`Henry Doupe`: https://github.com/hdoupe
2627.. _`Marius van Niekerk`: https://github.com/mariusvniekerk
2628.. _`@bmaisson`: https://github.com/bmaisson
2629.. _`Martin Durant`: https://github.com/martindurant
2630.. _`Grant Jenks`: https://github.com/grantjenks
2631.. _`Dror Birkman`: https://github.com/Dror-LightCyber
2632.. _`Dave Hirschfeld`: https://github.com/dhirschfeld
2633.. _`Matt Nicolls`: https://github.com/nicolls1
2634.. _`Phil Tooley`: https://github.com/ptooley
2635.. _`Bartosz Marcinkowski`: https://github.com/bm371613
2636.. _`Aurélien Ponte`: https://github.com/apatlpo
2637.. _`Luke Canavan`: https://github.com/canavandl
2638.. _`Derek Ludwig`: https://github.com/dsludwig
2639.. _`Anderson Banihirwe`: https://github.com/andersy005
2640.. _`Yu Feng`: https://github.com/rainwoodman
2641.. _`Guillaume Eynard-Bontemps`: https://github.com/guillaumeeb
2642.. _`Vladyslav Moisieienkov`: https://github.com/VMois
2643.. _`Chris White`: https://github.com/cicdw
2644.. _`Adam Klein`: https://github.com/adamklein
2645.. _`Mike Gevaert`: https://github.com/mgeplf
2646.. _`Gaurav Sheni`: https://github.com/gsheni
2647.. _`Eric Ma`: https://github.com/ericmjl
2648.. _`Peter Killick`: https://github.com/dkillick
2649.. _`NotSqrt`: https://github.com/NotSqrt
2650.. _`Tom Rochette`: https://github.com/tomzx
2651.. _`Roy Wedge`: https://github.com/rwedge
2652.. _`Michael Wheeler`: https://github.com/mikewheel
2653.. _`Diane Trout`: https://github.com/detrout
2654.. _`tjb900`: https://github.com/tjb900
2655.. _`Stephan Hoyer`: https://github.com/shoyer
2656.. _`Dirk Petersen`: https://github.com/dirkpetersen
2657.. _`Daniel Farrell`: https://github.com/danpf
2658.. _`George Sakkis`: https://github.com/gsakkis
2659.. _`Adam Beberg`: https://github.com/beberg
2660.. _`Marco Neumann`: https://github.com/crepererum
2661.. _`Elliott Sales de Andrade`: https://github.com/QuLogic
2662.. _`Brett Jurman`: https://github.com/ibebrett
2663.. _`Julia Kent`: https://github.com/jukent
2664.. _`Brett Randall`: https://github.com/javabrett
2665.. _`deepthirajagopalan7`: https://github.com/deepthirajagopalan7
2666.. _`Muammar El Khatib`: https://github.com/muammar
2667.. _`Nikos Tsaousis`: https://github.com/tsanikgr
2668.. _`Brian Chu`: https://github.com/bchu
2669.. _`James Bourbeau`: https://github.com/jrbourbeau
2670.. _`amerkel2`: https://github.com/amerkel2
2671.. _`Michael Delgado`: https://github.com/delgadom
2672.. _`Peter Andreas Entschev`: https://github.com/pentschev
2673.. _`condoratberlin`: https://github.com/condoratberlin
2674.. _`K.-Michael Aye`: https://github.com/michaelaye
2675.. _`@plbertrand`: https://github.com/plbertrand
2676.. _`Michael Spiegel`: https://github.com/Spiegel0
2677.. _`Caleb`: https://github.com/calebho
2678.. _`Ben Zaitlen`: https://github.com/quasiben
2679.. _`Benjamin Zaitlen`: https://github.com/quasiben
2680.. _`Manuel Garrido`: https://github.com/manugarri
2681.. _`Magnus Nord`: https://github.com/magnunor
2682.. _`Sam Grayson`: https://github.com/charmoniumQ
2683.. _`Mathieu Dugré`: https://github.com/mathdugre
2684.. _`Christian Hudon`: https://github.com/chrish42
2685.. _`Gabriel Sailer`: https://github.com/sublinus
2686.. _`Pierre Glaser`: https://github.com/pierreglase
2687.. _`Shayan Amani`: https://github.com/SHi-ON
2688.. _`Pav A`: https://github.com/rs2
2689.. _`Mads R. B. Kristensen`: https://github.com/madsbk
2690.. _`Mikhail Akimov`: https://github.com/roveo
2691.. _`Abael He`: https://github.com/abaelhe
2692.. _`byjott`: https://github.com/byjott
2693.. _`Mohammad Noor`: https://github.com/MdSalih
2694.. _`Richard J Zamora`: https://github.com/rjzamora
2695.. _`Arpit Solanki`: https://github.com/arpit1997
2696.. _`Gil Forsyth`: https://github.com/gforsyth
2697.. _`Philipp Rudiger`: https://github.com/philippjfr
2698.. _`Jonathan De Troye`: https://github.com/detroyejr
2699.. _`matthieubulte`: https://github.com/matthieubulte
2700.. _`darindf`: https://github.com/darindf
2701.. _`James A. Bednar`: https://github.com/jbednar
2702.. _`IPetrik`: https://github.com/IPetrik
2703.. _`Simon Boothroyd`: https://github.com/SimonBoothroyd
2704.. _`rockwellw`: https://github.com/rockwellw
2705.. _`Jed Brown`: https://github.com/jedbrown
2706.. _`He Jia`: https://github.com/HerculesJack
2707.. _`Jim Crist-Harif`: https://github.com/jcrist
2708.. _`fjetter`: https://github.com/fjetter
2709.. _`Florian Jetter`: https://github.com/fjetter
2710.. _`Patrick Sodré`: https://github.com/sodre
2711.. _`Stephan Erb`: https://github.com/StephanErb
2712.. _`Benedikt Reinartz`: https://github.com/filmor
2713.. _`Markus Mohrhard`: https://github.com/mmohrhard
2714.. _`Mana Borwornpadungkitti`: https://github.com/potpath
2715.. _`Chrysostomos Nanakos`: https://github.com/cnanakos
2716.. _`Chris Roat`: https://github.com/chrisroat
2717.. _`Jakub Beránek`: https://github.com/Kobzol
2718.. _`kaelgreco`: https://github.com/kaelgreco
2719.. _`Dustin Tindall`: https://github.com/dustindall
2720.. _`Julia Signell`: https://github.com/jsignell
2721.. _`Alex Adamson`: https://github.com/aadamson
2722.. _`Cyril Shcherbin`: https://github.com/shcherbin
2723.. _`Søren Fuglede Jørgensen`: https://github.com/fuglede
2724.. _`Igor Gotlibovych`: https://github.com/ig248
2725.. _`Stan Seibert`: https://github.com/seibert
2726.. _`Davis Bennett`: https://github.com/d-v-b
2727.. _`Lucas Rademaker`: https://github.com/lr4d
2728.. _`Darren Weber`: https://github.com/dazza-codes
2729.. _`Matthias Urlichs`: https://github.com/smurfix
2730.. _`Krishan Bhasin`: https://github.com/KrishanBhasin
2731.. _`Abdulelah Bin Mahfoodh`: https://github.com/abduhbm
2732.. _`jakirkham`: https://github.com/jakirkham
2733.. _`Prasun Anand`: https://github.com/prasunanand
2734.. _`Jonathan J. Helmus`: https://github.com/jjhelmus
2735.. _`Rami Chowdhury`: https://github.com/necaris
2736.. _`crusaderky`: https://github.com/crusaderky
2737.. _`Nicholas Smith`: https://github.com/nsmith-
2738.. _`Dillon Niederhut`: https://github.com/deniederhut
2739.. _`Jonas Haag`: https://github.com/jonashaag
2740.. _`Nils Braun`: https://github.com/nils-braun
2741.. _`Nick Evans`: https://github.com/nre
2742.. _`Scott Sanderson`: https://github.com/ssanderson
2743.. _`Matthias Bussonnier`: https://github.com/Carreau
2744.. _`DomHudson`: https://github.com/DomHudson
2745.. _`Julien Jerphanion`: https://github.com/jjerphan
2746.. _`joshreback`: https://github.com/joshreback
2747.. _`Alexander Clausen`: https://github.com/sk1p
2748.. _`Andrew Fulton`: https://github.com/andrewfulton9
2749.. _`Jendrik Jördening`: https://github.com/jendrikjoe
2750.. _`Jack Xiaosong Xu`: https://github.com/jackxxu
2751.. _`Willi Rath`: https://github.com/willirath
2752.. _`Roberto Panai`: https://github.com/rpanai
2753.. _`Dror Speiser`: https://github.com/drorspei
2754.. _`Poruri Sai Rahul`: https://github.com/rahulporuri
2755.. _`jennalc`: https://github.com/jennalc
2756.. _`Sergey Kozlov`: https://github.com/skozlovf
2757.. _`jochen-ott-by`: https://github.com/jochen-ott-by
2758.. _`Simon Perkins`: https://github.com/sjperkins
2759.. _`GeethanjaliEswaran`: https://github.com/geethanjalieswaran
2760.. _`Timost`: https://github.com/Timost
2761.. _`Ian Rose`: https://github.com/ian-r-rose
2762.. _`marwan116`: https://github.com/marwan116
2763.. _`Bernhard M. Wiedemann`: https://github.com/bmwiedemann
2764.. _`Bruno Pagani`: https://github.com/ArchangeGabriel
2765.. _`selshowk`: https://github.com/selshowk
2766.. _`Ray Bell`: https://github.com/raybellwaves
2767.. _`Casey Clements`: https://github.com/caseyclements
2768.. _`Ben Greiner`: https://github.com/bnavigator
2769.. _`Fabian Gebhart`: https://github.com/fgebhart
2770.. _`Sultan Orazbayev`: https://github.com/SultanOrazbayev
2771.. _`Doug Davis`: https://github.com/douglasdavis
2772.. _`cameron16`: https://github.com/cameron16
2773.. _`Gerald`: https://github.com/gerald732
2774.. _`Charles Blackmon-Luca`: https://github.com/charlesbluca
2775.. _`Marcos Moyano`: https://github.com/marcosmoyano
2776.. _`James Lamb`: https://github.com/jameslamb
2777.. _`Hristo Georgiev`: https://github.com/hristog
2778.. _`Matteo De Wint`: https://github.com/mdwint
2779.. _`Naty Clementi`: https://github.com/ncclementi
2780.. _`Nathan Danielsen`: https://github.com/ndanielsen
2781.. _`Torsten Wörtwein`: https://github.com/twoertwein
2782.. _`ArtinSarraf`: https://github.com/ArtinSarraf
2783.. _`Gabe Joseph`: https://github.com/gjoseph92
2784.. _`Freyam Mehta`: https://github.com/freyam
2785.. _`gerrymanoim`: https://github.com/gerrymanoim
2786.. _`Bryan Van de Ven`: https://github.com/bryevdv
2787.. _`David Chudzicki`: https://github.com/dchudz
2788.. _`Walt Woods`: https://github.com/wwoods
2789.. _`Tom Forbes`: https://github.com/orf
2790.. _`Michael Adkins`: https://github.com/madkinsz
2791.. _`Genevieve Buckley`: https://github.com/GenevieveBuckley
2792.. _`Erik Welch`: https://github.com/eriknw
2793