Your message dated Fri, 16 Jan 2026 04:18:38 +0000
with message-id <[email protected]>
and subject line Bug#1123338: fixed in python-xarray 2025.12.0-3
has caused the Debian Bug report #1123338,
regarding sarsen: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i 
python{version} -p "3.14 3.13" returned exit code 13
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1123338: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123338
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:sarsen
Version: 0.9.5+ds-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202512/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:sarsen, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 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:131: Building wheel for python3.14 with "build" 
module
I: pybuild base:317: python3.14 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14  
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: 
SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated

[... snipped ...]

        """
        dims: dict[Hashable, int] = {}
        last_used = {}
        scalar_vars = {k for k, v in variables.items() if not v.dims}
        for k, var in variables.items():
            for dim, size in zip(var.dims, var.shape, strict=True):
                if dim in scalar_vars:
                    raise ValueError(
                        f"dimension {dim!r} already exists as a scalar variable"
                    )
                if dim not in dims:
                    dims[dim] = size
                    last_used[dim] = k
                elif dims[dim] != size:
>                   raise ValueError(
                        f"conflicting sizes for dimension {dim!r}: "
                        f"length {size} on {k!r} and length {dims[dim]} on 
{last_used!r}"
                    )
E                   ValueError: conflicting sizes for dimension 'y': length 0 
on <this-array> and length 360 on {'x': 'x', 'y': 'y'}

/usr/lib/python3/dist-packages/xarray/core/variable.py:3143: ValueError
=================================== FAILURES ===================================
____________________________ test_convert_to_dem_3d ____________________________

dem_raster = <xarray.DataArray 'dem' (y: 0, x: 360)> Size: 0B
[0 values with dtype=float32]
Coordinates:
  * y            (y) float...
    spatial_ref  int64 8B ...
Attributes:
    AREA_OR_POINT:  Area
    units:          m
    long_name:      elevation

    def test_convert_to_dem_3d(dem_raster: xr.DataArray) -> None:
>       res = scene.convert_to_dem_3d(dem_raster)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_10_scene.py:9: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sarsen/scene.py:42: in convert_to_dem_3d
    _, dem_raster_x = xr.broadcast(dem_raster, 
dem_raster.coords[x].astype(dtype))
                      
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:1297: in broadcast
    args = align(*args, join="outer", copy=False, exclude=exclude)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:967: in align
    aligner.align()
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:667: in align
    self.reindex_all()
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:638: in reindex_all
    self.results = tuple(
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:627: in 
_reindex_one
    return obj._reindex_callback(
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:1968: in 
_reindex_callback
    ds = self._to_temp_dataset()
         ^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:582: in _to_temp_dataset
    return self._to_dataset_whole(name=_THIS_ARRAY, shallow_copy=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:649: in 
_to_dataset_whole
    return Dataset._construct_direct(variables, coord_names, indexes=indexes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataset.py:853: in _construct_direct
    dims = calculate_dimensions(variables)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

variables = {'x': <xarray.IndexVariable 'x' (x: 360)> Size: 3kB
array([12.45    , 12.450278, 12.450556, ..., 12.549167, 12.549444,...[0 values 
with dtype=float32]
Attributes:
    AREA_OR_POINT:  Area
    units:          m
    long_name:      elevation}

    def calculate_dimensions(variables: Mapping[Any, Variable]) -> 
dict[Hashable, int]:
        """Calculate the dimensions corresponding to a set of variables.
    
        Returns dictionary mapping from dimension names to sizes. Raises 
ValueError
        if any of the dimension sizes conflict.
        """
        dims: dict[Hashable, int] = {}
        last_used = {}
        scalar_vars = {k for k, v in variables.items() if not v.dims}
        for k, var in variables.items():
            for dim, size in zip(var.dims, var.shape, strict=True):
                if dim in scalar_vars:
                    raise ValueError(
                        f"dimension {dim!r} already exists as a scalar variable"
                    )
                if dim not in dims:
                    dims[dim] = size
                    last_used[dim] = k
                elif dims[dim] != size:
>                   raise ValueError(
                        f"conflicting sizes for dimension {dim!r}: "
                        f"length {size} on {k!r} and length {dims[dim]} on 
{last_used!r}"
                    )
E                   ValueError: conflicting sizes for dimension 'y': length 0 
on <this-array> and length 360 on {'x': 'x', 'y': 'y'}

/usr/lib/python3/dist-packages/xarray/core/variable.py:3143: ValueError
________________________________ test_upsample _________________________________

dem_raster = <xarray.DataArray 'dem' (y: 0, x: 360)> Size: 0B
[0 values with dtype=float32]
Coordinates:
  * y            (y) float...
    spatial_ref  int64 8B ...
Attributes:
    AREA_OR_POINT:  Area
    units:          m
    long_name:      elevation

    def test_upsample(dem_raster: xr.DataArray) -> None:
>       res = scene.upsample(dem_raster, x=2)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_10_scene.py:39: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sarsen/scene.py:103: in upsample
    return data.interp(coords, kwargs={"fill_value": "extrapolate"})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:2414: in interp
    ds = self._to_temp_dataset().interp(
         ^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:582: in _to_temp_dataset
    return self._to_dataset_whole(name=_THIS_ARRAY, shallow_copy=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:649: in 
_to_dataset_whole
    return Dataset._construct_direct(variables, coord_names, indexes=indexes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataset.py:853: in _construct_direct
    dims = calculate_dimensions(variables)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

variables = {'x': <xarray.IndexVariable 'x' (x: 360)> Size: 3kB
array([12.45    , 12.450278, 12.450556, ..., 12.549167, 12.549444,...[0 values 
with dtype=float32]
Attributes:
    AREA_OR_POINT:  Area
    units:          m
    long_name:      elevation}

    def calculate_dimensions(variables: Mapping[Any, Variable]) -> 
dict[Hashable, int]:
        """Calculate the dimensions corresponding to a set of variables.
    
        Returns dictionary mapping from dimension names to sizes. Raises 
ValueError
        if any of the dimension sizes conflict.
        """
        dims: dict[Hashable, int] = {}
        last_used = {}
        scalar_vars = {k for k, v in variables.items() if not v.dims}
        for k, var in variables.items():
            for dim, size in zip(var.dims, var.shape, strict=True):
                if dim in scalar_vars:
                    raise ValueError(
                        f"dimension {dim!r} already exists as a scalar variable"
                    )
                if dim not in dims:
                    dims[dim] = size
                    last_used[dim] = k
                elif dims[dim] != size:
>                   raise ValueError(
                        f"conflicting sizes for dimension {dim!r}: "
                        f"length {size} on {k!r} and length {dims[dim]} on 
{last_used!r}"
                    )
E                   ValueError: conflicting sizes for dimension 'y': length 0 
on <this-array> and length 360 on {'x': 'x', 'y': 'y'}

/usr/lib/python3/dist-packages/xarray/core/variable.py:3143: ValueError
________________________ test_compute_dem_oriented_area ________________________

dem_raster = <xarray.DataArray 'dem' (y: 0, x: 360)> Size: 0B
[0 values with dtype=float32]
Coordinates:
  * y            (y) float...
    spatial_ref  int64 8B ...
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)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/test_10_scene.py:46: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
sarsen/scene.py:42: in convert_to_dem_3d
    _, dem_raster_x = xr.broadcast(dem_raster, 
dem_raster.coords[x].astype(dtype))
                      
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:1297: in broadcast
    args = align(*args, join="outer", copy=False, exclude=exclude)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:967: in align
    aligner.align()
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:667: in align
    self.reindex_all()
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:638: in reindex_all
    self.results = tuple(
/usr/lib/python3/dist-packages/xarray/structure/alignment.py:627: in 
_reindex_one
    return obj._reindex_callback(
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:1968: in 
_reindex_callback
    ds = self._to_temp_dataset()
         ^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:582: in _to_temp_dataset
    return self._to_dataset_whole(name=_THIS_ARRAY, shallow_copy=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataarray.py:649: in 
_to_dataset_whole
    return Dataset._construct_direct(variables, coord_names, indexes=indexes)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/xarray/core/dataset.py:853: in _construct_direct
    dims = calculate_dimensions(variables)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

variables = {'x': <xarray.IndexVariable 'x' (x: 360)> Size: 3kB
array([12.45    , 12.450278, 12.450556, ..., 12.549167, 12.549444,...[0 values 
with dtype=float32]
Attributes:
    AREA_OR_POINT:  Area
    units:          m
    long_name:      elevation}

    def calculate_dimensions(variables: Mapping[Any, Variable]) -> 
dict[Hashable, int]:
        """Calculate the dimensions corresponding to a set of variables.
    
        Returns dictionary mapping from dimension names to sizes. Raises 
ValueError
        if any of the dimension sizes conflict.
        """
        dims: dict[Hashable, int] = {}
        last_used = {}
        scalar_vars = {k for k, v in variables.items() if not v.dims}
        for k, var in variables.items():
            for dim, size in zip(var.dims, var.shape, strict=True):
                if dim in scalar_vars:
                    raise ValueError(
                        f"dimension {dim!r} already exists as a scalar variable"
                    )
                if dim not in dims:
                    dims[dim] = size
                    last_used[dim] = k
                elif dims[dim] != size:
>                   raise ValueError(
                        f"conflicting sizes for dimension {dim!r}: "
                        f"length {size} on {k!r} and length {dims[dim]} on 
{last_used!r}"
                    )
E                   ValueError: conflicting sizes for dimension 'y': length 0 
on <this-array> and length 360 on {'x': 'x', 'y': 'y'}

/usr/lib/python3/dist-packages/xarray/core/variable.py:3143: ValueError
=============================== warnings summary ===============================
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_path1-IW1/VV]
tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path1-IW1/VV]
tests/test_20_sentinel1.py::test_Sentinel1SarProduct[data_path1-IW1/VV]
tests/test_20_sentinel1.py::test_product_info
  /usr/lib/python3/dist-packages/xarray_sentinel/sentinel1.py:411: 
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_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: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

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_10_scene.py::test_convert_to_dem_3d - ValueError: conflicti...
FAILED tests/test_10_scene.py::test_upsample - ValueError: conflicting sizes ...
FAILED tests/test_10_scene.py::test_compute_dem_oriented_area - ValueError: c...
ERROR tests/test_20_geocoding.py::test_zero_doppler_plane_distance_velocity
ERROR tests/test_20_geocoding.py::test_backward_geocode - ValueError: conflic...
ERROR tests/test_30_radiometry.py::test_compute_gamma_area - ValueError: conf...
= 3 failed, 15 passed, 12 skipped, 1 xfailed, 1 xpassed, 10 warnings, 3 errors 
in 10.85s =
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 
3.13" returned exit code 13
make: *** [debian/rules:12: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

--- End Message ---
--- Begin Message ---
Source: python-xarray
Source-Version: 2025.12.0-3
Done: Stuart Prescott <[email protected]>

We believe that the bug you reported is fixed in the latest version of
python-xarray, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stuart Prescott <[email protected]> (supplier of updated python-xarray package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Fri, 16 Jan 2026 14:40:18 +1100
Source: python-xarray
Architecture: source
Version: 2025.12.0-3
Distribution: unstable
Urgency: medium
Maintainer: Debian Science Maintainers 
<[email protected]>
Changed-By: Stuart Prescott <[email protected]>
Closes: 1123307 1123338
Changes:
 python-xarray (2025.12.0-3) unstable; urgency=medium
 .
   * Team upload.
   * Cherry-pick patch from upstream to solve some indexing problems that
     break python-rioxarray (Closes: #1123307) and sarsen (Closes: #1123338)
   * Add missing build-dep on python3-zarr.
   * Fix inconsistent whitespace in d/control with wrap-and-sort.
Checksums-Sha1:
 3a0ad212d72a3b035b3008d65fe05fe15b2e7bf1 4077 python-xarray_2025.12.0-3.dsc
 97d1f9cf53799dbe5929a4476af8eede1d6a6b5b 22164 
python-xarray_2025.12.0-3.debian.tar.xz
 392f637dbc5ca9a034cb16543981069de2fde970 20178 
python-xarray_2025.12.0-3_amd64.buildinfo
Checksums-Sha256:
 099affbe651538aefe9eb787800dffb7e958bfd84baaf2050f364d2af282fbac 4077 
python-xarray_2025.12.0-3.dsc
 278a7307fd16b9a0e270b34ac071215e772553fc4becdd3315fe5a3d50419ed7 22164 
python-xarray_2025.12.0-3.debian.tar.xz
 2a68a890e0f3a85a3281e549ee67d8def096f615c8a518da2c95c9b11973c501 20178 
python-xarray_2025.12.0-3_amd64.buildinfo
Files:
 06efafffa9c327bfc09bc8218356cd9d 4077 python optional 
python-xarray_2025.12.0-3.dsc
 96668700d9dd5701565a27c92773efd5 22164 python optional 
python-xarray_2025.12.0-3.debian.tar.xz
 43247fde4243a5e7a43a5c5315ee137f 20178 python optional 
python-xarray_2025.12.0-3_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEkOLSwa0Uaht+u4kdu8F+uxOW8vcFAmlpukoACgkQu8F+uxOW
8velHRAAn8/u7B9lClYlrj8sCGkAg7c2GcMCH3+jeb1upQEhZwLAQcZkLIiCieS0
FHaN9JoDzbikeFPRuNLZItd+mYNMZ+MpCRr/4WvKeIH0IRPOClhqMzOghuqsc23a
p4ZhZma2sDmPo1jaLMCRBCf3fUiCuHeiTnkhIvz2nbAxB/Eb+OlZQuoltP4/OpRD
amA3TvBzOSKlrxJa/kIwkFzC791dTIq4i/mptoru1WpYszZMfOwa+im8v6lSkJ91
Bxd1m+D2+OEzJBp5Pd7/hculkP3f0R4c1G3ShDkZOZcG4DTWFqBm/ZWR5QtsfltC
Me1wGLnbCvoV0otzPrw/WGgKUoxs8HDvtPQn4lbIE1WkXr+iSj9/xWDianK3vvKA
qBR6FuwXu9zDw1vfnz7M/RwsXPownw9JxugWzTalGTu9y6cU6/dqUPy2w9opcdM/
7i3QoVCF1tzwDyBN8XgWQwb3o0GC3QLWg9/ZIbAslBEhhPtF9lKNkP4zH/BSIruo
SgWtJWgD0/v7O82AtPH/fCN+ixBG5JH27V5jqEbydZaQnQA+hzw4Bo5xHT4JcFlc
6N2ik2oAFGNMjGpsW8AaBJOdql6jUaZvhLu5R5FKzhc8jOeeKqkoMgT4Jrdx5sg3
cuqEA+efWMpRo6mR2jcOwl4Z08PB1a8jDkJzHPqWAsf5ECeef+0=
=0ZEe
-----END PGP SIGNATURE-----

Attachment: pgpcwNsVpKDQG.pgp
Description: PGP signature


--- End Message ---

Reply via email to