Bug#1101633: xarray-sentinel: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
Lucas Nussbaum
lucas at debian.org
Sat Mar 29 20:23:58 GMT 2025
Source: xarray-sentinel
Version: 0.9.5+ds-3
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20250327 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:129: Building wheel for python3.13 with "build" module
> I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel
> * Building wheel...
> running bdist_wheel
> running build
> running build_py
> creating build/lib/xarray_sentinel
> copying xarray_sentinel/conventions.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/reformat.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/esa_safe.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/__init__.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/sentinel1.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/xarray_backends.py -> build/lib/xarray_sentinel
> copying xarray_sentinel/version.py -> build/lib/xarray_sentinel
> running egg_info
> creating xarray_sentinel.egg-info
> writing xarray_sentinel.egg-info/PKG-INFO
> writing dependency_links to xarray_sentinel.egg-info/dependency_links.txt
> writing entry points to xarray_sentinel.egg-info/entry_points.txt
> writing requirements to xarray_sentinel.egg-info/requires.txt
> writing top-level names to xarray_sentinel.egg-info/top_level.txt
> writing manifest file 'xarray_sentinel.egg-info/SOURCES.txt'
> reading manifest file 'xarray_sentinel.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'xarray_sentinel.egg-info/SOURCES.txt'
> /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'xarray_sentinel.resources.sentinel1' is absent from the `packages` configuration.
> !!
>
> ********************************************************************************
> ############################
> # Package would be ignored #
> ############################
> Python recognizes 'xarray_sentinel.resources.sentinel1' as an importable package[^1],
> but it is absent from setuptools' `packages` configuration.
>
> This leads to an ambiguous overall configuration. If you want to distribute this
> package, please make sure that 'xarray_sentinel.resources.sentinel1' is explicitly added
> to the `packages` configuration field.
>
> Alternatively, you can also rely on setuptools' discovery methods
> (for example by using `find_namespace_packages(...)`/`find_namespace:`
> instead of `find_packages(...)`/`find:`).
>
> You can read more about "package discovery" on setuptools documentation page:
>
> - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html
>
> If you don't want 'xarray_sentinel.resources.sentinel1' to be distributed and are
> already explicitly excluding 'xarray_sentinel.resources.sentinel1' via
> `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
> you can try to use `exclude_package_data`, or `include-package-data=False` in
> combination with a more fine grained `package-data` configuration.
>
> You can read more about "package data files" on setuptools documentation page:
>
> - https://setuptools.pypa.io/en/latest/userguide/datafiles.html
>
>
> [^1]: For Python, any directory (with suitable naming) can be imported,
> even if it does not contain any `.py` files.
> On the other hand, currently there is no concept of package data
> directory, all directories are treated like packages.
> ********************************************************************************
>
> !!
> check.warn(importable)
> copying xarray_sentinel/py.typed -> build/lib/xarray_sentinel
> creating build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-gml.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-no-namespace.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1-sar-level-1.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-schema_orb.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/my-xfdu.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/s1-level-1-calibration.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/s1-level-1-noise.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/s1-level-1-product.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/s1-level-1-rfi.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> copying xarray_sentinel/resources/sentinel1/s1-object-types.xsd -> build/lib/xarray_sentinel/resources/sentinel1
> installing to build/bdist.linux-x86_64/wheel
> running install
> running install_lib
> creating build/bdist.linux-x86_64/wheel
> creating build/bdist.linux-x86_64/wheel/xarray_sentinel
> copying build/lib/xarray_sentinel/conventions.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> creating build/bdist.linux-x86_64/wheel/xarray_sentinel/resources
> creating build/bdist.linux-x86_64/wheel/xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/s1-level-1-rfi.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-gml.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-schema_orb.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/s1-level-1-noise.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/s1-object-types.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-no-namespace.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-xfdu.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1-sar-level-1.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/s1-level-1-calibration.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/s1-level-1-product.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1.xsd -> build/bdist.linux-x86_64/wheel/./xarray_sentinel/resources/sentinel1
> copying build/lib/xarray_sentinel/py.typed -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/reformat.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/esa_safe.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/__init__.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/sentinel1.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/xarray_backends.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> copying build/lib/xarray_sentinel/version.py -> build/bdist.linux-x86_64/wheel/./xarray_sentinel
> running install_egg_info
> Copying xarray_sentinel.egg-info to build/bdist.linux-x86_64/wheel/./xarray_sentinel-0.9.5.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/xarray_sentinel-0.9.5.dist-info/WHEEL
> creating '/build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel/.tmp-8lh36mon/xarray_sentinel-0.9.5-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'xarray_sentinel/__init__.py'
> adding 'xarray_sentinel/conventions.py'
> adding 'xarray_sentinel/esa_safe.py'
> adding 'xarray_sentinel/py.typed'
> adding 'xarray_sentinel/reformat.py'
> adding 'xarray_sentinel/sentinel1.py'
> adding 'xarray_sentinel/version.py'
> adding 'xarray_sentinel/xarray_backends.py'
> adding 'xarray_sentinel/resources/sentinel1/my-gml.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-no-namespace.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1-sar-level-1.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0-sentinel-1.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-safe-sentinel-1.0.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-schema_orb.xsd'
> adding 'xarray_sentinel/resources/sentinel1/my-xfdu.xsd'
> adding 'xarray_sentinel/resources/sentinel1/s1-level-1-calibration.xsd'
> adding 'xarray_sentinel/resources/sentinel1/s1-level-1-noise.xsd'
> adding 'xarray_sentinel/resources/sentinel1/s1-level-1-product.xsd'
> adding 'xarray_sentinel/resources/sentinel1/s1-level-1-rfi.xsd'
> adding 'xarray_sentinel/resources/sentinel1/s1-object-types.xsd'
> adding 'xarray_sentinel-0.9.5.dist-info/LICENSE'
> adding 'xarray_sentinel-0.9.5.dist-info/METADATA'
> adding 'xarray_sentinel-0.9.5.dist-info/WHEEL'
> adding 'xarray_sentinel-0.9.5.dist-info/entry_points.txt'
> adding 'xarray_sentinel-0.9.5.dist-info/top_level.txt'
> adding 'xarray_sentinel-0.9.5.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built xarray_sentinel-0.9.5-py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd /build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel/build; python3.13 -m pytest -k "not test_mosaic_slc_iw and not test_to_group_netcdf and not test_open_dataset_zip_data and not test_to_group_zarr" /build/reproducible-path/xarray-sentinel-0.9.5+ds/tests
> ============================= test session starts ==============================
> platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
> rootdir: /build/reproducible-path/xarray-sentinel-0.9.5+ds
> configfile: pyproject.toml
> plugins: typeguard-4.4.2
> collected 68 items / 4 deselected / 64 selected
>
> ../../../tests/test_10_esa_safe.py ............. [ 20%]
> ../../../tests/test_20_sentinel1.py ..................F..... [ 57%]
> ../../../tests/test_30_sentinel1_fsspec.py x. [ 60%]
> ../../../tests/test_30_xarray_backends.py ........................ [ 98%]
> ../../../tests/test_35_xarray_backends_dask.py . [100%]
>
> =================================== FAILURES ===================================
> _________________________ test_crop_burst_dataset_gcp __________________________
>
> def test_crop_burst_dataset_gcp() -> None:
> expected_geospatial_bounds = (
> "POLYGON((11.060741069073366 46.41270558692681,"
> "11.010711557932021 46.228050403919134,12.175715782110206 46.076023778486665,"
> "12.209682909257705 46.26327129178887,11.060741069073366 46.41270558692681))"
> )
> expected_polygon = shapely.wkt.loads(expected_geospatial_bounds)
> expected_geospatial_bbox = (
> 11.010711557932021,
> 46.076023778486665,
> 12.209682909257705,
> 46.41270558692681,
> )
>
> swath_ds = sentinel1.open_sentinel1_dataset(SLC_IW, group="IW1/VV")
> gcp_ds = sentinel1.open_sentinel1_dataset(SLC_IW, group="IW1/VV/gcp")
>
> res = sentinel1.crop_burst_dataset(swath_ds, burst_index=5, gcp=gcp_ds)
>
> assert set(res.dims) == {"azimuth_time", "slant_range_time"}
> assert res.dims["azimuth_time"] == swath_ds.attrs["lines_per_burst"]
> assert isinstance(res.attrs["geospatial_bounds"], str)
> > assert shapely.wkt.loads(res.attrs["geospatial_bounds"]).is_valid
> E AssertionError: assert False
> E + where False = <POLYGON ((-44.444 -288.76, -88.246 -303.343, -71.419 -304.682, -79.668 -283...>.is_valid
> E + where <POLYGON ((-44.444 -288.76, -88.246 -303.343, -71.419 -304.682, -79.668 -283...> = <function loads at 0x7f19749e2980>('POLYGON((-44.44418791873072 -288.75980495394225,-88.24636549221911 -303.3426000024763,-71.41863710425673 -304.68199986502026,-79.66786307753833 -283.268127255018,-44.44418791873072 -288.75980495394225))')
> E + where <function loads at 0x7f19749e2980> = <module 'shapely.wkt' from '/usr/lib/python3/dist-packages/shapely/wkt.py'>.loads
> E + where <module 'shapely.wkt' from '/usr/lib/python3/dist-packages/shapely/wkt.py'> = shapely.wkt
>
> ../../../tests/test_20_sentinel1.py:399: AssertionError
> =============================== warnings summary ===============================
> xarray_sentinel/esa_safe.py:7
> /build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel/build/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_sentinel1.py: 16 warnings
> tests/test_30_xarray_backends.py: 11 warnings
> tests/test_35_xarray_backends_dask.py: 1 warning
> /build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel/build/xarray_sentinel/sentinel1.py:222: DeprecationWarning: Arrays of 2-dimensional vectors are deprecated. Use arrays of 3-dimensional vectors instead. (deprecated in NumPy 2.0)
> return float(np.cross(poly[1] - start, poly[2] - start)) < 0
>
> tests/test_20_sentinel1.py::test_open_pol_dataset_sm
> tests/test_30_xarray_backends.py::test_open_dataset_polarisation_slc[product_path2-S3/VH]
> /usr/lib/python3/dist-packages/rioxarray/_io.py:1143: 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
>
> tests/test_20_sentinel1.py::test_open_sentinel1_dataset
> tests/test_30_sentinel1_fsspec.py::test_open_dataset_zip_metadata
> <frozen _collections_abc>:838: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
>
> tests/test_20_sentinel1.py::test_open_sentinel1_dataset
> tests/test_30_sentinel1_fsspec.py::test_open_dataset_zip_metadata
> <frozen _collections_abc>:899: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
>
> tests/test_20_sentinel1.py::test_crop_burst_dataset
> /build/reproducible-path/xarray-sentinel-0.9.5+ds/tests/test_20_sentinel1.py:337: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
> assert res1.dims["azimuth_time"] == swath_ds.attrs["lines_per_burst"]
>
> tests/test_20_sentinel1.py::test_crop_burst_dataset
> tests/test_20_sentinel1.py::test_crop_burst_dataset
> /usr/lib/python3/dist-packages/xarray/core/dataarray.py:6186: DeprecationWarning: Behaviour of argmin/argmax with neither dim nor axis argument will change to return a dict of indices of each dimension. To get a single, flat index, please use np.argmin(da.data) or np.argmax(da.data) instead of da.argmin() or da.argmax().
> result = self.variable.argmin(dim, axis, keep_attrs, skipna)
>
> tests/test_20_sentinel1.py::test_crop_burst_dataset_gcp
> /build/reproducible-path/xarray-sentinel-0.9.5+ds/tests/test_20_sentinel1.py:397: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.
> assert res.dims["azimuth_time"] == swath_ds.attrs["lines_per_burst"]
>
> -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
> =========================== short test summary info ============================
> FAILED ../../../tests/test_20_sentinel1.py::test_crop_burst_dataset_gcp - Ass...
> ===== 1 failed, 62 passed, 4 deselected, 1 xfailed, 39 warnings in 30.11s ======
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/xarray-sentinel-0.9.5+ds/.pybuild/cpython3_3.13_xarray-sentinel/build; python3.13 -m pytest -k "not test_mosaic_slc_iw and not test_to_group_netcdf and not test_open_dataset_zip_data and not test_to_group_zarr" /build/reproducible-path/xarray-sentinel-0.9.5+ds/tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2025/03/27/xarray-sentinel_0.9.5+ds-3_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250327;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250327&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