Skip to content

GH-55161: [Dev] Remove the archery integration --with-all option - #55162

Open
Nishuuzz wants to merge 1 commit into
apache:mainfrom
Nishuuzz:archery-with-all
Open

Nishuuzz wants to merge 1 commit into
apache:mainfrom
Nishuuzz:archery-with-all

Conversation

@Nishuuzz

@Nishuuzz Nishuuzz commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Rationale for this change

archery integration --with-all has not worked since 22.0.0. It was implemented by a loop in integration(), which GH-47650 (9a21925) removed along with enabled_implementations when select_testers() took over, so the flag has been accepted and ignored ever since.

This PR originally restored it. On review the preference was to drop it instead: nothing in the repository passes --with-all — CI goes through ARCHERY_INTEGRATION_WITH_*, verify-release-candidate.sh and generate_files_for_endian_test.sh pass explicit --with-<lang> flags — and no bug reports have come in. If it turns out to be wanted, it can come back.

The one option that doesn't work is leaving things as they are, because docs/source/format/Integration.rst still told contributors to run it:

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

Closes #55161.

What changes are included in this PR?

  • Remove the --with-all option and its parameter from archery integration.
  • Rewrite the "run all tests" example in Integration.rst to enable each implementation explicitly, in the same style as the two examples above it.

Nothing else in the tree referenced with_all.

Are these changes tested?

No new tests. Click rejects an option that no longer exists, so there is no behaviour of our own left to pin down, and a test asserting the absence of a flag would just have to be deleted if it ever came back.

What I checked locally:

  • archery integration --with-all --run-ipc now exits 2 with No such option '--with-all', and Click suggests the real --with-<lang> options.
  • The paths that already worked are untouched: with no flags nothing is enabled, and --with-cpp=1 still enables only C++.
  • The newly documented command enables all eight implementations, checked by stubbing select_testers() and inspecting what it receives.
  • archery test run: 26 failed / 24 passed / 1 skipped, identical to pristine main. The 26 are pre-existing docker FileNotFoundErrors on this machine, nothing to do with this change.
  • flake8 --config python/setup.cfg clean.

Are there any user-facing changes?

archery integration --with-all is no longer accepted and now errors instead of being silently ignored. Since it has done nothing since 22.0.0, no working invocation changes behaviour.

Was AI used for this PR?

In accordance to the AI generation guidelines, please disclose below whether and how AI was used in this PR.

Found with a static scan for parameters a function accepts and never reads. The code and this description were AI-assisted. My first description of the history was wrong — it claimed the flag had never worked — and that was corrected in review; the account above was read from the commits.

PR code and description written by:

  • Human
  • AI

Reviewed before submission by:

  • Human
  • AI
  • Not reviewed

@Nishuuzz
Nishuuzz requested a review from pitrou as a code owner October 23, 2026 16:24
@github-actions github-actions Bot added the awaiting review Awaiting review label Oct 23, 2026
@github-actions

Copy link
Copy Markdown

⚠️ GitHub issue #55161 has been automatically assigned in GitHub to PR creator.

@kou

kou commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

It seems that --with-all did work originally: integration() had if with_all: args[param] = with_all. It was removed by GH-47650 (9a21925, 22.0.0) when switching to select_testers().

We haven't received any real-world bug reports since the commit. We may not need this feature.

@Nishuuzz

Copy link
Copy Markdown
Contributor Author

You're right, and my description was wrong. Thanks for digging out the actual history.

I checked 5ca8592 and the loop was there:

    for lang in implementations:
        param = f'with_{lang}'
        if with_all:
            args[param] = with_all
        enabled_implementations += args[param]

and 9a21925 dropped it along with enabled_implementations when select_testers() took over. So this is a regression in 22.0.0, not a feature that was never wired up. I should also withdraw the _set_default claim in my description — that helper has been unused since 2019 and has nothing to do with --with-all; I used it because it happened to fit, not because it was left over from this.

On whether the feature is needed, one thing that I think explains the silence: nothing in the repository passes --with-all. CI goes through ARCHERY_INTEGRATION_WITH_* in ci/scripts/integration_arrow.sh, verify-release-candidate.sh passes --with-cpp=${TEST_INTEGRATION_CPP}, and generate_files_for_endian_test.sh passes --with-cpp=1. The only reference left is docs/source/format/Integration.rst:

   archery integration --with-all --run-flight --run-ipc --run-c-data

So the people who would hit this are contributors following that page locally, and the failure is a Need to enable at least one implementation to test that looks like their own setup being wrong rather than a broken flag. That's not the kind of thing that usually turns into a bug report.

Either direction is fine by me and it's your call — I'd just rather the docs and the code agreed:

  • keep it, as in this PR, and the documented command works again;
  • or drop --with-all entirely, in which case that doc line needs rewriting with explicit --with-<lang> flags. Happy to switch this PR over to that if you prefer; it's a smaller diff than what's here.

If you do keep it, two differences from the pre-22.0.0 behaviour worth deciding on, since neither is forced:

  1. The old loop assigned unconditionally, so --with-all --with-java=0 still enabled Java. Mine lets the explicit value win, which is why the options moved to default=None. I chose that because the help text says "by default", but matching the old behaviour exactly is a two-line change.
  2. The old list was hardcoded, and --with-ruby was added after it was removed, so it would not have been picked up. Mine derives the set from the with_* options, so a new implementation is included automatically. That seemed worth keeping given a stale hardcoded list is roughly how this got lost in the first place.

@kou

kou commented Oct 26, 2026

Copy link
Copy Markdown
Member

Let's remove this feature. If someone needs this again, let's revisit this.

--with-all stopped working in 22.0.0: apacheGH-47650 (9a21925) removed the
loop in integration() that implemented it when select_testers() took
over, so the flag has been accepted and ignored since then.

Nothing in the repository passes it. CI goes through
ARCHERY_INTEGRATION_WITH_*, and verify-release-candidate.sh and
generate_files_for_endian_test.sh pass explicit --with-<lang> flags, so
remove the option rather than restore it.

docs/source/format/Integration.rst was the one place still telling
contributors to use it, so rewrite that example to enable each
implementation explicitly, matching the two examples above it.
@Nishuuzz Nishuuzz changed the title GH-55161: [Dev] Make archery integration --with-all enable every implementation GH-55161: [Dev] Remove the archery integration --with-all option Oct 26, 2026
@Nishuuzz

Copy link
Copy Markdown
Contributor Author

Done — switched this over to removing --with-all. Rebased on main and force-pushed, so it is now just the option and its parameter gone, plus the Integration.rst example rewritten to enable each implementation explicitly, since that page was the only thing still pointing at the flag. The description is rewritten to match.

No test, since Click rejects an unknown option on its own and a test asserting a flag's absence would only have to be deleted if it ever came back. I did check that --with-all now exits 2 with No such option '--with-all', that the untouched paths still behave (nothing enabled with no flags, only C++ with --with-cpp=1), that the newly documented command enables all eight implementations, and that the archery suite matches pristine main.

One aside, not part of this: _set_default() just above the command is unused, and has been since it was added in 2019 — it is visible in the first hunk. Happy to drop it here if you would like it gone, or leave it alone.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants