- Update to version 2022.11.1 ## Enhancements * Restrict bokeh=3 support (GH#7329) Gabe Joseph (ignored in rpm fixed by bokek 3.0.2, see gh#dask/dask#9659) * Respect death timeout when waiting for scheduler file (GH#7296) Florian Jetter * Always raise exception if P2PShuffle s send fails (GH#7317) Hendrik Makait ## Maintenance * Remove exception handling from transitions (GH#7316) crusaderky * Turn private functions into private SchedulerState methods (GH#7260) Hendrik Makait * Bump toolz minimum version to 0.10.0 (GH#7309) Sam Grayson - Release 2022.11.0 ## Note * This release changes the default scheduling mode to use queuing. This will significantly reduce cluster memory use in most cases, and generally improve stability and performance. Learn more here and please provide any feedback on this discussion. * In rare cases, this could make some workloads slower. See the documentation for more information, and how to switch back to the old mode. ## New Features * Add ForwardOutput worker plugin to forward stdout and stderr to client. (GH#7297) Hendrik Makait * Duration counters on prefix level (GH#7288) Florian Jetter * Include button for launching JupyterLab layout in repr (GH#7218) Ian Rose ## Enhancements * Support MIG parsing during CUDA context creation in UCX initialization (GH#6720) Peter Andreas Entschev * Handle /metrics endpoint without prometheus-client installed (GH#7234) Hendrik Makait * Add support for unpacking namedtuples in remote data (GH#7282) Andrew * Enable queuing by default (GH#7279) Florian Jetter * Fix exists->``exist`` typo in scheduler error messages (GH#7281) Matthew Plough * If there’s an exception in the Client async context manager body then close fast (GH#6920) Thomas Grainger ## Bug Fixes * Ensure category is optional when logging "warn" events (GH#7169) James Bourbeau * Edge and impossible transitions to memory (GH#7205) crusaderky ## Maintenance * Allow bokeh=3 (GH#5648) James Bourbeau * Fix typos in P2P shuffle code (GH#7304) Hendrik Makait * Reenable test_bad_disk (GH#7300) Florian Jetter * Reduce max-runs in test reports (GH#7299) Florian Jetter * Revert idle classification when worker-saturation is set (GH#7278) Florian Jetter * Fix flaky deadline_expiration (GH#7287) Florian Jetter * Rewrite of P2P control flow (GH#7268) Florian Jetter * Bump minimum bokeh version to 2.4.2 (GH#7271) James Bourbeau * Remove deprecated code calls to IOLoop.make_current() (GH#7240) Thomas Grainger * Improved test for balancing expensive tasks (GH#7272) Hendrik Makait * Refactor semaphore._Watch into general-purpose Deadline utility (GH#7238) Hendrik Makait * Require Click 7.0+ (GH#7226) jakirkham * Drop tests (GH#7269) Hendrik Makait * Replace test_(do_not_)steal_communication_heavy_tasks tests with more robust versions (GH#7243) Hendrik Makait * xfail test_bad_disk (GH#7265) crusaderky * Move transition_log from Scheduler to SchedulerState (GH#7254) crusaderky * Remove Scheduler.log (GH#7258) crusaderky * Use latest pickle (GH#5826) jakirkham * Polish parsing of worker-saturation from config (GH#7255) crusaderky * Avoid expensive occupancy calculation when unused (GH#7257) Gabe Joseph * Un-skip test_nested_compute (GH#7247) Gabe Joseph * Review test_do_not_steal_communication_heavy_tasks (GH#7250) crusaderky * Fix test_stress_creation_and_deletion (GH#7215) crusaderky * Raise exceptions in Server.handle_stream instead of swallowing/logging (GH#7162) Hendrik Makait * Fix _update_scheduler_info hanging failed tests (GH#7225) Gabe Joseph * Bump xarray-contrib/ci-trigger from 1.1 to 1.2 (GH#7232) - Release 2022.10.2 * Reverted a bug where Bokeh was accidentally made non-optional (GH#7230) Oliver Holworthy * Schedule a queued task when a task secedes (GH#7224) Gabe Joseph * This was a hotfix release - Release 2022.10.1 ## New Features * Add Client.restart_workers method (GH#7154) James Bourbeau * Implement PackageInstall plugin for pip and conda (GH#7126) Hendrik Makait ## Enhancements * Add prometheus collector for work-stealing (GH#7206) Hendrik Makait * Track reason of workers closing and restarting (GH#7166) Hendrik Makait * Show no-worker on task progress bar (GH#7171) Florian Jetter * Set OPENBLAS_NUM_THREADS by default (GH#7177) James Bourbeau * Optionally provide local directory to data constructor (GH#7153) Lawrence Mitchell * Introduce distributed.comm.ucx.environment config slot (GH#7164) Lawrence Mitchell * Log information about memory limit (GH#7160) Florian Jetter * Improve log messages on scheduler for restart (GH#7150) Florian Jetter * More comprehensive WorkerState task counters (GH#7167) crusaderky ## Bug Fixes * Update minimum bokeh version message (GH#7172) James Bourbeau * Revamped implementations of remote print() and warn(), fixing #7095 (GH#7129) Max Bane ## Maintenance * Temporarily restrict bokeh<3 (GH#7219) James Bourbeau * Make Scheduler.reschedule private (GH#7216) crusaderky * Fix decide_worker_rootish_queuing_disabled assert (GH#7065) Gabe Joseph * Fix flaky test_include_communication_in_occupancy (GH#7212) Gabe Joseph * Do not raise on leaked websockets (GH#7199) Florian Jetter * Update nightly recipes with CLI tests, dependency changes (GH#7201) Charles Blackmon-Luca * Make p2p shuffle submodules private (GH#7186) Florian Jetter * Backport tornado PeriodicCallback (GH#7165) Florian Jetter * Fix mypy failure on CI (GH#7198) Florian Jetter * User a layer for p2p shuffle (GH#7180) Florian Jetter * Type annotations for shuffle (GH#7185) Florian Jetter * Do not close worker on comm error in heartbeat (GH#7163) Hendrik Makait * Errors when setting TCP timeouts log as error (GH#7161) Florian Jetter * Remove incorrect advice from pre-commit config (GH#7159) crusaderky * Use functionalities network for codecov uploader (GH#7148) Florian Jetter * Use counter metric type where appropriate, incoming_count was reporting bytes (GH#7125) Nat Tabris - Add allow-bokeh3.patch -- raise upper bokeh version, reverts part of gh#dask/distributed#7329, see also gh#dask/dask#9659 - Replace support-tornado-6-2.patch with distributed-pr7286-tornado-6-2.patch -- gh#dask/distributed#7286 OBS-URL: https://build.opensuse.org/request/show/1036962 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-distributed?expand=0&rev=124
210 lines
7.7 KiB
RPMSpec
210 lines
7.7 KiB
RPMSpec
#
|
|
# spec file
|
|
#
|
|
# Copyright (c) 2022 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define psuffix %{nil}
|
|
%global flavor @BUILD_FLAVOR@%{nil}
|
|
%if "%{flavor}" == "test-py38"
|
|
%define psuffix -test-py38
|
|
%define skip_python39 1
|
|
%define skip_python310 1
|
|
%bcond_without test
|
|
%endif
|
|
%if "%{flavor}" == "test-py39"
|
|
%define psuffix -test-py39
|
|
%define skip_python38 1
|
|
%define skip_python310 1
|
|
%bcond_without test
|
|
%endif
|
|
%if "%{flavor}" == "test-py310"
|
|
%define psuffix -test-py310
|
|
%define skip_python38 1
|
|
%define skip_python39 1
|
|
%bcond_without test
|
|
%endif
|
|
%if "%{flavor}" == ""
|
|
%bcond_with test
|
|
%endif
|
|
# use this to run tests with xdist in parallel, unfortunately fails server side
|
|
%bcond_with paralleltests
|
|
|
|
Name: python-distributed%{psuffix}
|
|
# ===> Note: python-dask MUST be updated in sync with python-distributed! <===
|
|
Version: 2022.11.1
|
|
Release: 0
|
|
Summary: Library for distributed computing with Python
|
|
License: BSD-3-Clause
|
|
URL: https://distributed.dask.org
|
|
Source: https://github.com/dask/distributed/archive/refs/tags/%{version}.tar.gz#/distributed-%{version}-gh.tar.gz
|
|
Source99: python-distributed-rpmlintrc
|
|
# PATCH-FIX-UPSTREAM allow-bokeh3.patch -- raise upper bokeh version, reverts part of gh#dask/distributed#7329, see also gh#dask/dask#9659
|
|
Patch1: allow-bokeh3.patch
|
|
# PATCH-FIX-UPSTREAM distributed-pr7286-tornado-6-2.patch gh#dask/distributed#7286
|
|
Patch2: distributed-pr7286-tornado-6-2.patch
|
|
# PATCH-FIX-OPENSUSE distributed-ignore-off.patch -- ignore that we can't probe addresses on obs, code@bnavigator.de
|
|
Patch3: distributed-ignore-offline.patch
|
|
# PATCH-FIX-OPENSUSE distributed-ignore-thread-leaks.patch -- ignore leaking threads on obs, code@bnavigator.de
|
|
Patch4: distributed-ignore-thread-leaks.patch
|
|
BuildRequires: %{python_module base >= 3.8}
|
|
BuildRequires: %{python_module setuptools}
|
|
BuildRequires: fdupes
|
|
BuildRequires: python-rpm-macros
|
|
Requires: python-PyYAML
|
|
Requires: python-certifi
|
|
Requires: python-click >= 7.0
|
|
Requires: python-cloudpickle >= 1.5.0
|
|
Requires: python-dask = %{version}
|
|
Requires: python-locket >= 1.0.0
|
|
Requires: python-msgpack >= 0.6.0
|
|
Requires: python-packaging >= 20.0
|
|
Requires: python-psutil >= 5.0
|
|
Requires: python-sortedcontainers
|
|
Requires: python-tblib
|
|
Requires: python-toolz >= 0.10.0
|
|
Requires: python-tornado >= 6.2
|
|
Requires: python-urllib3
|
|
Requires: python-zict >= 0.1.3
|
|
Requires(post): update-alternatives
|
|
Requires(postun):update-alternatives
|
|
BuildArch: noarch
|
|
%if %{with test}
|
|
BuildRequires: %{python_module bokeh >= 2.4.2}
|
|
BuildRequires: %{python_module dask-complete = %{version}}
|
|
BuildRequires: %{python_module distributed = %{version}}
|
|
BuildRequires: %{python_module ipykernel}
|
|
BuildRequires: %{python_module ipython}
|
|
BuildRequires: %{python_module jupyter_client}
|
|
BuildRequires: %{python_module pytest-rerunfailures}
|
|
BuildRequires: %{python_module pytest-timeout}
|
|
BuildRequires: %{python_module pytest}
|
|
BuildRequires: %{python_module requests}
|
|
BuildRequires: %{python_module sparse}
|
|
%if %{with paralleltests}
|
|
BuildRequires: %{python_module pytest-xdist}
|
|
%endif
|
|
%endif
|
|
%python_subpackages
|
|
|
|
%description
|
|
Dask.distributed is a library for distributed computing in Python. It
|
|
extends both the concurrent.futures and dask APIs to moderate sized
|
|
clusters.
|
|
|
|
%prep
|
|
%autosetup -p1 -n distributed-%{version}
|
|
|
|
sed -e '/--durations=20/d' \
|
|
-e '/--color=yes/d' \
|
|
-e 's/timeout_method = thread/timeout_method = signal/' \
|
|
-i setup.cfg
|
|
|
|
%build
|
|
%if ! %{with test}
|
|
%python_build
|
|
%endif
|
|
|
|
%install
|
|
%if ! %{with test}
|
|
%python_install
|
|
%python_clone -a %{buildroot}%{_bindir}/dask-ssh
|
|
%python_clone -a %{buildroot}%{_bindir}/dask-scheduler
|
|
%python_clone -a %{buildroot}%{_bindir}/dask-worker
|
|
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
|
%endif
|
|
|
|
%if %{with test}
|
|
%check
|
|
# test local src dir, not installed path: looks for test certificates and not installed test modules
|
|
export PYTHONPATH=":x"
|
|
# disable profiling completely -- https://github.com/dask/distributed/pull/6490
|
|
sed '/enable profiling/ {s/enabled: True/enabled: False/}' -i distributed/distributed.yaml
|
|
# make sure the change was successful, this is only for the tests, we didn't patch any installed source
|
|
grep 'enabled: False .*enable profiling' distributed/distributed.yaml
|
|
|
|
# we obviously don't test a git repo
|
|
donttest="test_git_revision"
|
|
# logger error
|
|
donttest+=" or test_version_warning_in_cluster"
|
|
# invalid task state
|
|
donttest+=" or test_fail_to_pickle_execute_2"
|
|
|
|
# Some tests randomly fail server-side -- too slow for obs (?)
|
|
# see also https://github.com/dask/distributed/issues/5818
|
|
donttest+=" or (test_asyncprocess and (test_exit_callback or test_simple))"
|
|
donttest+=" or (test_client and test_repr)"
|
|
donttest+=" or (test_client and test_profile_server)"
|
|
donttest+=" or (test_metrics and test_wall_clock)"
|
|
donttest+=" or (test_priorities and test_compute)"
|
|
donttest+=" or (test_resources and test_prefer_constrained)"
|
|
donttest+=" or (test_steal and test_steal_twice)"
|
|
donttest+=" or (test_variable and test_variable_in_task)"
|
|
donttest+=" or (test_worker and test_worker_reconnects_mid_compute)"
|
|
# server-side fail due to the non-network warning in a subprocess where the patched filter does not apply
|
|
donttest+=" or (test_client and test_quiet_close_process)"
|
|
if [[ $(getconf LONG_BIT) -eq 32 ]]; then
|
|
# OverflowError -- https://github.com/dask/distributed/issues/5252
|
|
donttest+=" or test_ensure_spilled_immediately"
|
|
donttest+=" or test_value_raises_during_spilling"
|
|
donttest+=" or test_fail_to_pickle_execute_1"
|
|
# https://github.com/dask/distributed/issues/7175
|
|
donttest+=" or (test_sizeof_error and larger)"
|
|
fi
|
|
|
|
%if %{with paralleltests}
|
|
# not fully supported parallel test suite: https://github.com/dask/distributed/issues/5186
|
|
# works locally, but fails with too many tests server-side
|
|
notparallel="rebalance or memory or upload"
|
|
notparallel+=" or test_open_close_many_workers"
|
|
notparallel+=" or test_recreate_error_array"
|
|
notparallel+=" or (test_preload and test_web_preload)"
|
|
# Recursion error, https://github.com/dask/distributed/issues/6406
|
|
notparallel+=" or test_stack_overflow"
|
|
#
|
|
notparallel+=" or test_dashboard_host"
|
|
notparallel+=" or test_close_properly"
|
|
notparallel+=" or test_popen_timeout"
|
|
notparallel+=" or test_plugin_internal_exception"
|
|
notparallel+=" or test_runspec_regression_sync"
|
|
notparallel+=" or test_client_async_before_loop_starts"
|
|
|
|
%pytest distributed/tests -m "not avoid_ci" -n auto -k "not ($notparallel or $donttest ${$python_donttest})"
|
|
%pytest distributed/tests -m "not avoid_ci" -k "($notparallel) and not ($donttest ${$python_donttest})"
|
|
%else
|
|
%pytest distributed/tests -m "not avoid_ci" -k "not ($donttest ${$python_donttest})" --reruns 3 --reruns-delay 3
|
|
%endif
|
|
%endif
|
|
|
|
%if ! %{with test}
|
|
%post
|
|
%python_install_alternative dask-ssh dask-scheduler dask-worker
|
|
|
|
%postun
|
|
%python_uninstall_alternative dask-ssh
|
|
|
|
%files %{python_files}
|
|
%doc README.rst
|
|
%license LICENSE.txt
|
|
%python_alternative %{_bindir}/dask-ssh
|
|
%python_alternative %{_bindir}/dask-scheduler
|
|
%python_alternative %{_bindir}/dask-worker
|
|
%{python_sitelib}/distributed
|
|
%{python_sitelib}/distributed-%{version}*-info
|
|
|
|
%endif
|
|
|
|
%changelog
|