Skip to content

[Dev] archery integration --with-all does not enable any implementation #55161

Open

Description

@Nishuuzz

Describe the bug, including details regarding any error messages, version, and platform.

archery integration --with-all accepts the flag and then ignores it, so no implementation is enabled.

The flag is declared as

@click.option('--with-all', is_flag=True, default=False,
              help=('Include all known implementations by default '
                    'in integration tests'))

and bound as an explicit parameter of integration(with_all=False, ...), but the body never reads with_all. Because it is a named parameter it is also excluded from **args, so it never reaches select_testers() either. Every --with-<lang> option is declared default=False, so select_testers() always receives an explicit False for each one, overriding its own with_cpp=True, with_java=True, ... defaults.

The result is that the command documented in docs/source/format/Integration.rst fails:

$ archery integration --with-all --run-flight --run-ipc --run-c-data
Error: Need to enable at least one implementation to test; try --help

while naming an implementation explicitly works as expected:

$ archery integration --with-cpp=1 --run-ipc
...

This looks like it has been the case since the command was introduced in ARROW-6466 (5ca8592). That commit added --with-all, added the helper

def _set_default(opt, default):
    if opt is None:
        return default
    return opt

directly above the command, and declared the --with-<lang> options with default=False. _set_default has never been called from anywhere in the repository, which suggests the intent was for --with-all to supply the default for the individual options and that the wiring was simply never completed.

Component(s)

Developer Tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions