Source: tinyarray Version: 1.2.3-2 Severity: serious Justification: FTBFS on arm64 Tags: bullseye sid ftbfs Usertags: ftbfs-20201205 ftbfs-bullseye
Hi, During a rebuild of all packages in sid, your package failed to build on arm64 (I don't know if it also fails on amd64). Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > dh_auto_test -- --test-pytest --test-args=../../../test_tinyarray.py > I: pybuild base:232: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_tinyarray/build; python3.8 -m pytest > ../../../test_tinyarray.py > ============================= test session starts > ============================== > platform linux -- Python 3.8.6, pytest-4.6.11, py-1.9.0, pluggy-0.13.0 > rootdir: /<<PKGBUILDDIR>> > collected 18 items > > ../../../test_tinyarray.py ..F............... > [100%] > > =================================== FAILURES > =================================== > _______________________________ test_conversion > ________________________________ > > def test_conversion(): > for src_dtype in dtypes: > for dest_dtype in dtypes: > src = ta.zeros(3, src_dtype) > tsrc = tuple(src) > npsrc = np.array(tsrc) > impossible = src_dtype is complex and dest_dtype in [int, > float] > for s in [src, tsrc, npsrc]: > if impossible: > raises(TypeError, ta.array, s, dest_dtype) > else: > dest = ta.array(s, dest_dtype) > assert isinstance(dest[0], dest_dtype) > assert src == dest > > # Check correct overflow detection. We assume a typical architecture: > # sys.maxsize is also the maximum size of an integer held in a > tinyarray > # array, and that Python floats are double-precision IEEE numbers. > for n in [10**100, -10**100, 123 * 10**20, -2 * sys.maxsize, > sys.maxsize + 1, np.array(sys.maxsize + 1), > -sys.maxsize - 2]: > raises(OverflowError, ta.array, n, int) > > # Check that values just below the threshold of overflow work. > for n in [sys.maxsize, np.array(sys.maxsize), > -sys.maxsize - 1, np.array(-sys.maxsize - 1)]: > ta.array(n, int) > > # If tinyarray integers are longer than 32 bit, numbers around the > maximal > # and minimal values cannot be represented exactly as double precision > # floating point numbers. Check correct overflow detection also in > this > # case. > n = sys.maxsize + 1 > for dtype in [float, np.float64, np.float32]: > # The following assumes that n can be represented exactly. This > should > # be true for typical (all?) architectures. > assert dtype(n) == n > for factor in [1, 1.0001, 1.1, 2, 5, 123, 1e5]: > > for x in [n, min(-n-1, np.nextafter(-n, -np.inf, > dtype=dtype))]: > x = dtype(factor) * dtype(x) > raises(OverflowError, ta.array, x, int) > if dtype is not float: > # This solicitates the buffer interface. > x = np.array(x) > assert(x.dtype == dtype) > > raises(OverflowError, ta.array, x, int) > E Failed: DID NOT RAISE <class 'OverflowError'> > > ../../../test_tinyarray.py:200: Failed > =============================== warnings summary > =============================== > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > /<<PKGBUILDDIR>>/test_tinyarray.py:115: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > b = ta.array(np.matrix(a)) > > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > /<<PKGBUILDDIR>>/test_tinyarray.py:117: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > assert b == np.matrix(a) > > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > /<<PKGBUILDDIR>>/test_tinyarray.py:134: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > b = np.matrix(l) > > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > /<<PKGBUILDDIR>>/test_tinyarray.py:441: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > assert_equal(ta.matrix(a), np.matrix(a)) > > -- Docs: https://docs.pytest.org/en/latest/warnings.html > =============== 1 failed, 17 passed, 72 warnings in 0.67 seconds > =============== > E: pybuild pybuild:353: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.8_tinyarray/build; python3.8 -m pytest > ../../../test_tinyarray.py > I: pybuild base:232: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_tinyarray/build; python3.9 -m pytest > ../../../test_tinyarray.py > ============================= test session starts > ============================== > platform linux -- Python 3.9.1rc1, pytest-4.6.11, py-1.9.0, pluggy-0.13.0 > rootdir: /<<PKGBUILDDIR>> > collected 18 items > > ../../../test_tinyarray.py ..F............... > [100%] > > =================================== FAILURES > =================================== > _______________________________ test_conversion > ________________________________ > > def test_conversion(): > for src_dtype in dtypes: > for dest_dtype in dtypes: > src = ta.zeros(3, src_dtype) > tsrc = tuple(src) > npsrc = np.array(tsrc) > impossible = src_dtype is complex and dest_dtype in [int, > float] > for s in [src, tsrc, npsrc]: > if impossible: > raises(TypeError, ta.array, s, dest_dtype) > else: > dest = ta.array(s, dest_dtype) > assert isinstance(dest[0], dest_dtype) > assert src == dest > > # Check correct overflow detection. We assume a typical architecture: > # sys.maxsize is also the maximum size of an integer held in a > tinyarray > # array, and that Python floats are double-precision IEEE numbers. > for n in [10**100, -10**100, 123 * 10**20, -2 * sys.maxsize, > sys.maxsize + 1, np.array(sys.maxsize + 1), > -sys.maxsize - 2]: > raises(OverflowError, ta.array, n, int) > > # Check that values just below the threshold of overflow work. > for n in [sys.maxsize, np.array(sys.maxsize), > -sys.maxsize - 1, np.array(-sys.maxsize - 1)]: > ta.array(n, int) > > # If tinyarray integers are longer than 32 bit, numbers around the > maximal > # and minimal values cannot be represented exactly as double precision > # floating point numbers. Check correct overflow detection also in > this > # case. > n = sys.maxsize + 1 > for dtype in [float, np.float64, np.float32]: > # The following assumes that n can be represented exactly. This > should > # be true for typical (all?) architectures. > assert dtype(n) == n > for factor in [1, 1.0001, 1.1, 2, 5, 123, 1e5]: > > for x in [n, min(-n-1, np.nextafter(-n, -np.inf, > dtype=dtype))]: > x = dtype(factor) * dtype(x) > raises(OverflowError, ta.array, x, int) > if dtype is not float: > # This solicitates the buffer interface. > x = np.array(x) > assert(x.dtype == dtype) > > raises(OverflowError, ta.array, x, int) > E Failed: DID NOT RAISE <class 'OverflowError'> > > ../../../test_tinyarray.py:200: Failed > =============================== warnings summary > =============================== > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > /<<PKGBUILDDIR>>/test_tinyarray.py:115: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > b = ta.array(np.matrix(a)) > > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > test_tinyarray.py::test_array > /<<PKGBUILDDIR>>/test_tinyarray.py:117: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > assert b == np.matrix(a) > > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > test_tinyarray.py::test_matrix > /<<PKGBUILDDIR>>/test_tinyarray.py:134: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > b = np.matrix(l) > > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > test_tinyarray.py::test_other_scalar_types > /<<PKGBUILDDIR>>/test_tinyarray.py:441: PendingDeprecationWarning: the > matrix subclass is not the recommended way to represent matrices or deal with > linear algebra (see > https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html). Please > adjust your code to use regular ndarray. > assert_equal(ta.matrix(a), np.matrix(a)) > > -- Docs: https://docs.pytest.org/en/latest/warnings.html > =============== 1 failed, 17 passed, 72 warnings in 0.62 seconds > =============== > E: pybuild pybuild:353: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_tinyarray/build; python3.9 -m pytest > ../../../test_tinyarray.py > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.8 > 3.9" --test-pytest --test-args=../../../test_tinyarray.py returned exit code > 13 The full build log is available from: http://qa-logs.debian.net/2020/12/05/tinyarray_1.2.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! If you reassign this bug to another package, please marking it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with me so that we can identify if something relevant changed in the meantime. 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.