Source: exhale
Version: 0.3.6-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20230925 ftbfs-trixie

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
>  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
>    dh_auto_build -O--buildsystem=pybuild
> I: pybuild plugin_pyproject:110: Building wheel for python3.11 with "build" 
> module
> I: pybuild base:291: python3.11 -m build --skip-dependency-check 
> --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11 
> * Building wheel...
> running bdist_wheel
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/exhale
> copying exhale/graph.py -> build/lib/exhale
> copying exhale/utils.py -> build/lib/exhale
> copying exhale/__init__.py -> build/lib/exhale
> copying exhale/parse.py -> build/lib/exhale
> copying exhale/configs.py -> build/lib/exhale
> copying exhale/deploy.py -> build/lib/exhale
> creating build/lib/exhale/data
> creating build/lib/exhale/data/treeView
> creating build/lib/exhale/data/treeView/collapsible-lists
> creating build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/button-closed.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item-open.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/button-open.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item-last.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item-contents.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item-last-open.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/list-item-root.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/tree_view.css -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> copying exhale/data/treeView/collapsible-lists/css/button.png -> 
> build/lib/exhale/data/treeView/collapsible-lists/css
> creating build/lib/exhale/data/treeView/collapsible-lists/js
> copying 
> exhale/data/treeView/collapsible-lists/js/CollapsibleLists.compressed.js -> 
> build/lib/exhale/data/treeView/collapsible-lists/js
> copying exhale/data/treeView/collapsible-lists/js/apply-collapsible-lists.js 
> -> build/lib/exhale/data/treeView/collapsible-lists/js
> copying exhale/data/treeView/collapsible-lists/LICENSE.md -> 
> build/lib/exhale/data/treeView/collapsible-lists
> creating build/lib/exhale/data/treeView-bootstrap
> creating build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.css 
> -> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.js 
> -> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying exhale/data/treeView-bootstrap/bootstrap-treeview/LICENSE -> 
> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> exhale/data/treeView-bootstrap/bootstrap-treeview/apply-bootstrap-treview.js 
> -> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview
> installing to build/bdist.linux-x86_64/wheel
> running install
> running install_lib
> creating build/bdist.linux-x86_64
> creating build/bdist.linux-x86_64/wheel
> creating build/bdist.linux-x86_64/wheel/exhale
> copying build/lib/exhale/graph.py -> build/bdist.linux-x86_64/wheel/exhale
> copying build/lib/exhale/utils.py -> build/bdist.linux-x86_64/wheel/exhale
> copying build/lib/exhale/__init__.py -> build/bdist.linux-x86_64/wheel/exhale
> creating build/bdist.linux-x86_64/wheel/exhale/data
> creating build/bdist.linux-x86_64/wheel/exhale/data/treeView
> creating build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists
> creating 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/button-closed.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/list-item-open.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/list-item-root.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/list-item-last.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying build/lib/exhale/data/treeView/collapsible-lists/css/list-item.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying build/lib/exhale/data/treeView/collapsible-lists/css/button-open.png 
> -> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying build/lib/exhale/data/treeView/collapsible-lists/css/button.png -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/list-item-contents.png 
> -> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying build/lib/exhale/data/treeView/collapsible-lists/css/tree_view.css -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/css/list-item-last-open.png 
> -> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/css
> creating 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/js
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/js/CollapsibleLists.compressed.js
>  -> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/js
> copying 
> build/lib/exhale/data/treeView/collapsible-lists/js/apply-collapsible-lists.js
>  -> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists/js
> copying build/lib/exhale/data/treeView/collapsible-lists/LICENSE.md -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView/collapsible-lists
> creating build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap
> creating 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.css
>  -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview/LICENSE 
> -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview/apply-bootstrap-treview.js
>  -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying 
> build/lib/exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.js
>  -> 
> build/bdist.linux-x86_64/wheel/exhale/data/treeView-bootstrap/bootstrap-treeview
> copying build/lib/exhale/parse.py -> build/bdist.linux-x86_64/wheel/exhale
> copying build/lib/exhale/configs.py -> build/bdist.linux-x86_64/wheel/exhale
> copying build/lib/exhale/deploy.py -> build/bdist.linux-x86_64/wheel/exhale
> running install_egg_info
> running egg_info
> creating exhale.egg-info
> writing exhale.egg-info/PKG-INFO
> /usr/lib/python3/dist-packages/setuptools/dist.py:172: 
> SetuptoolsDeprecationWarning: Invalid config.
> !!
> 
>         
> ********************************************************************************
>         newlines are not allowed in `summary` and will break in the future
>         
> ********************************************************************************
> 
> !!
>   write_field('Summary', single_line(summary))
> writing dependency_links to exhale.egg-info/dependency_links.txt
> writing requirements to exhale.egg-info/requires.txt
> writing top-level names to exhale.egg-info/top_level.txt
> writing manifest file 'exhale.egg-info/SOURCES.txt'
> reading manifest file 'exhale.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'exhale.egg-info/SOURCES.txt'
> Copying exhale.egg-info to 
> build/bdist.linux-x86_64/wheel/exhale-0.3.6.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/exhale-0.3.6.dist-info/WHEEL
> creating 
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/.tmp-ni7dxltd/exhale-0.3.6-py3-none-any.whl'
>  and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'exhale/__init__.py'
> adding 'exhale/configs.py'
> adding 'exhale/deploy.py'
> adding 'exhale/graph.py'
> adding 'exhale/parse.py'
> adding 'exhale/utils.py'
> adding 'exhale/data/treeView/collapsible-lists/LICENSE.md'
> adding 'exhale/data/treeView/collapsible-lists/css/button-closed.png'
> adding 'exhale/data/treeView/collapsible-lists/css/button-open.png'
> adding 'exhale/data/treeView/collapsible-lists/css/button.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item-contents.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item-last-open.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item-last.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item-open.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item-root.png'
> adding 'exhale/data/treeView/collapsible-lists/css/list-item.png'
> adding 'exhale/data/treeView/collapsible-lists/css/tree_view.css'
> adding 
> 'exhale/data/treeView/collapsible-lists/js/CollapsibleLists.compressed.js'
> adding 'exhale/data/treeView/collapsible-lists/js/apply-collapsible-lists.js'
> adding 'exhale/data/treeView-bootstrap/bootstrap-treeview/LICENSE'
> adding 
> 'exhale/data/treeView-bootstrap/bootstrap-treeview/apply-bootstrap-treview.js'
> adding 
> 'exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.css'
> adding 
> 'exhale/data/treeView-bootstrap/bootstrap-treeview/bootstrap-treeview.min.js'
> adding 'exhale-0.3.6.dist-info/LICENSE'
> adding 'exhale-0.3.6.dist-info/METADATA'
> adding 'exhale-0.3.6.dist-info/WHEEL'
> adding 'exhale-0.3.6.dist-info/top_level.txt'
> adding 'exhale-0.3.6.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built exhale-0.3.6-py3-none-any.whl
> I: pybuild plugin_pyproject:122: Unpacking wheel built for python3.11 with 
> "installer" module
>    dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:291: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; 
> python3.11 -m pytest /<<PKGBUILDDIR>>/testing -m "not setup_raises" -k "not 
> CPPNestingPages"
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.11.5, pytest-7.4.2, pluggy-1.3.0
> cachedir: testing/.cache
> rootdir: /<<PKGBUILDDIR>>
> configfile: pyproject.toml
> collected 121 items / 13 deselected / 108 selected
> 
> ../../../testing/tests/c_maths.py .....                                  [  
> 4%]
> ../../../testing/tests/configs.py ..........................             [ 
> 28%]
> ../../../testing/tests/configs_tree_view.py ......                       [ 
> 34%]
> ../../../testing/tests/cpp_dir_underscores.py ....                       [ 
> 37%]
> ../../../testing/tests/cpp_fortran_mixed.py ..F.                         [ 
> 41%]
> ../../../testing/tests/cpp_func_overloads.py ...                         [ 
> 44%]
> ../../../testing/tests/cpp_long_names.py ...                             [ 
> 47%]
> ../../../testing/tests/cpp_nesting.py ...                                [ 
> 50%]
> ../../../testing/tests/cpp_pimpl.py .......                              [ 
> 56%]
> ../../../testing/tests/cpp_with_spaces.py ...                            [ 
> 59%]
> ../../../testing/tests/utils.py ........................................ [ 
> 96%]
> ....                                                                     
> [100%]
> 
> =================================== FAILURES 
> ===================================
> _______________________ CPPFortranMixed.test_hierarchies 
> _______________________
> 
> self = <testing.tests.cpp_fortran_mixed.CPPFortranMixed 
> testMethod=test_hierarchies>
> 
>     def test_hierarchies(self):
>         """
>         Validate the class and file hierarchies.
>     
>         **Not tested on Windows**, maybe I'll care to fix it one day.
>         `But it is not this day`__!
>     
>         __ https://youtu.be/EXGUNvIFTQw
>     
>         .. todo::
>     
>             Too much shared code in hierarchy comparisons, the class 
> hierarchy for this
>             project should be **empty**.  Need to enable asserting this fact 
> (same for
>             the ``cpp_nesting`` project).
>         """
>         if platform.system() != "Windows":
>             # compare_class_hierarchy(self, class_hierarchy({}))
> >           compare_file_hierarchy(self, 
> > file_hierarchy(self.file_hierarchy_dict()))
> 
> ../../../testing/tests/cpp_fortran_mixed.py:74: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> ../../../testing/hierarchies.py:1246: in compare_file_hierarchy
>     _compare_children("file", test, test_obj, exhale_obj)
> ../../../testing/hierarchies.py:1114: in _compare_children
>     _compare_children(hierarchy_type, test, test_grand_child, 
> exhale_grand_child)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> 
> hierarchy_type = 'file'
> test = <testing.tests.cpp_fortran_mixed.CPPFortranMixed 
> testMethod=test_hierarchies>
> test_child = File(src/conversions.f90, n_kids=8)
> exhale_child = File(src/conversions.f90, n_kids=8)
> 
>     def _compare_children(hierarchy_type, test, test_child, exhale_child):
>         if test_child.parent:
>             test.assertTrue(
>                 exhale_child.parent is not None,
>                 f"test_child of kind={test_child.kind} name={test_child.name} 
> had a "
>                 f"parent of kind={test_child.parent.kind} 
> name={test_child.parent.name} "
>                 "but exhale_child did *NOT* have a parent.  Likely invalid 
> test hierarchy.")
>             test.assertEqual(test_child.parent.name, exhale_child.parent.name)
>             test.assertEqual(test_child.parent.kind, exhale_child.parent.kind)
>         else:
>             # namespaces are not represented in the file hierarchy, but in 
> the Exhale graph
>             # the parent will be the namespace
>             if "::" in test_child.name and hierarchy_type == "file":
>                 test.assertTrue(exhale_child.parent is not None)
>                 test.assertTrue(exhale_child.parent.kind == "namespace")
>             else:
>                 # Better error message when the test fails, but don't crash 
> tests
>                 # that succeed by accessing `parent`.
>                 def err_message():
>                     if exhale_child.parent is None:
>                         return ""
>                     return (
>                         f"exhale_child of kind={exhale_child.kind} "
>                         f"name={exhale_child.name} had a parent of "
>                         f"kind={exhale_child.parent.kind} "
>                         f"name={exhale_child.parent.name} but *NO* parent was 
> expected."
>                     )
>     
>                 test.assertTrue(exhale_child.parent is None, err_message())
>     
>         if hierarchy_type == "file":
>             if test_child.def_in_file:
>                 # TODO: populate location variables for files
>                 test.assertEqual(test_child.def_in_file.name, 
> exhale_child.def_in_file.name)
>                 test.assertEqual(test_child.def_in_file.location, 
> exhale_child.def_in_file.location)
>             else:
>                 test.assertTrue(exhale_child.def_in_file is None)
>     
>             # Make sure parent references for directory and file pages are 
> included.
>             if test_child.kind in {"dir", "file"}:
>                 # Load in the generated file contents.
>                 generated_rst_path = os.path.join(
>                     test.getAbsContainmentFolder(), exhale_child.file_name
>                 )
>                 with codecs.open(generated_rst_path, "r", "utf-8") as 
> gen_file:
>                     generated_rst = gen_file.read()
>     
>                 if test_child.kind == "dir":
>                     # Make sure full directory path is included (at least for 
> now, may
>                     # put it back in the title at some point).
>                     path = "*Directory path:* 
> ``{path}``".format(path=test_child.name)
>                     test.assertTrue(
>                         path in generated_rst,
>                         textwrap.dedent('''
>                             The following full path listing:
>     
>                             {vsep}
>                             {path}
>                             {vsep}
>     
>                             was not found in '{generated_rst_path}' with full 
> contents:
>     
>                             {vsep}
>                             {generated_rst}
>                             {vsep}
>                         ''').format(
>                             vsep=("*" * 77),
>                             path=path,
>                             generated_rst_path=generated_rst_path,
>                             generated_rst=generated_rst
>                         )
>                     )
>                 else:  # test_child.kind == "file"
>                     program_listing_path = os.path.join(
>                         os.path.dirname(generated_rst_path),
>                         exhale_child.program_file  # wtf did i do 
> gerrymanderNodeFilenames for?!
>                     )
>                     program_listing_basename = 
> os.path.basename(program_listing_path)
>     
>                     # 1. Make sure link to program_listing file is generated.
>                     program_listing_toctree = textwrap.dedent('''
>                         .. toctree::
>                            :maxdepth: 1
>     
>                            {program_listing_basename}
>                     ''').format(
>                         program_listing_basename=program_listing_basename
>                     )
>                     test.assertTrue(
>                         program_listing_toctree in generated_rst,
>                         textwrap.dedent('''
>                             The following toctree directive:
>     
>                             {vsep}
>                             {program_listing_toctree}
>                             {vsep}
>     
>                             was not found in '{generated_rst_path}' with full 
> contents:
>     
>                             {vsep}
>                             {generated_rst}
>                             {vsep}
>                         ''').format(
>                             vsep=("*" * 77),
>                             program_listing_toctree=program_listing_toctree,
>                             generated_rst_path=generated_rst_path,
>                             generated_rst=generated_rst
>                         )
>                     )
>     
>                     # 2. Make sure link back to file page from 
> program_listing file is generated.
>                     program_back_link = textwrap.dedent('''
>                         |exhale_lsh| :ref:`Return to documentation for file 
> <{file_link}>` (``{file_location}``)
>     
>                         .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW 
> WITH TIP LEFTWARDS
>     
>                     ''').format(
>                         file_link=exhale_child.link_name,
>                         file_location=exhale_child.location
>                     )
>                     # NOTE: see #171
>                     test.assertTrue(
>                         program_back_link.endswith("S\n\n"),
>                         "Test setup failure, trailing newlines are expected.")
>     
>                     with codecs.open(program_listing_path, "r", "utf-8") as 
> pl_file:
>                         desired_lines = []
>                         for line in pl_file:
>                             if line.startswith(".. code-block::"):
>                                 break
>                             desired_lines.append(line)
>                         program_listing_header = "".join(desired_lines)
>     
>                     test.assertTrue(
>                         program_back_link in program_listing_header,
>                         textwrap.dedent('''
>                             The following back-link:
>     
>                             {vsep}
>                             {program_back_link}
>                             {vsep}
>     
>                             was not found in '{program_listing_path}' with 
> header contents:
>     
>                             {vsep}
>                             {program_listing_header}
>                             {vsep}
>                         ''').format(
>                             vsep=("*" * 77),
>                             program_back_link=program_back_link,
>                             program_listing_path=program_listing_path,
>                             program_listing_header=program_listing_header
>                         )
>                     )
>     
>                 # If parent exists, verify that a link to the parent is 
> created.
>                 if test_child.parent:
>                     # Reconstruct expected parent directory reference rst.
>                     # TODO: un-copy-paste this from graph.py
>                     if test_child.parent.kind == "file":
>                         parent_unique_id = test_child.parent.location
>                     else:
>                         parent_unique_id = test_child.parent.name
>                     parent_unique_id = parent_unique_id.replace(":", 
> "_").replace(os.sep, "_").replace(" ", "_")
>                     parent_link_name = 
> "{kind}_{id}".format(kind=test_child.parent.kind, id=parent_unique_id)
>                     parent_name = test_child.parent.name
>                     parent_reference = textwrap.dedent('''
>                         |exhale_lsh| :ref:`Parent directory <{parent_link}>` 
> (``{parent_name}``)
>     
>                         .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW 
> WITH TIP LEFTWARDS
>     
>                     '''.format(
>                         parent_link=parent_link_name, parent_name=parent_name
>                     ))
>                     # NOTE: see #171
>                     test.assertTrue(
>                         parent_reference.endswith("S\n\n"),
>                         "Test setup failure, trailing newlines are expected.")
>     
>                     # Verify that both files and directories link to their 
> directory parent
>                     test.assertTrue(
>                         parent_reference in generated_rst,
>                         textwrap.dedent('''
>                             The following parent directory reference:
>     
>                             {vsep}
>                             {parent_reference}
>                             {vsep}
>     
>                             was not found in '{generated_rst_path}' with full 
> contents:
>     
>                             {vsep}
>                             {generated_rst}
>                             {vsep}
>                         ''').format(
>                             vsep=("*" * 77),
>                             parent_reference=parent_reference,
>                             generated_rst_path=generated_rst_path,
>                             generated_rst=generated_rst
>                         )
>                     )
>     
>         # Make sure they have the same name.
>         test.assertEqual(
>             test_child.name,
>             exhale_child.name,
>             "test_child.name [{tc_name}] != exhale_child.name 
> [{ec_name}]".format(
>                 tc_name=test_child.name, ec_name=exhale_child.name
>             )
>         )
>         # Make sure they have the same kind.
>         test.assertEqual(
>             test_child.kind,
>             exhale_child.kind,
>             "test_child.kind [{tc_kind}] != exhale_child.kind 
> [{ec_kind}]".format(
>                 tc_kind=test_child.kind, ec_kind=exhale_child.kind
>             )
>         )
>         # Make sure they have the same number of children.
>         CHILD_COUNT_IGNORE_KINDS = ["enumvalue", "group"]
>         # Functions do not appear in the class hierarchy.
>         if hierarchy_type == "class":
>             CHILD_COUNT_IGNORE_KINDS.append("function")
>         num_exhale_children = sum(child.kind not in CHILD_COUNT_IGNORE_KINDS 
> for child in exhale_child.children)
>         test.assertEqual(
>             len(test_child.children),
>             num_exhale_children,
>             textwrap.dedent('''
>                 For child: {child_name}
>     
>                 test_child.children names:
>     
>                 {tc_names}
>     
>                 exhale_child.children names:
>     
>                 {ec_names}
>             ''').format(
>                 child_name=test_child.breathe_identifier(),
>                 tc_names="\n".join([
>                     "- 
> {breathe_identifier}".format(breathe_identifier=child.breathe_identifier())
>                     for child in test_child.children
>                 ]),
>                 ec_names="\n".join([
>                     "- 
> {breathe_identifier}".format(breathe_identifier=child.breathe_identifier())
>                     for child in exhale_child.children if child.kind not in 
> CHILD_COUNT_IGNORE_KINDS
>                 ])
>             )
>         )
>     
>         for test_grand_child in test_child.children:
>             exhale_grand_child = None
>             if test_grand_child.kind == "function":
>                 # NOTE: First hit in macOS, possibly inbound with newer 
> doxygen elsewhere.
>                 # Matching child for [function] 
> 'conversions::degrees_to_radians_s' with
>                 # signature
>                 # 'real(c_float) function 
> conversions::degrees_to_radians_s(degrees_s)'
>                 # not found!  Considered signatures:
>                 # real(c_double) function 
> conversions::degrees_to_radians_d(real(c_double), intent(in))
>                 # real(c_float) function 
> conversions::degrees_to_radians_s(real(c_float), intent(in))
>                 # real(c_double) function 
> conversions::radians_to_degrees_d(real(c_double), intent(in))
>                 # real(c_float) function 
> conversions::radians_to_degrees_s(real(c_float), intent(in))
>                 #
>                 # ns::func(paramname) => ns::func(paramtype, param???)
>                 #          degrees_s              real(c_float), intent(in)
>                 #
>                 # Coming from cpp_fortran_mixed conversions.f90, relates to 
> docstring...
>                 test_signature = test_grand_child.full_signature()
>                 if platform.system() == "Darwin" and \
>                         test_grand_child.def_in_file.name == 
> "conversions.f90":
>                     test_signature = re.sub(
>                         rf"(.*) (function 
> ({test_grand_child.name}))\((.*)\)$",
>                         r"\1 \2(\1, intent(in))",
>                         test_signature
>                     )
>                 considered_signatures = []  # for error reporting help in CI
>                 for candidate in exhale_child.children:
>                     if candidate.kind == "function":
>                         candidate_signature = candidate.full_signature()
>                         considered_signatures.append(candidate_signature)
>                         if test_signature == candidate_signature:
>                             exhale_grand_child = candidate
>                             break
>     
>                 if not exhale_grand_child:
>                     sig_str = "\n- ".join(considered_signatures)
> >                   raise RuntimeError(
>                         f"Matching child for [{test_grand_child.kind}] "
>                         f"'{test_grand_child.name}' with signature 
> '{test_signature}' not "
>                         f"found!  Considered signatures:\n{sig_str}.")
> E                   RuntimeError: Matching child for [function] 
> 'conversions::degrees_to_radians_s' with signature 'real(c_float) function 
> conversions::degrees_to_radians_s(degrees_s)' not found!  Considered 
> signatures:
> E                   real(c_double) function 
> conversions::degrees_to_radians_d(real(c_double), intent(in))
> E                   - real(c_float) function 
> conversions::degrees_to_radians_s(real(c_float), intent(in))
> E                   - real(c_double) function 
> conversions::radians_to_degrees_d(real(c_double), intent(in))
> E                   - real(c_float) function 
> conversions::radians_to_degrees_s(real(c_float), intent(in)).
> 
> ../../../testing/hierarchies.py:1100: RuntimeError
> ---------------------------- Captured stdout setup 
> -----------------------------
> Doxygen version used: 1.9.8
> Notice: Output directory 
> '/<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/docs_CPPFortranMixed_test_hierarchies/_doxygen'
>  does not exist. I have created it for you.
> Searching for include files...
> Searching for example files...
> Searching for images...
> Searching for dot files...
> Searching for msc files...
> Searching for dia files...
> Searching for files to exclude
> Searching INPUT for files to process...
> Searching for files in directory 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include
> Searching for files in directory 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include/convert
> Reading and parsing tag files
> Parsing files
> Preprocessing 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include/convert/convert.hpp...
> Parsing file 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include/convert/convert.hpp...
> Reading 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/src/conversions.f90...
> Parsing file 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/src/conversions.f90...
> Building macro definition list...
> Building group list...
> Building directory list...
> Building namespace list...
> Building file list...
> Building class list...
> Building concept list...
> Computing nesting relations for classes...
> Associating documentation with classes...
> Associating documentation with concepts...
> Associating documentation with modules...
> Building example list...
> Searching for enumerations...
> Searching for documented typedefs...
> Searching for members imported via using declarations...
> Searching for included using directives...
> Searching for documented variables...
> Building interface member list...
> Building member list...
> Searching for friends...
> Searching for documented defines...
> Computing class inheritance relations...
> Computing class usage relations...
> Flushing cached template relations that have become invalid...
> Computing class relations...
> Add enum values to enums...
> Searching for member function documentation...
> Creating members for template instances...
> Building page list...
> Search for main page...
> Computing page relations...
> Determining the scope of groups...
> Computing module relations...
> Sorting lists...
> Determining which enums are documented
> Computing member relations...
> Building full member lists recursively...
> Adding members to member groups.
> Computing member references...
> Inheriting documentation...
> Generating disk names...
> Adding source references...
> Adding xrefitems...
> Sorting member lists...
> Setting anonymous enum type...
> Computing dependencies between directories...
> Generating citations page...
> Counting members...
> Counting data structures...
> Resolving user defined references...
> Finding anchors and sections in the documentation...
> Transferring function references...
> Combining using relations...
> Adding members to index pages...
> Correcting members for VHDL...
> Computing tooltip texts...
> Generating style sheet...
> Generating search indices...
> Generating example documentation...
> Generating file sources...
> Generating code for file include/convert/convert.hpp...
> Generating file documentation...
> Generating docs for file include/convert/convert.hpp...
> Generating docs for file src/conversions.f90...
> Generating page documentation...
> Generating group documentation...
> Generating class documentation...
> Generating concept documentation...
> Generating module documentation...
> Generating namespace documentation...
> Generating docs for namespace conversions
> Generating docs for namespace convert
> Generating graph info page...
> Generating directory documentation...
> Generating dependency graph for directory include/convert
> finalizing index lists...
> writing tag file...
> Generating XML output...
> Generating XML output for namespace conversions
> Generating XML output for namespace convert
> Generating XML output for file convert.hpp
> Generating XML output for file conversions.f90
> Generate XML output for dir 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include/convert/
> Generate XML output for dir 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/include/
> Generate XML output for dir 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/src/
> Running plantuml with JAVA...
> Running dot...
> type lookup cache used 28/65536 hits=194 misses=28
> symbol lookup cache used 39/65536 hits=369 misses=39
> finished...
> 
> [~] Exhale: parsing Doxygen XML.
> [+] Exhale: finished parsing Doxygen XML in 0.04 seconds.
> [~] Exhale: generating reStructuredText documents.
> [+] Exhale: generated reStructuredText documents in 0.03 seconds.
> --------------------------- Captured stdout teardown 
> ---------------------------
> # testroot: root
> # builder: html
> # srcdir: 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/docs_CPPFortranMixed_test_hierarchies
> # outdir: 
> /<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/docs_CPPFortranMixed_test_hierarchies/_build/html
> # status: 
> Running Sphinx v5.3.0
> [~] Exhale: changing directories to 
> [/<<PKGBUILDDIR>>/testing/projects/cpp_fortran_mixed/docs_CPPFortranMixed_test_hierarchies]
>  to execute Doxygen.
> [~] Exhale: executing doxygen.
> [~] Exhale: changing directories back to 
> [/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build] after Doxygen.
> [+] Exhale: doxygen ran successfully in 0.05 seconds.
> 
> # warning: 
> 
> =============================== warnings summary 
> ===============================
> ../../../../../../usr/lib/python3/dist-packages/babel/messages/catalog.py:13
>   /usr/lib/python3/dist-packages/babel/messages/catalog.py:13: 
> DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
>     from cgi import parse_header
> 
> testing/tests/c_maths.py::CMathsTests::test_alt_out
>   /usr/lib/python3/dist-packages/sphinx/util/images.py:4: DeprecationWarning: 
> 'imghdr' is deprecated and slated for removal in Python 3.13
>     import imghdr
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info 
> ============================
> FAILED 
> ../../../testing/tests/cpp_fortran_mixed.py::CPPFortranMixed::test_hierarchies
> ========== 1 failed, 107 passed, 13 deselected, 2 warnings in 21.31s 
> ===========
> E: pybuild pybuild:395: test: plugin pyproject failed with: exit code=1: cd 
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; python3.11 -m pytest 
> /<<PKGBUILDDIR>>/testing -m "not setup_raises" -k "not CPPNestingPages"
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 
> returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2023/09/25/exhale_0.3.6-3_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230925;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230925&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

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 mark 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