Source: heudiconv Version: 0.11.6-1 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20230726 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 --buildsystem=pybuild > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > pybuild --configure -i python{version} -p 3.11 > I: pybuild base:240: python3.11 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > pybuild --build -i python{version} -p 3.11 > I: pybuild base:240: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/_version.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/dicoms.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/due.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/queue.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/convert.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/info.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/parser.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/main.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > copying heudiconv/bids.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/banda-bids.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/bids_with_ses.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/bids_PhoenixReport.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/reproin.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/convertall.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/bids_ME.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/studyforrest_phase2.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/test_b0dwi_for_fmap.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/multires_7Tbold.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/test_reproin.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/example.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/cmrr_heuristic.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > copying heudiconv/heuristics/uc_bids.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/heuristics > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_dicoms.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/anonymize_script.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_monitor.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_bids.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_main.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_queue.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_regression.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_heuristics.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_convert.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_utils.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > copying heudiconv/tests/test_tarballs.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external > copying heudiconv/external/dlad.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external > copying heudiconv/external/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external > copying heudiconv/external/pydicom.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external > copying heudiconv/external/dcmstack.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/cli > copying heudiconv/cli/run.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/cli > copying heudiconv/cli/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/cli > copying heudiconv/cli/monitor.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/cli > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external/tests > copying heudiconv/external/tests/test_dlad.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external/tests > copying heudiconv/external/tests/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/external/tests > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data > copying heudiconv/tests/data/axasc35.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data > copying heudiconv/tests/data/phantom.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/01-fmap_acq-3mm > copying > heudiconv/tests/data/01-fmap_acq-3mm/1.3.12.2.1107.5.2.43.66112.2016101409263663466202201.dcm > -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/01-fmap_acq-3mm > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/b0dwiForFmap > copying heudiconv/tests/data/b0dwiForFmap/b0dwi_for_fmap+00002.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/b0dwiForFmap > copying heudiconv/tests/data/b0dwiForFmap/b0dwi_for_fmap+00003.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/b0dwiForFmap > copying heudiconv/tests/data/b0dwiForFmap/b0dwi_for_fmap+00001.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/b0dwiForFmap > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/01-anat-scout > copying heudiconv/tests/data/01-anat-scout/0001.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/01-anat-scout > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/Phoenix > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/Phoenix/01+AA > copying heudiconv/tests/data/Phoenix/01+AA/01+AA+00001.dcm -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/Phoenix/01+AA > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/Phoenix/99+PhoenixDocument > copying > heudiconv/tests/data/Phoenix/99+PhoenixDocument/99+PhoenixDocument+00001.dcm > -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data/Phoenix/99+PhoenixDocument > copying heudiconv/tests/data/sample_nifti_params.txt -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data > copying heudiconv/tests/data/sample_nifti.nii.gz -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/data > dh_auto_test -O--buildsystem=pybuild > pybuild --test --test-pytest -i python{version} -p 3.11 > I: pybuild pybuild:307: cp -a heudiconv/tests > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/ > I: pybuild base:240: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build; python3.11 -m pytest > ============================= test session starts > ============================== > platform linux -- Python 3.11.4, pytest-7.4.0, pluggy-1.2.0 > rootdir: /<<PKGBUILDDIR>> > collected 99 items / 1 skipped > > heudiconv/external/tests/test_dlad.py . [ > 1%] > heudiconv/heuristics/test_reproin.py ........ [ > 9%] > heudiconv/tests/test_bids.py ..................................s [ > 44%] > heudiconv/tests/test_convert.py .......... [ > 54%] > heudiconv/tests/test_dicoms.py ... [ > 57%] > heudiconv/tests/test_heuristics.py ........... [ > 68%] > heudiconv/tests/test_main.py .....F........ [ > 82%] > heudiconv/tests/test_queue.py ... [ > 85%] > heudiconv/tests/test_regression.py sss. [ > 89%] > heudiconv/tests/test_tarballs.py . [ > 90%] > heudiconv/tests/test_utils.py ......... > [100%] > > =================================== FAILURES > =================================== > ___________________________ test_prepare_for_datalad > ___________________________ > > tmpdir = local('/tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0') > > def test_prepare_for_datalad(tmpdir): > pytest.importorskip("datalad", minversion=MIN_VERSION) > studydir = tmpdir.join("PI").join("study") > studydir_ = str(studydir) > os.makedirs(studydir_) > populate_bids_templates(studydir_) > > add_to_datalad(str(tmpdir), studydir_, None, False) > > from datalad.api import Dataset > superds = Dataset(str(tmpdir)) > > assert superds.is_installed() > assert not superds.repo.dirty > subdss = superds.subdatasets(recursive=True, result_xfm='relpaths') > for ds_path in sorted(subdss): > ds = Dataset(opj(superds.path, ds_path)) > assert ds.is_installed() > assert not ds.repo.dirty > > # the last one should have been the study > target_files = { > '.gitattributes', > '.datalad/config', '.datalad/.gitattributes', > 'dataset_description.json', > 'scans.json', > 'CHANGES', 'README'} > assert set(ds.repo.get_indexed_files()) == target_files > # and all are under git > for f in target_files: > > assert not ds.repo.is_under_annex(f) > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_main.py:142: > > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > /usr/lib/python3/dist-packages/datalad/support/gitrepo.py:322: in > _wrap_normalize_paths > result = func(self, files_new, *args, **kwargs) > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1991: in > is_under_annex > return self._check_files(check, files, batch) > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1936: in > _check_files > annex_res = fn(files, normalize_paths=False, batch=batch) > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1988: in check > return self.info([f for f in files if not isdir(f)], > /usr/lib/python3/dist-packages/datalad/support/gitrepo.py:322: in > _wrap_normalize_paths > result = func(self, files_new, *args, **kwargs) > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:2502: in info > json_objects = self._call_annex_records( > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1077: in > _call_annex_records > raise e > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:1041: in > _call_annex_records > out = self._call_annex( > /usr/lib/python3/dist-packages/datalad/support/annexrepo.py:937: in > _call_annex > return runner.run_on_filelist_chunks( > /usr/lib/python3/dist-packages/datalad/runner/gitrunner.py:256: in > run_on_filelist_chunks > for res in self._get_chunked_results(cmd=cmd, > /usr/lib/python3/dist-packages/datalad/runner/gitrunner.py:184: in > _get_chunked_results > yield self.run( > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <datalad.runner.gitrunner.GitWitlessRunner object at 0x7fb8072c5f90> > cmd = ['git', '-c', 'diff.ignoreSubmodules=none', '-c', > 'annex.merge-annex-branches=false', 'annex', ...] > protocol = <class 'datalad.support.annexrepo.AnnexJsonProtocol'>, stdin = None > cwd = None > env = {'APT_CONFIG': '/var/lib/sbuild/apt.conf', 'ASFLAGS': '', 'CCACHE_DIR': > '/<<PKGBUILDDIR>>/.pyb...-prefix-map=/<<PKGBUILDDIR>>=. > -fstack-protector-strong -Wformat -Werror=format-security', ...} > timeout = None, exception_on_error = True, kwargs = {} > applied_cwd = > PosixPath('/tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI/study') > applied_env = {'APT_CONFIG': '/var/lib/sbuild/apt.conf', 'ASFLAGS': '', > 'CCACHE_DIR': '/<<PKGBUILDDIR>>/.pyb...-prefix-map=/<<PKGBUILDDIR>>=. > -fstack-protector-strong -Wformat -Werror=format-security', ...} > threaded_runner = <datalad.runner.nonasyncrunner.ThreadedRunner object at > 0x7fb807239ad0> > results_or_iterator = {'code': 1, 'stderr': 'fatal: Not a valid object name > ./CHANGES\ninfo: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': > 'info', 'error-messages': [], 'file': './CHANGES', 'input': ['./CHANGES'], > ...}]} > results = {'code': 1, 'stderr': 'fatal: Not a valid object name > ./CHANGES\ninfo: 1 failed\n', 'stdout': '', 'stdout_json': [{'command': > 'info', 'error-messages': [], 'file': './CHANGES', 'input': ['./CHANGES'], > ...}]} > > def run(self, > cmd: list | str, > protocol: type[WitlessProtocol] | None = None, > stdin: bytes | IO | Queue | None = None, > cwd: PathLike | str | None = None, > env: dict | None = None, > timeout: float | None = None, > exception_on_error: bool = True, > **kwargs) -> dict | _ResultGenerator: > """Execute a command and communicate with it. > > Parameters > ---------- > cmd : list or str > Sequence of program arguments. Passing a single string causes > execution via the platform shell. > protocol : WitlessProtocol, optional > Protocol class handling interaction with the running process > (e.g. output capture). A number of pre-crafted classes are > provided (e.g `KillOutput`, `NoCapture`, `GitProgress`). > If the protocol has the GeneratorMixIn-mixin, the run-method > will return an iterator and can therefore be used in a for-clause. > stdin : file-like, bytes, Queue, or None > If stdin is a file-like, it will be directly used as stdin for the > subprocess. The caller is responsible for writing to it and closing > it. > If stdin is a bytes, it will be fed to stdin of the subprocess. > If all data is written, stdin will be closed. > If stdin is a Queue, all elements (bytes) put into the Queue will > be passed to stdin until None is read from the queue. If None is > read, > stdin of the subprocess is closed. > cwd : str or path-like, optional > If given, commands are executed with this path as PWD, > the PWD of the parent process is used otherwise. Overrides > any `cwd` given to the constructor. > env : dict, optional > Environment to be used for command execution. If given, it will > completely replace any environment provided to theconstructor. If > `cwd` is given, 'PWD' in the environment is set to its value. > This must be a complete environment definition, no values > from the current environment will be inherited. Overrides > any `env` given to the constructor. > timeout: float, optional > None or the seconds after which a timeout callback is > invoked, if no progress was made in communicating with > the sub-process, or if waiting for the subprocess exit > took more than the specified time. See the protocol and > `ThreadedRunner` descriptions for a more detailed discussion > on timeouts. > exception_on_error : bool, optional > This argument is only interpreted if the protocol is a subclass > of `GeneratorMixIn`. If it is `True` (default), a > `CommandErrorException` is raised by the generator if the > sub process exited with a return code not equal to zero. If the > parameter is `False`, no exception is raised. In both cases the > return code can be read from the attribute `return_code` of > the generator. > kwargs : > Passed to the Protocol class constructor. > > Returns > ------- > dict | _ResultGenerator > > If the protocol is not a subclass of `GeneratorMixIn`, the > result of protocol._prepare_result will be returned. > > If the protocol is a subclass of `GeneratorMixIn`, a Generator, > i.e. > a `_ResultGenerator`, will be returned. This allows to use this > method in constructs like: > > for protocol_output in runner.run(): > ... > > Where the iterator yields whatever protocol.pipe_data_received > sends into the generator. > If all output was yielded and the process has terminated, the > generator will raise StopIteration(return_code), where > return_code is the return code of the process. The return code > of the process will also be stored in the "return_code"-attribute > of the runner. So you could write: > > gen = runner.run() > for file_descriptor, data in gen: > ... > > # get the return code of the process > result = gen.return_code > > Raises > ------ > CommandError > On execution failure (non-zero exit code) this exception is > raised which provides the command (cmd), stdout, stderr, > exit code (status), and a message identifying the failed > command, as properties. > FileNotFoundError > When a given executable does not exist. > """ > if protocol is None: > # by default let all subprocess stream pass through > protocol = NoCapture > > applied_cwd = cwd or self.cwd > applied_env = self._get_adjusted_env( > env=env or self.env, > cwd=applied_cwd, > ) > > lgr.debug( > 'Run %r (protocol_class=%s) (cwd=%s)', > cmd, > protocol.__name__, > applied_cwd > ) > > threaded_runner = ThreadedRunner( > cmd=cmd, > protocol_class=protocol, > stdin=stdin, > protocol_kwargs=kwargs, > timeout=timeout, > exception_on_error=exception_on_error, > cwd=applied_cwd, > env=applied_env > ) > > results_or_iterator = threaded_runner.run() > if issubclass(protocol, GeneratorMixIn): > return results_or_iterator > > results = cast(dict, results_or_iterator) > # log before any exception is raised > lgr.debug("Finished %r with status %s", cmd, results['code']) > > # make it such that we always blow if a protocol did not report > # a return code at all > if results.get('code', True) not in [0, None]: > # the runner has a better idea, doc string warns Protocol > # implementations not to return these > results.pop('cmd', None) > results.pop('cwd', None) > > raise CommandError( > # whatever the results were, we carry them forward > cmd=cmd, > cwd=applied_cwd, > **results, > ) > E datalad.runner.exception.CommandError: CommandError: 'git -c > diff.ignoreSubmodules=none -c annex.merge-annex-branches=false annex info > --bytes --fast --json --json-error-messages -c annex.dotfiles=true -- > ./CHANGES' failed with exitcode 1 under > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI/study [info keys: > stdout_json] > E > not a directory or an annexed file or a treeish or a remote or > a uuid > E [err: 'fatal: Not a valid object name ./CHANGES > E info: 1 failed'] > > /usr/lib/python3/dist-packages/datalad/runner/runner.py:220: CommandError > ----------------------------- Captured stdout call > ----------------------------- > create(ok): /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0 (dataset) > add(ok): PI (dataset) > add(ok): .gitmodules (file) > save(ok): . (dataset) > create(ok): PI (dataset) > action summary: > add (ok: 2) > create (ok: 1) > save (ok: 1) > add(ok): study (dataset) > add(ok): .gitmodules (file) > save(ok): . (dataset) > create(ok): study (dataset) > action summary: > add (ok: 2) > create (ok: 1) > save (ok: 1) > add(ok): .gitattributes (file) > save(ok): . (dataset) > action summary: > add (ok: 1) > save (ok: 1) > add(ok): CHANGES (file) > add(ok): README (file) > add(ok): dataset_description.json (file) > add(ok): scans.json (file) > save(ok): . (dataset) > action summary: > add (ok: 4) > save (ok: 1) > add(ok): study (dataset) > add(ok): .gitmodules (file) > save(ok): PI (dataset) > add(ok): PI (dataset) > add(ok): .gitmodules (file) > save(ok): . (dataset) > action summary: > add (ok: 4) > save (notneeded: 1, ok: 2) > subdataset(ok): PI (dataset) > subdataset(ok): PI/study (dataset) > ------------------------------ Captured log call > ------------------------------- > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: starting > INFO datalad.core.local.save:log.py:432 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: done > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: starting > INFO datalad.core.local.save:log.py:432 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: done > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: starting > INFO datalad.core.local.save:log.py:432 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI/study > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: done > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: starting > INFO datalad.core.local.save:log.py:432 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI/study > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: done > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: starting > INFO datalad.core.local.save:log.py:432 > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI/study > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0/PI > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: processed result for > /tmp/pytest-of-user42/pytest-0/test_prepare_for_datalad0 > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad.core.local.save:log.py:432 Total: done > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > INFO datalad:log.py:432 Clear progress bars > INFO datalad:log.py:432 Refresh progress bars > =============================== warnings summary > =============================== > ../../../../../../usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:258 > /usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:258: > DeprecationWarning: module 'sre_parse' is deprecated > import sre_parse > > ../../../../../../usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:259 > /usr/lib/python3/dist-packages/traits/observation/_generated_parser.py:259: > DeprecationWarning: module 'sre_constants' is deprecated > import sre_constants > > heudiconv/bids.py:162 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/bids.py:162: > DeprecationWarning: invalid escape sequence '\s' > """Aggregate across the entire BIDS dataset ``.json``\s into top level > ``.json``\s > > heudiconv/bids.py:181 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/bids.py:181: > DeprecationWarning: invalid escape sequence '\_' > for fpath in find_files('.*_task-.*\_bold\.json', > > heudiconv/bids.py:184 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/bids.py:184: > DeprecationWarning: invalid escape sequence '\.' > exclude="/\.(datalad|heudiconv)/"): > > heudiconv/bids.py:190 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/bids.py:190: > DeprecationWarning: invalid escape sequence '\.' > task = re.sub('.*_(task-[^_\.]*(_acq-[^_\.]*)?)_.*', r'\1', fpath) > > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py::test_b0dwi_for_fmap > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_heuristics.py::test_phoenix_doc_conversion > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_main.py::test_cache > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build/heudiconv/parser.py:204: > DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead > lgr.warn("Heuristic is missing an `infotoids` method, assigning " > > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py::test_b0dwi_for_fmap > /usr/lib/python3/dist-packages/etelemetry/client.py:95: DeprecationWarning: > pkg_resources is deprecated as an API. See > https://setuptools.pypa.io/en/latest/pkg_resources.html > from pkg_resources import parse_version > > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py::test_b0dwi_for_fmap > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py::test_b0dwi_for_fmap > /usr/lib/python3/dist-packages/nipype/utils/filemanip.py:696: > DeprecationWarning: Use setlocale(), getencoding() and getlocale() instead > default_encoding = encoding or locale.getdefaultlocale()[1] or "UTF-8" > > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py: 4 > warnings > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_dicoms.py: 2 > warnings > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_heuristics.py: 22 > warnings > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_main.py: 2 > warnings > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_regression.py: 4 > warnings > /usr/lib/python3/dist-packages/nipype/utils/subprocess.py:34: > DeprecationWarning: Use setlocale(), getencoding() and getlocale() instead > self.default_encoding = locale.getdefaultlocale()[1] or "UTF-8" > > .pybuild/cpython3_3.11_heudiconv/build/heudiconv/tests/test_convert.py::test_b0dwi_for_fmap > /usr/lib/python3/dist-packages/pydicom/valuerep.py:290: UserWarning: The > value length (22) exceeds the maximum length of 16 allowed for VR SH. > warnings.warn(msg) > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED heudiconv/tests/test_main.py::test_prepare_for_datalad - > datalad.runne... > ============ 1 failed, 94 passed, 5 skipped, 47 warnings in 36.35s > ============= > E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_heudiconv/build; python3.11 -m pytest > rm -fr -- /tmp/dh-xdg-rundir-gMzdxhdF > 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/07/26/heudiconv_0.11.6-1_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230726;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230726&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.