Source: textdistance
Version: 4.2.0-2
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20211023 ftbfs-bookworm

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 textdistance
> dpkg-buildpackage: info: source version 4.2.0-2
> dpkg-buildpackage: info: source distribution unstable
> dpkg-buildpackage: info: source changed by Julian Gilbey <j...@debian.org>
>  dpkg-source --before-build .
> dpkg-buildpackage: info: host architecture amd64
>  debian/rules clean
> dh clean --buildsystem=pybuild
>    dh_auto_clean -O--buildsystem=pybuild
> I: pybuild base:232: python3.9 setup.py clean 
> /usr/lib/python3/dist-packages/setuptools/dist.py:717: UserWarning: Usage of 
> dash-separated 'description-file' will not be supported in future versions. 
> Please use the underscore name 'description_file' instead
>   warnings.warn(
> running clean
> removing '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build' (and everything under 
> it)
> 'build/bdist.linux-x86_64' does not exist -- can't clean it
> 'build/scripts-3.9' 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 source format '3.0 (quilt)'
> dpkg-source: info: building textdistance using existing 
> ./textdistance_4.2.0.orig.tar.gz
> dpkg-source: info: using patch list from debian/patches/series
> dpkg-source: info: building textdistance in textdistance_4.2.0-2.debian.tar.xz
> dpkg-source: info: building textdistance in textdistance_4.2.0-2.dsc
>  debian/rules binary
> dh binary --buildsystem=pybuild
>    dh_update_autotools_config -O--buildsystem=pybuild
>    dh_autoreconf -O--buildsystem=pybuild
>    dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:232: python3.9 setup.py config 
> /usr/lib/python3/dist-packages/setuptools/dist.py:717: UserWarning: Usage of 
> dash-separated 'description-file' will not be supported in future versions. 
> Please use the underscore name 'description_file' instead
>   warnings.warn(
> running config
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:232: /usr/bin/python3 setup.py build 
> /usr/lib/python3/dist-packages/setuptools/dist.py:717: UserWarning: Usage of 
> dash-separated 'description-file' will not be supported in future versions. 
> Please use the underscore name 'description_file' instead
>   warnings.warn(
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
> copying textdistance/libraries.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
> copying textdistance/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
> copying textdistance/benchmark.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
> copying textdistance/utils.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/simple.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/__init__.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/compression_based.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/token_based.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/phonetic.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/sequence_based.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/vector_based.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/edit_based.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/algorithms/base.py -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance/algorithms
> copying textdistance/libraries.json -> 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/textdistance
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:232: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; 
> python3.9 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.9.7, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg
> plugins: hypothesis-5.43.3
> collected 398 items
> 
> tests/test_common.py ................................................... [ 
> 12%]
> ........................................................................ [ 
> 30%]
> .............................................                            [ 
> 42%]
> tests/test_external.py ...F....F......                                   [ 
> 45%]
> tests/test_compression/test_arith_ncd.py ....                            [ 
> 46%]
> tests/test_compression/test_bwtrle_ncd.py ..                             [ 
> 47%]
> tests/test_compression/test_bz2_ncd.py ..                                [ 
> 47%]
> tests/test_compression/test_common.py ............................       [ 
> 55%]
> tests/test_compression/test_entropy_ncd.py ........                      [ 
> 57%]
> tests/test_compression/test_sqrt_ncd.py .......                          [ 
> 58%]
> tests/test_edit/test_damerau_levenshtein.py ...............              [ 
> 62%]
> tests/test_edit/test_editex.py ............                              [ 
> 65%]
> tests/test_edit/test_gotoh.py .....                                      [ 
> 66%]
> tests/test_edit/test_hamming.py ......                                   [ 
> 68%]
> tests/test_edit/test_jaro.py ........                                    [ 
> 70%]
> tests/test_edit/test_jaro_winkler.py ..F....                             [ 
> 72%]
> tests/test_edit/test_levenshtein.py ......                               [ 
> 73%]
> tests/test_edit/test_matrix.py ..........                                [ 
> 76%]
> tests/test_edit/test_mlipns.py ...........                               [ 
> 78%]
> tests/test_edit/test_needleman_wunsch.py .....                           [ 
> 80%]
> tests/test_edit/test_smith_waterman.py .....                             [ 
> 81%]
> tests/test_edit/test_strcmp95.py ....                                    [ 
> 82%]
> tests/test_phonetic/test_editex.py ..............................        [ 
> 89%]
> tests/test_sequence/test_lcsseq.py ...........                           [ 
> 92%]
> tests/test_sequence/test_lcsstr.py ..........                            [ 
> 95%]
> tests/test_token/test_bag.py ....                                        [ 
> 96%]
> tests/test_token/test_cosine.py ..                                       [ 
> 96%]
> tests/test_token/test_jaccard.py .....                                   [ 
> 97%]
> tests/test_token/test_monge_elkan.py ..                                  [ 
> 98%]
> tests/test_token/test_overlap.py ...                                     [ 
> 99%]
> tests/test_token/test_sorensen.py ...                                    
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________________ test_compare[JaroWinkler] 
> ___________________________
> 
> alg = 'JaroWinkler'
> 
>     @pytest.mark.external
> >   @pytest.mark.parametrize('alg', libraries.get_algorithms())
>     @hypothesis.given(
>         left=hypothesis.strategies.text(min_size=1),
>         right=hypothesis.strategies.text(min_size=1),
>     )
> 
> tests/test_external.py:17: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> left = ':', right = ':0', alg = 'JaroWinkler'
> 
>     @pytest.mark.external
>     @pytest.mark.parametrize('alg', libraries.get_algorithms())
>     @hypothesis.given(
>         left=hypothesis.strategies.text(min_size=1),
>         right=hypothesis.strategies.text(min_size=1),
>     )
>     def test_compare(left, right, alg):
>         for lib in libraries.get_libs(alg):
>             conditions = lib.conditions or {}
>             internal_func = getattr(textdistance, alg)(external=False, 
> **conditions)
>             external_func = lib.get_function()
>             if external_func is None:
>                 raise RuntimeError('cannot import {}'.format(str(lib)))
>     
>             if not lib.check_conditions(internal_func, left, right):
>                 continue
>     
>             int_result = internal_func(left, right)
>             s1, s2 = lib.prepare(left, right)
>             ext_result = external_func(s1, s2)
> >           assert isclose(int_result, ext_result), str(lib)
> E           AssertionError: jellyfish.jaro_winkler_similarity
> E           assert False
> E            +  where False = isclose(0.8333333333333334, 0.8500000000000001)
> 
> tests/test_external.py:36: AssertionError
> ---------------------------------- Hypothesis 
> ----------------------------------
> Falsifying example: test_compare(
>     left=':', right=':0', alg='JaroWinkler',
> )
> ____________________________ test_qval[JaroWinkler] 
> ____________________________
> 
> alg = 'JaroWinkler'
> 
> >   ???
> 
> tests/test_external.py:40: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> left = ':', right = ':0', alg = 'JaroWinkler'
> 
>     @pytest.mark.external
>     @pytest.mark.parametrize('alg', libraries.get_algorithms())
>     @hypothesis.given(
>         left=hypothesis.strategies.text(min_size=1),
>         right=hypothesis.strategies.text(min_size=1),
>     )
>     def test_qval(left, right, alg):
>         for lib in libraries.get_libs(alg):
>             conditions = lib.conditions or {}
>             internal_func = getattr(textdistance, alg)(external=False, 
> **conditions)
>             external_func = lib.get_function()
>             # algorithm doesn't support q-grams
>             if not hasattr(internal_func, 'qval'):
>                 continue
>             for qval in (None, 1, 2, 3):
>                 internal_func.qval = qval
>                 # if qval unsopporting already set for lib
>                 s1, s2 = internal_func._get_sequences(left, right)
>                 if not lib.check_conditions(internal_func, s1, s2):
>                     continue
>     
>                 # test
>                 int_result = internal_func(left, right)
>                 s1, s2 = lib.prepare(s1, s2)
>                 ext_result = external_func(s1, s2)
> >           assert isclose(int_result, ext_result), str(lib)
> E           AssertionError: jellyfish.jaro_winkler_similarity
> E           assert False
> E            +  where False = isclose(0.8333333333333334, 0.8500000000000001)
> 
> tests/test_external.py:64: AssertionError
> ---------------------------------- Hypothesis 
> ----------------------------------
> Falsifying example: test_qval(
>     left=':', right=':0', alg='JaroWinkler',
> )
> _____________________ test_distance[frog-fog-0.916666666] 
> ______________________
> 
> left = 'frog', right = 'fog', expected = 0.916666666
> 
>     @pytest.mark.parametrize('left, right, expected', [
>         ('elephant', 'hippo', 0.44166666666666665),
>         ('fly', 'ant', 0.0),
>         ('frog', 'fog', 0.916666666),
>         ('MARTHA', 'MARHTA', 0.9611111111111111),
>         ('DWAYNE', 'DUANE', 0.84),
>         ('DIXON', 'DICKSONX', 0.8133333333333332),
>     
>         # https://github.com/life4/textdistance/issues/39
>         ('duck donald', 'duck daisy', 0.867272727272),
>     ])
>     def test_distance(left, right, expected):
>         actual = ALG(winklerize=True, external=False)(left, right)
>         assert isclose(actual, expected)
>     
>         actual = ALG(winklerize=True, external=True)(left, right)
> >       assert isclose(actual, expected)
> E       assert False
> E        +  where False = isclose(0.9249999999999999, 0.916666666)
> 
> tests/test_edit/test_jaro_winkler.py:30: AssertionError
> =========================== short test summary info 
> ============================
> FAILED tests/test_external.py::test_compare[JaroWinkler] - AssertionError: 
> je...
> FAILED tests/test_external.py::test_qval[JaroWinkler] - AssertionError: 
> jelly...
> FAILED 
> tests/test_edit/test_jaro_winkler.py::test_distance[frog-fog-0.916666666]
> ======================== 3 failed, 395 passed in 30.30s 
> ========================
> E: pybuild pybuild:354: test: plugin distutils failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; python3.9 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.9 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2021/10/23/textdistance_4.2.0-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 mine
so that we can identify if something relevant changed in the meantime.

Reply via email to