Skip to content

acc: Avoid selecting entire invariant suites when adding exclusions - #7307

Merged
janniklasrose merged 2 commits into
mainfrom
janniklasrose/fix-regression-test-selection
Nov 4, 2026
Merged

janniklasrose merged 2 commits into
mainfrom
janniklasrose/fix-regression-test-selection

Conversation

@janniklasrose

@janniklasrose janniklasrose commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Changes

Stop selecting an entire invariant suite when its test.toml only adds exclusions. Script changes, removed exclusions, and overrides of inherited rules still select the suite.

The new Git-backed acceptance/selftest/selection_exclusions has two suites, migrate and no_drift. Adding new.yml.tmpl and excluding it from migrate selects only no_drift/INPUT_CONFIG=new.yml.tmpl. Changing the migration script or removing its exclusion selects the migration suite again.

The harness also omits unselected variants from the report and explicitly skips a directory if no selected variants remain after exclusions.

Why

The report on #7094 had 660 rows for 14 selected entries: 551 filtered-out variants and 84 unrelated migration cases. Those rows filled the comment budget and hid all 16 failure details. limit=20 caps selection entries; one directory entry can expand to many matrix variants.

Tests

  • ./task fmt, ./task checks, and ./task lint pass.
  • ./task test passes. Both variants of the existing presets_name_prefix_dev test passed on retry after a temporary sandbox /tmp/.git artifact caused Git metadata mismatches.
  • Git-backed acceptance self-test covers adding an exclusion, changing the script, and removing the exclusion.
  • Targeted selection, regression-report, and subset unit tests pass.
  • Verified with the actual harness that combination exclusions removing every selected variant produce a skip.

Replayed acceptance/selftest/selection_exclusions/script against the pre-fix selector (050b89d) and this PR. For the first scenario, adding a template and excluding it from migration:

Before the fix:

Selected 2 changed tests (limit=50, 0 not selected)
   10  ^bundle$/^invariant$/^no_drift$/^INPUT_CONFIG=new\.yml\.tmpl$
    5  ^bundle$/^invariant$/^migrate$

With this PR:

Selected 1 changed tests (limit=50, 0 not selected)
   10  ^bundle$/^invariant$/^no_drift$/^INPUT_CONFIG=new\.yml\.tmpl$

The extra migrate entry selected all existing migration variants even though the config edit only added an exclusion. The other two scenarios print identically before and after: changing the migration script or removing the exclusion still selects migration.

This PR and its description were written by Codex.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: ce1ff05

Run: 41680545695

Env 🔄​flaky ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 271 16 13:48
🔄​ aws-windows-latest-4core-16gb 1 272 14 12:08
✅​ azure linux-2core-8gb 270 16 10:25
✅​ azure-windows-latest-4core-16gb 272 14 10:03
🔄​ gcp linux-2core-8gb 1 270 16 10:44
🔄​ gcp-windows-latest-4core-16gb 1 272 14 10:31
Test Name aws-windows-latest-4core-16gb gcp linux-2core-8gb gcp-windows-latest-4core-16gb
🔄​ TestSyncIncrementalFileSync 🔄​f 🔄​f ✅​p
🔄​ TestSyncIncrementalSyncPythonNotebookToFile ✅​p ✅​p 🔄​f
Top 25 slowest tests (at least 2 minutes):
duration env testname
3:49 aws-windows-latest-4core-16gb TestFilerRecursiveDelete/workspace_files
3:43 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsReadDir
3:41 aws linux-2core-8gb TestFilerWorkspaceFilesExtensionsRead
3:17 aws linux-2core-8gb TestFilerRecursiveDelete/workspace_files
3:13 gcp-windows-latest-4core-16gb TestAccept
3:11 azure-windows-latest-4core-16gb TestAccept
3:10 gcp-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsRead
3:06 aws-windows-latest-4core-16gb TestAccept
2:57 gcp-windows-latest-4core-16gb TestFilerWorkspaceNotebook/sqlJupyterNotebook.ipynb
2:55 aws linux-2core-8gb TestFilerWorkspaceFilesExtensionsReadDir
2:51 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsStat
2:47 aws-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsReadDir
2:45 aws linux-2core-8gb TestLock
2:40 aws-windows-latest-4core-16gb TestImportDir
2:28 aws-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsDelete
2:23 aws linux-2core-8gb TestFilerReadWrite/workspace_files_extensions
2:22 gcp-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsStat
2:22 aws-windows-latest-4core-16gb TestFilerReadWrite/workspace_files_extensions
2:20 azure linux-2core-8gb TestFilerRecursiveDelete/workspace_files
2:20 gcp-windows-latest-4core-16gb TestFilerRecursiveDelete/workspace_files
2:15 azure-windows-latest-4core-16gb TestFilerWorkspaceFilesExtensionsRead
2:10 azure-windows-latest-4core-16gb TestFilerReadWrite/workspace_files
2:09 gcp linux-2core-8gb TestFilerRecursiveDelete/workspace_files
2:05 gcp linux-2core-8gb TestAccept
2:01 aws linux-2core-8gb TestFilerWorkspaceFilesExtensionsStat

@denik denik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not clear what this does. We have acceptance test

acceptance/selftest/selection

maybe add similar one that demoes this feature?

@janniklasrose janniklasrose changed the title acc: Avoid selecting unchanged invariant test variants acc: Avoid selecting entire invariant suites when adding exclusions Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Commit: ce1ff05f7 | Workflow run

Regression test report

Selected 1 changed tests (limit=20, 0 not selected)

1 tests: regression=0 unreleased=0 coverage=1 failing=0
test branch main (44f2eda) latest (v1.23.0)
TestAccept/selftest/selection_exclusions ✅ ✅ ✅

@janniklasrose
janniklasrose marked this pull request as ready for review November 4, 2026 23:06
@janniklasrose
janniklasrose requested a review from a team as a code owner November 4, 2026 23:06
@janniklasrose
janniklasrose added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit 7adc80d Nov 4, 2026
27 checks passed
@janniklasrose
janniklasrose deleted the janniklasrose/fix-regression-test-selection branch November 4, 2026 23:17
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 7adc80d

Run: 41932556902

Env ❌​FAIL 🔄​flaky ✅​pass 🙈​skip Time
❌​ aws linux-2core-8gb 32 1485 1256 202:56
❌​ aws-windows-latest-4core-16gb 24 1412 1283 220:29
🔄​ azure linux-2core-8gb 6 1358 1308 117:31
✅​ azure-windows-latest-4core-16gb 1283 1335 123:40
✅​ gcp linux-2core-8gb 1351 1313 121:04
✅​ gcp-windows-latest-4core-16gb 1270 1340 128:54
40 interesting tests: 34 FAIL, 6 flaky
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb
❌​ TestAccept ❌​F ❌​F ✅​p
🔄​ TestAccept/bundle/config-remote-sync/policy_injected_cluster_fields ✅​p 🙈​s 🔄​f
🔄​ TestAccept/bundle/config-remote-sync/policy_injected_cluster_fields/DMS=true ✅​p 🔄​f
🔄​ TestAccept/bundle/deployment/bind/experiment ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/deployment/bind/experiment/DMS=true ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/invariant/no_drift ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN= ❌​F ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/simple ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/simple/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/simple/DMS=true ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=true ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS= ❌​F ❌​F ✅​p
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true ❌​F ❌​F ✅​p
🔄​ TestAccept/bundle/resources/grants/volume_change_name ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/grants/volume_change_name/DMS=true ✅​p ✅​p 🔄​f
❌​ TestAccept/bundle/resources/postgres_synced_tables/recreate ❌​F ✅​p 🙈​s
❌​ TestAccept/bundle/resources/postgres_synced_tables/recreate/DMS=true ❌​F ✅​p
❌​ TestAccept/bundle/resources/quality_monitors/change_table_name ✅​p ❌​F ✅​p
❌​ TestAccept/bundle/resources/quality_monitors/change_table_name/DMS= ✅​p ❌​F ✅​p
Top 50 slowest tests (at least 2 minutes):
duration env testname
15:17 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
13:31 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
11:56 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
10:10 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
9:45 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:42 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
9:36 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
9:28 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:10 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
8:54 aws-windows-latest-4core-16gb TestAccept/bundle/deploy/spark-jar-task/DMS=true
8:44 aws-windows-latest-4core-16gb TestAccept/bundle/deploy/spark-jar-task/DMS=
8:40 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:39 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:37 azure linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
8:36 azure linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
8:35 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
8:34 azure linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
8:33 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:32 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
8:14 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
8:12 azure linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
7:28 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
7:26 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
7:24 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:20 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:18 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
7:16 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
7:14 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
7:10 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
7:09 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
7:09 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
7:08 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
7:01 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
6:59 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
6:59 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
6:51 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
6:49 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
6:47 azure linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:40 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
6:40 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
6:35 aws linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:34 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
6:30 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
6:18 aws linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
6:18 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
6:12 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
6:11 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
6:11 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
5:55 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
5:53 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants