Bug#1052817: sarsen: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 returned exit code 13

Lucas Nussbaum lucas at debian.org
Tue Sep 26 14:23:57 BST 2023


Source: sarsen
Version: 0.9.3+ds-2
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at 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 --with python3,numpy3 --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/sarsen
> copying sarsen/datamodel.py -> build/lib/sarsen
> copying sarsen/sentinel1.py -> build/lib/sarsen
> copying sarsen/apps.py -> build/lib/sarsen
> copying sarsen/__main__.py -> build/lib/sarsen
> copying sarsen/version.py -> build/lib/sarsen
> copying sarsen/__init__.py -> build/lib/sarsen
> copying sarsen/scene.py -> build/lib/sarsen
> copying sarsen/geocoding.py -> build/lib/sarsen
> copying sarsen/radiometry.py -> build/lib/sarsen
> copying sarsen/chunking.py -> build/lib/sarsen
> copying sarsen/orbit.py -> build/lib/sarsen
> running egg_info
> creating sarsen.egg-info
> writing sarsen.egg-info/PKG-INFO
> writing dependency_links to sarsen.egg-info/dependency_links.txt
> writing entry points to sarsen.egg-info/entry_points.txt
> writing requirements to sarsen.egg-info/requires.txt
> writing top-level names to sarsen.egg-info/top_level.txt
> writing manifest file 'sarsen.egg-info/SOURCES.txt'
> reading manifest file 'sarsen.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'sarsen.egg-info/SOURCES.txt'
> 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/sarsen
> copying build/lib/sarsen/datamodel.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/sentinel1.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/apps.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/__main__.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/version.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/__init__.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/scene.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/geocoding.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/radiometry.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/chunking.py -> build/bdist.linux-x86_64/wheel/sarsen
> copying build/lib/sarsen/orbit.py -> build/bdist.linux-x86_64/wheel/sarsen
> running install_egg_info
> Copying sarsen.egg-info to build/bdist.linux-x86_64/wheel/sarsen-0.9.3+ds.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/sarsen-0.9.3+ds.dist-info/WHEEL
> creating '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/.tmp-rvr8w5nz/sarsen-0.9.3+ds-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'sarsen/__init__.py'
> adding 'sarsen/__main__.py'
> adding 'sarsen/apps.py'
> adding 'sarsen/chunking.py'
> adding 'sarsen/datamodel.py'
> adding 'sarsen/geocoding.py'
> adding 'sarsen/orbit.py'
> adding 'sarsen/radiometry.py'
> adding 'sarsen/scene.py'
> adding 'sarsen/sentinel1.py'
> adding 'sarsen/version.py'
> adding 'sarsen-0.9.3+ds.dist-info/LICENSE'
> adding 'sarsen-0.9.3+ds.dist-info/METADATA'
> adding 'sarsen-0.9.3+ds.dist-info/WHEEL'
> adding 'sarsen-0.9.3+ds.dist-info/entry_points.txt'
> adding 'sarsen-0.9.3+ds.dist-info/top_level.txt'
> adding 'sarsen-0.9.3+ds.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built sarsen-0.9.3+ds-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 tests
> ============================= test session starts ==============================
> platform linux -- Python 3.11.5, pytest-7.4.2, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build
> collected 30 items
> 
> tests/test_10_chunking.py ...                                            [ 10%]
> tests/test_10_datamodel.py .                                             [ 13%]
> tests/test_10_orbit.py ..                                                [ 20%]
> tests/test_10_scene.py ..F                                               [ 30%]
> tests/test_20_geocoding.py ...                                           [ 40%]
> tests/test_20_sentinel1.py ...                                           [ 50%]
> tests/test_30_radiometry.py F                                            [ 53%]
> tests/test_50_apps.py ssssssssssss                                       [ 93%]
> tests/test_60_main.py .                                                  [ 96%]
> tests/test_90_sarsen.py .                                                [100%]
> 
> =================================== FAILURES ===================================
> ________________________ test_compute_dem_oriented_area ________________________
> 
> dem_raster = <xarray.DataArray 'dem' (y: 360, x: 360)>
> [129600 values with dtype=float32]
> Coordinates:
>   * x            (x) float64....05
>     spatial_ref  int64 ...
> Attributes:
>     AREA_OR_POINT:  Area
>     units:          m
>     long_name:      elevation
> 
>     def test_compute_dem_oriented_area(dem_raster: xr.DataArray) -> None:
>         dem_3d = scene.convert_to_dem_3d(dem_raster)
>     
> >       res = scene.compute_dem_oriented_area(dem_3d)
> 
> tests/test_10_scene.py:39: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> sarsen/scene.py:110: in compute_dem_oriented_area
>     cross_2 = xr.cross(dx2, dy2, dim="axis") / 2
> /usr/lib/python3/dist-packages/xarray/core/computation.py:1609: in cross
>     c = apply_ufunc(
> /usr/lib/python3/dist-packages/xarray/core/computation.py:1197: in apply_ufunc
>     return apply_dataarray_vfunc(
> /usr/lib/python3/dist-packages/xarray/core/computation.py:288: in apply_dataarray_vfunc
>     args = deep_align(
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:847: in deep_align
>     aligned = align(
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:783: in align
>     aligner.align()
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:568: in align
>     self.align_indexes()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = <xarray.core.alignment.Aligner object at 0x7f6d18e7bbd0>
> 
>     def align_indexes(self) -> None:
>         """Compute all aligned indexes and their corresponding coordinate variables."""
>     
>         aligned_indexes = {}
>         aligned_index_vars = {}
>         reindex = {}
>         new_indexes = {}
>         new_index_vars = {}
>     
>         for key, matching_indexes in self.all_indexes.items():
>             matching_index_vars = self.all_index_vars[key]
>             dims = {d for coord in matching_index_vars[0].values() for d in coord.dims}
>             index_cls = key[1]
>     
>             if self.join == "override":
>                 joined_index = matching_indexes[0]
>                 joined_index_vars = matching_index_vars[0]
>                 need_reindex = False
>             elif key in self.indexes:
>                 joined_index = self.indexes[key]
>                 joined_index_vars = self.index_vars[key]
>                 cmp_indexes = list(
>                     zip(
>                         [joined_index] + matching_indexes,
>                         [joined_index_vars] + matching_index_vars,
>                     )
>                 )
>                 need_reindex = self._need_reindex(dims, cmp_indexes)
>             else:
>                 if len(matching_indexes) > 1:
>                     need_reindex = self._need_reindex(
>                         dims,
>                         list(zip(matching_indexes, matching_index_vars)),
>                     )
>                 else:
>                     need_reindex = False
>                 if need_reindex:
>                     if self.join == "exact":
> >                       raise ValueError(
>                             "cannot align objects with join='exact' where "
>                             "index/labels/sizes are not equal along "
>                             "these coordinates (dimensions): "
>                             + ", ".join(f"{name!r} {dims!r}" for name, dims in key[0])
>                         )
> E                       ValueError: cannot align objects with join='exact' where index/labels/sizes are not equal along these coordinates (dimensions): 'x' ('x',)
> 
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:415: ValueError
> ___________________________ test_compute_gamma_area ____________________________
> 
> dem_ecef = <xarray.DataArray 'dem_3d' (axis: 3, y: 360, x: 360)>
> array([[[4639071.14581699, 4639064.72787912, 4639056.85736609, .... 0
>   * y            (y) float64 41.95 41.95 41.95 41.95 ... 42.05 42.05 42.05 42.05
>   * axis         (axis) int64 0 1 2
> 
>     def test_compute_gamma_area(dem_ecef: xr.DataArray) -> None:
>         dem_direction = xr.DataArray()
> >       res = radiometry.compute_gamma_area(dem_ecef, dem_direction)
> 
> tests/test_30_radiometry.py:8: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> sarsen/radiometry.py:56: in compute_gamma_area
>     dem_oriented_area = scene.compute_dem_oriented_area(dem_ecef)
> sarsen/scene.py:110: in compute_dem_oriented_area
>     cross_2 = xr.cross(dx2, dy2, dim="axis") / 2
> /usr/lib/python3/dist-packages/xarray/core/computation.py:1609: in cross
>     c = apply_ufunc(
> /usr/lib/python3/dist-packages/xarray/core/computation.py:1197: in apply_ufunc
>     return apply_dataarray_vfunc(
> /usr/lib/python3/dist-packages/xarray/core/computation.py:288: in apply_dataarray_vfunc
>     args = deep_align(
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:847: in deep_align
>     aligned = align(
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:783: in align
>     aligner.align()
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:568: in align
>     self.align_indexes()
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> self = <xarray.core.alignment.Aligner object at 0x7f6d188a1450>
> 
>     def align_indexes(self) -> None:
>         """Compute all aligned indexes and their corresponding coordinate variables."""
>     
>         aligned_indexes = {}
>         aligned_index_vars = {}
>         reindex = {}
>         new_indexes = {}
>         new_index_vars = {}
>     
>         for key, matching_indexes in self.all_indexes.items():
>             matching_index_vars = self.all_index_vars[key]
>             dims = {d for coord in matching_index_vars[0].values() for d in coord.dims}
>             index_cls = key[1]
>     
>             if self.join == "override":
>                 joined_index = matching_indexes[0]
>                 joined_index_vars = matching_index_vars[0]
>                 need_reindex = False
>             elif key in self.indexes:
>                 joined_index = self.indexes[key]
>                 joined_index_vars = self.index_vars[key]
>                 cmp_indexes = list(
>                     zip(
>                         [joined_index] + matching_indexes,
>                         [joined_index_vars] + matching_index_vars,
>                     )
>                 )
>                 need_reindex = self._need_reindex(dims, cmp_indexes)
>             else:
>                 if len(matching_indexes) > 1:
>                     need_reindex = self._need_reindex(
>                         dims,
>                         list(zip(matching_indexes, matching_index_vars)),
>                     )
>                 else:
>                     need_reindex = False
>                 if need_reindex:
>                     if self.join == "exact":
> >                       raise ValueError(
>                             "cannot align objects with join='exact' where "
>                             "index/labels/sizes are not equal along "
>                             "these coordinates (dimensions): "
>                             + ", ".join(f"{name!r} {dims!r}" for name, dims in key[0])
>                         )
> E                       ValueError: cannot align objects with join='exact' where index/labels/sizes are not equal along these coordinates (dimensions): 'x' ('x',)
> 
> /usr/lib/python3/dist-packages/xarray/core/alignment.py:415: ValueError
> =============================== warnings summary ===============================
> ../../../../../../usr/lib/python3/dist-packages/xarray_sentinel/esa_safe.py:7
>   /usr/lib/python3/dist-packages/xarray_sentinel/esa_safe.py:7: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
>     import pkg_resources
> 
> tests/test_20_geocoding.py::test_secant_method
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/sarsen/geocoding.py:46: RuntimeWarning: invalid value encountered in divide
>     t_prev, t_curr = t_curr, t_curr - np.where(q != 0, p / q, 0)  # type: ignore
> 
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
> tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path0-IW/VV]
>   /usr/lib/python3/dist-packages/rioxarray/_io.py:1132: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.
>     warnings.warn(str(rio_warning.message), type(rio_warning.message))  # type: ignore
> 
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED tests/test_10_scene.py::test_compute_dem_oriented_area - ValueError: c...
> FAILED tests/test_30_radiometry.py::test_compute_gamma_area - ValueError: can...
> ============ 2 failed, 16 passed, 12 skipped, 9 warnings in 59.08s =============
> E: pybuild pybuild:395: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build; python3.11 -m pytest tests
> 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/sarsen_0.9.3+ds-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230925;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230925&fusertaguser=lucas@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.



More information about the Pkg-grass-devel mailing list