Your message dated Tue, 19 Nov 2024 13:49:09 +0000
with message-id <[email protected]>
and subject line Bug#1087782: fixed in datalad 1.1.4-1
has caused the Debian Bug report #1087782,
regarding datalad: FTBFS: E assert 2 == 0
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.)


-- 
1087782: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1087782
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:datalad
Version: 1.1.3-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules build
dh build --with python3 --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/build/reproducible-path/datalad-1.1.3'
# cheap fake of an installed datalad, so we get .egg-info with entry points
/usr/bin/make bin
make[2]: Entering directory '/build/reproducible-path/datalad-1.1.3'
mkdir -p bin
PYTHONPATH="bin:" python3 setup.py develop --install-dir bin
running develop
/usr/lib/python3/dist-packages/setuptools/command/develop.py:41: 
EasyInstallDeprecationWarning: easy_install command is deprecated.
!!

[... snipped ...]

            ----------
            s: str
              what to append to 'datalad ' invocation
            expected: iterable of str
              What entries to expect - would raise AssertionError if any is
              not present in output
            exit_code: int, optional
              If incomplete/malformed we seems to get 2, most frequently used
              so default
Returns
            -------
            list of str
              Entries output
            """
            if os.path.exists(out_fn):  # reuse but ensure it is gone
                os.unlink(out_fn)
            comp_line = f'datalad {s}'
            runner.run(
                comp_line.split(' '),
                env=dict(os.environ,
                         _ARGCOMPLETE='1',
                         _ARGCOMPLETE_STDOUT_FILENAME=out_fn,
                         COMP_LINE=comp_line,
                         # without -1 seems to get "finished completion", 
someone can investigate more
                         COMP_POINT=str(len(comp_line)-1),  # always at the end 
ATM
                         ))
            with open(out_fn, 'rb') as f:
                entries = f.read().split(b'\x0b')
                entries = [e.decode() for e in entries]
            diff = set(expected).difference(entries)
            if diff:
                raise AssertionError(
                    f"Entries {sorted(diff)} were expected but not found in the 
completion output: {entries}"
                )
            return entries  # for extra analyzes if so desired
all_commands = get_all_commands()
      get_completions('i', {'install'})

datalad/cli/tests/test_main.py:421:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
datalad/cli/tests/test_main.py:401: in get_completions
    runner.run(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <datalad.runner.runner.WitlessRunner object at 0x7f032c717790>
cmd = ['datalad', 'i']
protocol = <class 'datalad.runner.coreprotocols.NoCapture'>, stdin = None
cwd = None
env = {'APT_CONFIG': '/var/lib/sbuild/apt.conf', 'ASFLAGS': '', 
'ASFLAGS_FOR_BUILD': '', 'CCACHE_DIR': 
'/build/reproducible-path/datalad-1.1.3/.pybuild/ccache', ...}
timeout = None, exception_on_error = True, kwargs = {}, applied_cwd = None
applied_env = {'APT_CONFIG': '/var/lib/sbuild/apt.conf', 'ASFLAGS': '', 
'ASFLAGS_FOR_BUILD': '', 'CCACHE_DIR': 
'/build/reproducible-path/datalad-1.1.3/.pybuild/ccache', ...}
threaded_runner = <datalad.runner.nonasyncrunner.ThreadedRunner object at 
0x7f032c717b30>
results_or_iterator = {'code': 1, 'stderr': '', 'stdout': ''}
results = {'code': 1, 'stderr': '', 'stdout': ''}, return_code = 1

    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 first 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. Then this argument interpreted within this function
          to not raise `CommandError` if value is False in case of non-0 exit.
        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 or it was non-0 and we were not asked ignore
        # errors
        return_code = results.get('code', None)
        if return_code is None or (return_code and exception_on_error):
            # 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: 'datalad i' 
failed with exitcode 1

datalad/runner/runner.py:242: CommandError
__________________________________ test_setup __________________________________

    def test_setup():
        # insufficient arguments
      check_setup_parser([], 2)

datalad/cli/tests/test_parser.py:73:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

args = [], exit_code = 2

    def check_setup_parser(args, exit_code=None):
        parser = None
        with patch('sys.stderr', new_callable=StringIO) as cmerr:
            with patch('sys.stdout', new_callable=StringIO) as cmout:
                if exit_code is not None:
                  with assert_raises(SystemExit) as cm:
E                   Failed: DID NOT RAISE <class 'SystemExit'>

datalad/cli/tests/test_parser.py:60: Failed
____________________________ test_run_datalad_help _____________________________

cmd = 'datalad --help'

    def check_run_and_get_output(cmd):
        runner = WitlessRunner()
        try:
            # suppress log output happen it was set to high values
            with patch.dict('os.environ', {'DATALAD_LOG_LEVEL': 'WARN'}):
              output = runner.run(
                    ["datalad", "--help"],
                    protocol=StdOutErrCapture)

datalad/tests/test_installed.py:32:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <datalad.runner.runner.WitlessRunner object at 0x7f032d3d83d0>
cmd = ['datalad', '--help']
protocol = <class 'datalad.runner.coreprotocols.StdOutErrCapture'>, stdin = None
cwd = None, env = None, timeout = None, exception_on_error = True, kwargs = {}
applied_cwd = None, applied_env = None
threaded_runner = <datalad.runner.nonasyncrunner.ThreadedRunner object at 
0x7f032d3d93d0>
results_or_iterator = {'code': 2, 'stderr': 'usage: datalad [-c 
(:name|name=value)] [-C PATH] [--cmd] [-l LEVEL]\n               
[--on-failu...to-figshare, no-annex, check-dates, unlock, uninstall, 
create-test-dataset, sshrun, shell-completion)\n', 'stdout': ''}
results = {'code': 2, 'stderr': 'usage: datalad [-c (:name|name=value)] [-C 
PATH] [--cmd] [-l LEVEL]\n               [--on-failu...to-figshare, no-annex, 
check-dates, unlock, uninstall, create-test-dataset, sshrun, 
shell-completion)\n', 'stdout': ''}
return_code = 2

    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 first 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. Then this argument interpreted within this function
          to not raise `CommandError` if value is False in case of non-0 exit.
        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 or it was non-0 and we were not asked ignore
        # errors
        return_code = results.get('code', None)
        if return_code is None or (return_code and exception_on_error):
            # 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: 'datalad 
--help' failed with exitcode 2 [err: 'usage: datalad [-c (:name|name=value)] 
[-C PATH] [--cmd] [-l LEVEL]
E                          [--on-failure {ignore,continue,stop}]
E                          [--report-status 
{success,failure,ok,notneeded,impossible,error}]
E                          [--report-type {dataset,file}]
E                          [-f 
{generic,json,json_pp,tailored,disabled,'<template>'}]
E                          [--dbg] [--idbg] [--version]
E                          
{create-sibling-github,create-sibling-gitlab,create-sibling-gogs,create-sibling-gin,create-sibling-gitea,create-sibling-ria,create-sibling,siblings,update,subdatasets,drop,remove,addurls,copy-file,download-url,foreach-dataset,install,rerun,run-procedure,create,save,status,clone,get,push,run,diff,configuration,wtf,clean,add-archive-content,add-readme,export-archive,export-archive-ora,export-to-figshare,no-annex,check-dates,unlock,uninstall,create-test-dataset,sshrun,shell-completion}
E                          ...
E           datalad: error: argument 
{create-sibling-github,create-sibling-gitlab,create-sibling-gogs,create-sibling-gin,create-sibling-gitea,create-sibling-ria,create-sibling,siblings,update,subdatasets,drop,remove,addurls,copy-file,download-url,foreach-dataset,install,rerun,run-procedure,create,save,status,clone,get,push,run,diff,configuration,wtf,clean,add-archive-content,add-readme,export-archive,export-archive-ora,export-to-figshare,no-annex,check-dates,unlock,uninstall,create-test-dataset,sshrun,shell-completion}:
 invalid choice: '/build/reproducible-path/datalad-1.1.3/bin/datalad' (choose 
from create-sibling-github, create-sibling-gitlab, create-sibling-gogs, 
create-sibling-gin, create-sibling-gitea, create-sibling-ria, create-sibling, 
siblings, update, subdatasets, drop, remove, addurls, copy-file, download-url, 
foreach-dataset, install, rerun, run-procedure, create, save, status, clone, 
get, push, run, diff, configuration, wtf, clean, add-archive-content, 
add-readme, export-archive, export-archive-ora, export-to-figshare, no-annex, 
check-dates, unlock, uninstall, create-test-dataset, sshrun, shell-completion)']

datalad/runner/runner.py:242: CommandError

During handling of the above exception, another exception occurred:

    @assert_cwd_unchanged
    def test_run_datalad_help():
      out, err = check_run_and_get_output("datalad --help")

datalad/tests/test_installed.py:43:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

cmd = 'datalad --help'

    def check_run_and_get_output(cmd):
        runner = WitlessRunner()
        try:
            # suppress log output happen it was set to high values
            with patch.dict('os.environ', {'DATALAD_LOG_LEVEL': 'WARN'}):
                output = runner.run(
                    ["datalad", "--help"],
                    protocol=StdOutErrCapture)
        except CommandError as e:
          raise AssertionError("'datalad --help' failed to start normally. "
                                 "Exited with %d and output %s" % (e.code, 
(e.stdout, e.stderr)))
E           AssertionError: 'datalad --help' failed to start normally. Exited with 2 and output 
('', "usage: datalad [-c (:name|name=value)] [-C PATH] [--cmd] [-l LEVEL]\n               
[--on-failure {ignore,continue,stop}]\n               [--report-status 
{success,failure,ok,notneeded,impossible,error}]\n               [--report-type 
{dataset,file}]\n               [-f 
{generic,json,json_pp,tailored,disabled,'<template>'}]\n               [--dbg] [--idbg] 
[--version]\n               
{create-sibling-github,create-sibling-gitlab,create-sibling-gogs,create-sibling-gin,create-sibling-gitea,create-sibling-ria,create-sibling,siblings,update,subdatasets,drop,remove,addurls,copy-file,download-url,foreach-dataset,install,rerun,run-procedure,create,save,status,clone,get,push,run,diff,configuration,wtf,clean,add-archive-content,add-readme,export-archive,export-archive-ora,export-to-figshare,no-annex,check-dates,unlock,uninstall,create-test-dataset,sshrun,shell-completion}\n
               ...\ndatalad: error: argument 
{create-sibling-github,create-sibling-gitlab,create-sibling-gogs,create-sibling-gin,create-sibling-gitea,create-sibling-ria,create-sibling,siblings,update,subdatasets,drop,remove,addurls,copy-file,download-url,foreach-dataset,install,rerun,run-procedure,create,save,status,clone,get,push,run,diff,configuration,wtf,clean,add-archive-content,add-readme,export-archive,export-archive-ora,export-to-figshare,no-annex,check-dates,unlock,uninstall,create-test-dataset,sshrun,shell-completion}:
 invalid choice: '/build/reproducible-path/datalad-1.1.3/bin/datalad' (choose from 
create-sibling-github, create-sibling-gitlab, create-sibling-gogs, create-sibling-gin, 
create-sibling-gitea, create-sibling-ria, create-sibling, siblings, update, subdatasets, drop, 
remove, addurls, copy-file, download-url, foreach-dataset, install, rerun, run-procedure, 
create, save, status, clone, get, push, run, diff, configuration, wtf, clean, 
add-archive-content, add-readme, export-archive, export-archive-ora, export-to-figshare, 
no-annex, check-dates, unlock, uninstall, create-test-dataset, sshrun, 
shell-completion)\n")

datalad/tests/test_installed.py:36: AssertionError
=============================== warnings summary ===============================
.pybuild/cpython3_3.12_datalad/build/datalad/downloaders/tests/test_http.py: 13 
warnings
  /usr/lib/python3/dist-packages/httpretty/core.py:1077: DeprecationWarning: 
datetime.datetime.utcnow() is deprecated and scheduled for removal in a future 
version. Use timezone-aware objects to represent datetimes in UTC: 
datetime.datetime.now(datetime.UTC).
    now = datetime.utcnow()

.pybuild/cpython3_3.12_datalad/build/datalad/downloaders/tests/test_http.py: 1 
warning
.pybuild/cpython3_3.12_datalad/build/datalad/downloaders/tests/test_shub.py: 3 
warnings
.pybuild/cpython3_3.12_datalad/build/datalad/local/tests/test_add_archive_content.py:
 3 warnings
.pybuild/cpython3_3.12_datalad/build/datalad/local/tests/test_addurls.py: 1 
warning
.pybuild/cpython3_3.12_datalad/build/datalad/local/tests/test_copy_file.py: 2 
warnings
.pybuild/cpython3_3.12_datalad/build/datalad/local/tests/test_download_url.py: 
5 warnings
.pybuild/cpython3_3.12_datalad/build/datalad/runner/tests/test_nonasyncrunner.py:
 1 warning
.pybuild/cpython3_3.12_datalad/build/datalad/support/tests/test_annexrepo.py: 7 
warnings
.pybuild/cpython3_3.12_datalad/build/datalad/support/tests/test_locking.py: 2 
warnings
  /usr/lib/python3.12/multiprocessing/popen_fork.py:66: DeprecationWarning: 
This process (pid=778939) is multi-threaded, use of fork() may lead to 
deadlocks in the child.
    self.pid = os.fork()

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED datalad/cli/tests/test_main.py::test_version - assert 2 == 0
FAILED datalad/cli/tests/test_main.py::test_help_np - assert 2 == 0
FAILED datalad/cli/tests/test_main.py::test_dashh - assert 2 == 0
FAILED datalad/cli/tests/test_main.py::test_combined_short_option - assert 't...
FAILED datalad/cli/tests/test_main.py::test_incorrect_option[opts0-error: 
(invalid|too few arguments|unrecognized argument)]
FAILED datalad/cli/tests/test_main.py::test_incorrect_option[opts1-error: 
(invalid|too few arguments|unrecognized argument)]
FAILED datalad/cli/tests/test_main.py::test_incorrect_option[opts2-error: 
(invalid|too few arguments|unrecognized argument)]
FAILED datalad/cli/tests/test_main.py::test_incorrect_option[opts3-error: 
(invalid|too few arguments|unrecognized argument)]
FAILED datalad/cli/tests/test_main.py::test_script_shims[datalad] - datalad.r...
FAILED datalad/cli/tests/test_main.py::test_completion - datalad.runner.excep...
FAILED datalad/cli/tests/test_parser.py::test_setup - Failed: DID NOT RAISE <...
FAILED datalad/tests/test_installed.py::test_run_datalad_help - AssertionErro...
= 12 failed, 1095 passed, 105 skipped, 57 deselected, 2 xfailed, 1 xpassed, 38 
warnings in 883.65s (0:14:43) =
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd 
/build/reproducible-path/datalad-1.1.3/.pybuild/cpython3_3.12_datalad/build; 
python3.12 -m pytest -s -v -k 'not test_test and not 
test_subprocess_return_code_capture and not test_gracefull_death' -c 
/build/reproducible-path/datalad-1.1.3/tox.ini
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" --test-pytest returned exit code 13
make[1]: *** [debian/rules:44: override_dh_auto_test] Error 25
make[1]: Leaving directory '/build/reproducible-path/datalad-1.1.3'
make: *** [debian/rules:25: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

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

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 could not 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 affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
Source: datalad
Source-Version: 1.1.4-1
Done: Yaroslav Halchenko <[email protected]>

We believe that the bug you reported is fixed in the latest version of
datalad, 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.
Yaroslav Halchenko <[email protected]> (supplier of updated datalad 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: SHA256

Format: 1.8
Date: Mon, 18 Nov 2024 17:30:21 -0500
Source: datalad
Architecture: source
Version: 1.1.4-1
Distribution: unstable
Urgency: medium
Maintainer: NeuroDebian Team <[email protected]>
Changed-By: Yaroslav Halchenko <[email protected]>
Closes: 1087782
Changes:
 datalad (1.1.4-1) unstable; urgency=medium
 .
   * New upstream release
     - addresses compatibility with patched in Debian Python 3.12
       (Closes: #1087782)
   * debian/patches
     - refreshed
     - + 0001-maint-in-python3.13-exc_type-should-not-be-used-depr.patch
       for python >= 3.13 warning-free compatibility
   * debian/rules
     - disable  "test_completion" test, issue filed upstreams
       https://github.com/datalad/datalad/issues/7684
       https://github.com/kislyuk/argcomplete/issues/514 .
       Debian python 3.12 is to blame.
     - disable "test_ProducerConsumer" - seems order of results is different
       than expected in 3.13 . Not critical
Checksums-Sha1:
 872d96b6eeefa51965e2ea44ca24fc09db859d28 2747 datalad_1.1.4-1.dsc
 bfe248a0e9a8ce169bcc368ba9af16cfd2481a4e 1426021 datalad_1.1.4.orig.tar.gz
 d7e5d2223645b8175912100bf48a2a5a30e349ce 20140 datalad_1.1.4-1.debian.tar.xz
 dafe893615cb3fb7b203bb0c39fccd558cf5f998 14295 datalad_1.1.4-1_source.buildinfo
Checksums-Sha256:
 5915f980ed95cab3e98a1c98e6916ebc1fbd44d1785df3afc0bfc1eec5721c75 2747 
datalad_1.1.4-1.dsc
 db9286a4baf74d53d23c3bfb5928452197d57f36abed8ba0af334a3dd038166b 1426021 
datalad_1.1.4.orig.tar.gz
 c66ebcd92c89cb128e0da23349946ac912fe9575b27798d19139a357b952ea4b 20140 
datalad_1.1.4-1.debian.tar.xz
 a4ac3f481946ae452ca064e1618aac28c63206dc829d7c81e4ba1028301f4ce8 14295 
datalad_1.1.4-1_source.buildinfo
Files:
 df52f2fe69e46f33b0c33ede1ff22997 2747 science optional datalad_1.1.4-1.dsc
 d1358cb6823a18dc953c4b62e2a6dde8 1426021 science optional 
datalad_1.1.4.orig.tar.gz
 d4747d51f08fa82e8e6b9f66a5b6a310 20140 science optional 
datalad_1.1.4-1.debian.tar.xz
 9ed42888b8a6fe9ee4d1cb7f8f8c2c71 14295 science optional 
datalad_1.1.4-1_source.buildinfo

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

iQIzBAEBCAAdFiEExbkF8OjZ/ZZo/zZvot4jUGLaM/oFAmc8H20ACgkQot4jUGLa
M/oGMA/5AUosSTj60sV8/e7qChffsIyK4E02aWcqua6YSeUMHDmy9DmkZetjLTYS
OG5FP95JNFjqX57Ek6hONKJ1vYDeqieInJ4M9gPxlsFR8ysRJEPUOexskwf0k6xB
0bPapzRuDVFihdU7hi8rI6fbSlRvyCqhFdEQ/H6kaOtkUT4uqr8MHCiJvGeZKyci
Jb8z4kinWw9KBQVXXNrDnle0d0Seo2Rq+CjsYJMD0er6/bG3lIGAYo/GyduR5zqX
ysqX9i6bJc608cOxEKSwrzjMVXo8yGtwV7CKJheEOBaMSwBguNDjYwOFyRCo5sdN
oECk0j34JXh44uDHSvY0NpQEcpWXsnkq8uc7lWyjfoD0ag84pBvmPWk4o3HuAhy3
KC6w/mfx0MbFEWLiteDcB/A8Q38T3koiOlN3uNDuDqeEMfuTVhSl/elfZHWk4RXa
Y0toKrmZclHAa7NA3AdNDrnGxa9Tl2qJNGYJpCn20h8TawbHm+8/G5txFgNry2Mi
RGSMEwlaGlttxSL5lVt2A1M5OfMlWwuzWbHn5zutjtJy8rpBQkymp2Sh9a6BnB0n
ESdcS09XrQyw7fxm8cQrBJXXzNb4Uq1YqgURlKHUBTSFAKScAhXSlk6+Jb4obFhT
q8RYjCEzhbycK63qJ65MAeje/7l8X0rcDXikc8ZLTqcgNOpXnNE=
=Kd8o
-----END PGP SIGNATURE-----

Attachment: pgpxWug6Vmmkc.pgp
Description: PGP signature


--- End Message ---

Reply via email to