Source: mplcursors Version: 0.3-2 Severity: serious Justification: FTBFS on amd64 Tags: bullseye sid ftbfs Usertags: ftbfs-20200802 ftbfs-bullseye
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > dpkg-buildpackage > ----------------- > > Command: dpkg-buildpackage -us -uc -sa -rfakeroot > dpkg-buildpackage: info: source package mplcursors > dpkg-buildpackage: info: source version 0.3-2 > dpkg-buildpackage: info: source distribution unstable > dpkg-buildpackage: info: source changed by Sudip Mukherjee > <sudipm.mukher...@gmail.com> > dpkg-source --before-build . > dpkg-buildpackage: info: host architecture amd64 > dpkg-source: info: using options from mplcursors-0.3/debian/source/options: > --extend-diff-ignore=_version.py > debian/rules clean > dh clean --with python3 --buildsystem=pybuild > dh_auto_clean -O--buildsystem=pybuild > I: pybuild base:217: python3.8 setup.py clean > running clean > removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build' (and > everything under it) > 'build/bdist.linux-x86_64' does not exist -- can't clean it > 'build/scripts-3.8' does not exist -- can't clean it > dh_autoreconf_clean -O--buildsystem=pybuild > dh_clean -O--buildsystem=pybuild > dpkg-source -b . > dpkg-source: info: using options from mplcursors-0.3/debian/source/options: > --extend-diff-ignore=_version.py > dpkg-source: info: using source format '3.0 (quilt)' > dpkg-source: info: building mplcursors using existing > ./mplcursors_0.3.orig.tar.gz > dpkg-source: info: building mplcursors in mplcursors_0.3-2.debian.tar.xz > dpkg-source: info: building mplcursors in mplcursors_0.3-2.dsc > debian/rules binary > dh binary --with python3 --buildsystem=pybuild > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > I: pybuild base:217: python3.8 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > I: pybuild base:217: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors > copying lib/mplcursors/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors > copying lib/mplcursors/_mplcursors.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors > copying lib/mplcursors/_version.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors > copying lib/mplcursors/_pick_info.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build/mplcursors > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:217: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build; python3.8 -m pytest > tests > ============================= test session starts > ============================== > platform linux -- Python 3.8.5, pytest-4.6.11, py-1.8.1, pluggy-0.13.0 > rootdir: /<<PKGBUILDDIR>>, inifile: setup.cfg > collected 56 items > > tests/test_mplcursors.py .......F..........FF....F...F.F................ [ > 83%] > ........s > [100%] > > =================================== FAILURES > =================================== > ______________________________ test_scatter_text > _______________________________ > > ax = <AxesSubplot:> > > def test_scatter_text(ax): > ax.scatter([0, 1], [0, 1], c=[2, 3]) > cursor = mplcursors.cursor() > _process_event("__mouse_click__", ax, (0, 0), 1) > > assert cursor.selections[0].annotation.get_text() == "x=0\ny=0\n[2]" > E AssertionError: assert 'x=0.000\ny=0.000\n[2.000]' == 'x=0\ny=0\n[2]' > E - x=0.000 > E - y=0.000 > E - [2.000] > E + x=0 > E + y=0 > E + [2] > > tests/test_mplcursors.py:166: AssertionError > ______________________________ test_image[lower] > _______________________________ > > ax = <AxesSubplot:>, origin = 'lower' > > @pytest.mark.parametrize("origin", ["lower", "upper"]) > def test_image(ax, origin): > array = np.arange(6).reshape((3, 2)) > ax.imshow(array, origin=origin) > > cursor = mplcursors.cursor() > # Annotation text includes image value. > _process_event("__mouse_click__", ax, (.25, .25), 1) > sel, = cursor.selections > assert (_parse_annotation(sel, r"x=(.*)\ny=(.*)\n\[0\]") > == approx((.25, .25))) > # Moving around. > _process_event("key_press_event", ax, (.123, .456), "shift+right") > sel, = cursor.selections > > assert sel.annotation.get_text() == "x=1\ny=0\n[1]" > E AssertionError: assert 'x=1.000\ny=0.000\n[1]' == 'x=1\ny=0\n[1]' > E - x=1.000 > E - y=0.000 > E + x=1 > E + y=0 > E [1] > > tests/test_mplcursors.py:268: AssertionError > ______________________________ test_image[upper] > _______________________________ > > ax = <AxesSubplot:>, origin = 'upper' > > @pytest.mark.parametrize("origin", ["lower", "upper"]) > def test_image(ax, origin): > array = np.arange(6).reshape((3, 2)) > ax.imshow(array, origin=origin) > > cursor = mplcursors.cursor() > # Annotation text includes image value. > _process_event("__mouse_click__", ax, (.25, .25), 1) > sel, = cursor.selections > assert (_parse_annotation(sel, r"x=(.*)\ny=(.*)\n\[0\]") > == approx((.25, .25))) > # Moving around. > _process_event("key_press_event", ax, (.123, .456), "shift+right") > sel, = cursor.selections > > assert sel.annotation.get_text() == "x=1\ny=0\n[1]" > E AssertionError: assert 'x=1.000\ny=0.000\n[1]' == 'x=1\ny=0\n[1]' > E - x=1.000 > E - y=0.000 > E + x=1 > E + y=0 > E [1] > > tests/test_mplcursors.py:268: AssertionError > ______________________ test_quiver_and_barbs[Axes.quiver] > ______________________ > > ax = <AxesSubplot:>, plotter = <function Axes.quiver at 0x7f3baefd1310> > > @pytest.mark.parametrize("plotter", [Axes.quiver, Axes.barbs]) > def test_quiver_and_barbs(ax, plotter): > plotter(ax, range(3), range(3)) > cursor = mplcursors.cursor() > _process_event("__mouse_click__", ax, (.5, 0), 1) > assert len(cursor.selections) == 0 > _process_event("__mouse_click__", ax, (1, 0), 1) > > assert cursor.selections[0].annotation.get_text() == "x=1\ny=0\n(1, > > 1)" > E AssertionError: assert 'x=1.000\ny=0.0000\n(1, 1)' == 'x=1\ny=0\n(1, > 1)' > E - x=1.000 > E - y=0.0000 > E + x=1 > E + y=0 > E (1, 1) > > tests/test_mplcursors.py:342: AssertionError > ________________________________ test_errorbar > _________________________________ > > ax = <AxesSubplot:> > > def test_errorbar(ax): > ax.errorbar(range(2), range(2), [(1, 1), (1, 2)]) > cursor = mplcursors.cursor() > assert len(cursor.artists) == 1 > _process_event("__mouse_click__", ax, (0, 2), 1) > assert len(cursor.selections) == 0 > _process_event("__mouse_click__", ax, (.5, .5), 1) > assert cursor.selections[0].target == approx((.5, .5)) > assert (_parse_annotation(cursor.selections[0], "x=(.*)\ny=(.*)") > == approx((.5, .5))) > _process_event("__mouse_click__", ax, (0, 1), 1) > assert cursor.selections[0].target == approx((0, 0)) > > assert cursor.selections[0].annotation.get_text() == "x=0\ny=$0\\pm1$" > E AssertionError: assert 'x=0.000\ny=$....00}^{+1.00}$' == > 'x=0\ny=$0\\pm1$' > E - x=0.000 > E - y=$0.00_{+−1.00}^{+1.00}$ > E + x=0 > E + y=$0\pm1$ > > tests/test_mplcursors.py:370: AssertionError > __________________________________ test_stem > ___________________________________ > > ax = <AxesSubplot:> > > def test_stem(ax): > with pytest.warns(None): # stem use_line_collection API change. > ax.stem([1, 2, 3]) > cursor = mplcursors.cursor() > assert len(cursor.artists) == 1 > > _process_event("__mouse_click__", ax, (.5, .5), 1) > > tests/test_mplcursors.py:390: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/test_mplcursors.py:63: in _process_event > _process_event("button_press_event", ax, coords, *args) > tests/test_mplcursors.py:74: in _process_event > ax.figure.canvas.callbacks.process(name, event) > /usr/lib/python3/dist-packages/matplotlib/cbook/__init__.py:224: in process > func(*args, **kwargs) > mplcursors/_mplcursors.py:485: in _nonhover_handler > self._on_select_button_press(event) > mplcursors/_mplcursors.py:520: in _on_select_button_press > pi = _pick_info.compute_pick(artist, per_axes_event[artist.axes]) > /usr/lib/python3.8/functools.py:875: in wrapper > return dispatch(args[0].__class__)(*args, **kw) > mplcursors/_pick_info.py:419: in _ > return compute_pick(artist.container, event) > /usr/lib/python3.8/functools.py:875: in wrapper > return dispatch(args[0].__class__)(*args, **kw) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > container = <StemContainer object of 3 artists> > event = <matplotlib.backend_bases.MouseEvent object at 0x7f3bae3a9340> > > @compute_pick.register(StemContainer) > def _(container, event): > sel = compute_pick(container.markerline, event) > if sel: > return sel > idx_sel = min(filter(lambda idx_sel: idx_sel[1] is not None, > ((idx, compute_pick(line, event)) > > for idx, line in > > enumerate(container.stemlines))), > key=lambda idx_sel: idx_sel[1].dist, default=None) > E TypeError: 'LineCollection' object is not iterable > > mplcursors/_pick_info.py:469: TypeError > =============== 6 failed, 49 passed, 1 skipped in 27.28 seconds > ================ > E: pybuild pybuild:352: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_mplcursors/build; python3.8 -m pytest > tests > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.8 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2020/08/02/mplcursors_0.3-2_unstable.log A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! About the archive rebuild: The rebuild was done on EC2 VM instances from Amazon Web Services, using a clean, minimal and up-to-date chroot. Every failed build was retried once to eliminate random failures.