Skip to content

walk: replace the generated walkers with one driven by cached struct info - #7373

Draft
denik wants to merge 2 commits into
denik/typed-config-walkersfrom
denik/structinfo-walkers
Draft

denik wants to merge 2 commits into
denik/typed-config-walkersfrom
denik/structinfo-walkers

Conversation

@denik

@denik denik commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Changes

Replaces the generated required, enum and strings walkers (about 29k lines, 5 MB of binary) with one walker driven by per-type information that libs/structs/structinfo caches: field offsets, kinds, required fields, enum values, and for each rule the fields that lead to something to visit. The defaults walker and the resource iterators stay generated.

Also flags the maps and slices a file wrote as empty ({}, []) on the Locations tree. A typed value cannot tell them from unset ones.

Why

The generated walkers are most of what #7098 adds to the binary (+5 MB) and to the code (+30k generated lines). With this change the binary is +0.6 MB over main, and bundle validate on 1000 jobs is unchanged (0.48 s against 0.51 s).

Per walk on 1000 jobs: required is faster (0.85 ms against 1.25 ms), enum and strings are 1.3-1.5x slower (0.6 ms against 0.4 ms, 2.9 ms against 2.2 ms) with a quarter of the allocations. The possible optimizations are noted in bundle/config/walk/rule_walk.go.

Stacked on #7098.

Tests

Unit tests, the existing acceptance tests (TestAccept/bundle passes), and new TestIsEmpty and TestRootEmpties for the empty flag. BenchmarkRequired, BenchmarkEnum and BenchmarkStrings* in bundle/config/walk.

This pull request and its description were written by Isaac.

denik and others added 2 commits November 5, 2026 09:03
…truct info

Replaces the generated required, enum and strings walkers with one walker driven by the
cached per-type information of libs/structs/structinfo (field offsets, kinds, required
fields, enum values, and for each rule the fields that lead to something to visit).
The generated walkers were about 29k lines and 5 MB of binary.

Also flags the maps and slices a file wrote as empty ({} or []) on the Locations tree,
so that the typed configuration can tell them from unset ones.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Commit: d2ee1fdb2 | Workflow run

Regression test report

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

42 tests: regression=22 unreleased=2 coverage=18 failing=0

test branch main (3aa5c96) latest (v1.24.0)
TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=0.266.0 ✅ ❌ ❌
TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=current ✅ ❌ ❌
TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=0.266.0 ✅ ❌ ❌
TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=current ✅ ❌ ❌
TestAccept/bundle/refschema/DMS= ✅ ❌ ❌
TestAccept/bundle/refschema/DMS=true ✅ ❌ ❌
TestAccept/bundle/strict_profile_match/default_profile/host/DMS= ✅ ❌ ❌
TestAccept/bundle/strict_profile_match/default_profile/host/DMS=true ✅ ❌ ❌
TestAccept/bundle/strict_profile_match/host/DMS= ✅ ❌ ❌
TestAccept/bundle/strict_profile_match/host/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/app_resource_duplicate_name_location/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/app_resource_duplicate_name_location/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/includes/merge_failure_short_circuits_diagnostics/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/includes/merge_failure_short_circuits_diagnostics/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/nulls/resources_container/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/nulls/resources_container/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/references/resolved_invalid_map_value/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/references/resolved_invalid_map_value/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/references/resolved_invalid_sequence_item/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/references/resolved_invalid_sequence_item/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/references/resolved_invalid_sequence_items/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/references/resolved_invalid_sequence_items/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/references/to_omitted_struct_defaults/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/references/to_omitted_struct_defaults/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/required/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/required/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/targets/scalar_rewrite_diagnostic/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/targets/scalar_rewrite_diagnostic/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/variables/complex_default_nested_timestamp/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/variables/complex_default_nested_timestamp/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/variables/complex_unknown_field_location/DMS= ✅ ❌ ❌
TestAccept/bundle/validate/variables/complex_unknown_field_location/DMS=true ✅ ❌ ❌
TestAccept/bundle/validate/variables/target_timestamp_shorthand/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/variables/target_timestamp_shorthand/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/yaml_anchors/duplicate_merge_keys/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/yaml_anchors/duplicate_merge_keys/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/yaml_anchors/inline_merge_mapping/DMS= ✅ ✅ ❌
TestAccept/bundle/validate/yaml_anchors/inline_merge_mapping/DMS=true ✅ ✅ ❌
TestAccept/bundle/validate/yaml_anchors/invalid_merge_sequence_member/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/yaml_anchors/invalid_merge_sequence_member/DMS=true ✅ ✅ ✅
TestAccept/bundle/validate/yaml_duplicate_keys/shadowed_invalid_subtree/DMS= ✅ ✅ ✅
TestAccept/bundle/validate/yaml_duplicate_keys/shadowed_invalid_subtree/DMS=true ✅ ✅ ✅
TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=0.266.0: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: 
        	Error Trace:	/home/runner/work/cli/cli/libs/testdiff/testdiff.go:22
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1341
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1082
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:659
        	Error:      	Not equal: 
        	            	expected: "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nValidation OK!\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	actual  : "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nFound 1 warning\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -2,2 +2,6 @@
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 Name: my_project
        	            	@@ -8,5 +12,9 @@
        	            	 
        	            	-Validation OK!
        	            	+Found 1 warning
        	            	 
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate --output json
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 {
        	Test:       	TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=0.266.0
        	Messages:   	bundle/python/pipeline-development-deprecated/output.txt vs /tmp/TestAcceptbundlepythonpipeline-development-deprecatedDMS=PY3805279215/002/output.txt

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=current: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: 
        	Error Trace:	/home/runner/work/cli/cli/libs/testdiff/testdiff.go:22
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1341
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1082
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:659
        	Error:      	Not equal: 
        	            	expected: "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nValidation OK!\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	actual  : "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nFound 1 warning\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -2,2 +2,6 @@
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 Name: my_project
        	            	@@ -8,5 +12,9 @@
        	            	 
        	            	-Validation OK!
        	            	+Found 1 warning
        	            	 
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate --output json
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 {
        	Test:       	TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=current
        	Messages:   	bundle/python/pipeline-development-deprecated/output.txt vs /tmp/TestAcceptbundlepythonpipeline-development-deprecatedDMS=PY2914851832/002/output.txt

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=0.266.0: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: 
        	Error Trace:	/home/runner/work/cli/cli/libs/testdiff/testdiff.go:22
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1341
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1082
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:659
        	Error:      	Not equal: 
        	            	expected: "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nValidation OK!\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	actual  : "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nFound 1 warning\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -2,2 +2,6 @@
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 Name: my_project
        	            	@@ -8,5 +12,9 @@
        	            	 
        	            	-Validation OK!
        	            	+Found 1 warning
        	            	 
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate --output json
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 {
        	Test:       	TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=0.266.0
        	Messages:   	bundle/python/pipeline-development-deprecated/output.txt vs /tmp/TestAcceptbundlepythonpipeline-development-deprecatedDMS=tru374563450/002/output.txt

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=current: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: 
        	Error Trace:	/home/runner/work/cli/cli/libs/testdiff/testdiff.go:22
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1341
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:1082
        	            				/home/runner/work/cli/cli/acceptance/acceptance_test.go:659
        	Error:      	Not equal: 
        	            	expected: "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nValidation OK!\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	actual  : "\n>>> uv run [UV_ARGS] -q [CLI] bundle validate\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\nName: my_project\nTarget: dev\nWorkspace:\n  User: [USERNAME]\n  Path: /Workspace/Users/[USERNAME]/.bundle/my_project/dev\n\nFound 1 warning\n\n>>> uv run [UV_ARGS] -q [CLI] bundle validate --output json\nWarning: The \"development\" property of pipelines is deprecated. Use \"mode: development\" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.\n  at resources.pipelines.with_development.development\n  in resources.py:7:1\n\n{\n  \"with_development\": true,\n  \"without_development\": true\n}\n"
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -2,2 +2,6 @@
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 Name: my_project
        	            	@@ -8,5 +12,9 @@
        	            	 
        	            	-Validation OK!
        	            	+Found 1 warning
        	            	 
        	            	 >>> uv run [UV_ARGS] -q [CLI] bundle validate --output json
        	            	+Warning: The "development" property of pipelines is deprecated. Use "mode: development" in your databricks.yml instead. See https://docs.databricks.com/dev-tools/bundles/deployment-modes.
        	            	+  at resources.pipelines.with_development.development
        	            	+  in resources.py:7:1
        	            	+
        	            	 {
        	Test:       	TestAccept/bundle/python/pipeline-development-deprecated/DMS=true/PYDAB_VERSION=current
        	Messages:   	bundle/python/pipeline-development-deprecated/output.txt vs /tmp/TestAcceptbundlepythonpipeline-development-deprecatedDMS=tru3832208276/002/output.txt

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/refschema/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/root.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=558533206/001/output/root.txt
        @@ -1,4 +1,4 @@
        -__locations	*loctable.Locations	INPUT
        +__locations	*dynloc.Locations	INPUT
         __locations.files	[]string	INPUT
         __locations.files[*]	string	INPUT
         __locations.locations	map[string][][]int	INPUT

latest (v1.24.0):

acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/jobs.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=3269255869/001/output/jobs.txt
        @@ -193,6 +193,8 @@
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients	compute.ClientsTypes	ALL
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs	bool	ALL
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks	bool	ALL
        +resources.jobs.*.job_clusters[*].serverless_compute	*jobs.JobClusterServerlessCompute	ALL
        +resources.jobs.*.job_clusters[*].serverless_compute.policy_id	string	ALL
         resources.jobs.*.job_clusters[*].serverless_compute_id	string	ALL
         resources.jobs.*.job_id	int64	REMOTE
         resources.jobs.*.lifecycle	resources.Lifecycle	INPUT
        @@ -231,6 +233,42 @@
         resources.jobs.*.tags.*	string	ALL
         resources.jobs.*.tasks	[]jobs.Task	ALL
         resources.jobs.*.tasks[*]	jobs.Task	ALL
        +resources.jobs.*.tasks[*].ai_function_task	*jobs.AiFunctionTask	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify	*jobs.AiClassifyFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels	*jobs.AiClassifyFunctionInlineLabels	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels	[]jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*]	jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].description	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].name	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.instructions	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract	*jobs.AiExtractFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.instructions	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.mode	jobs.AiExtractFunctionMode	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.schema	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document	*jobs.AiParseDocumentFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types	[]jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types[*]	jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.image_output_path	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.page_range	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table	*jobs.DeltaTableSource	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.input_column	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns	[]string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns[*]	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.table_name	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output	jobs.QualifiedName	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.catalog	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.schema	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.table	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.volume	*jobs.VolumeSource	ALL
        +resources.jobs.*.tasks[*].ai_function_task.volume.volume_path	string	ALL
         resources.jobs.*.tasks[*].ai_runtime_task	*jobs.AiRuntimeTask	ALL
         resources.jobs.*.tasks[*].ai_runtime_task.code_source_path	string	ALL
         resources.jobs.*.tasks[*].ai_runtime_task.deployments	[]jobs.DeploymentSpec	ALL
        @@ -339,6 +377,42 @@
         resources.jobs.*.tasks[*].for_each_task.concurrency	int	ALL
         resources.jobs.*.tasks[*].for_each_task.inputs	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task	jobs.Task	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task	*jobs.AiFunctionTask	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify	*jobs.AiClassifyFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels	*jobs.AiClassifyFunctionInlineLabels	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels	[]jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*]	jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].description	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].name	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.instructions	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract	*jobs.AiExtractFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.instructions	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.mode	jobs.AiExtractFunctionMode	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.schema	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document	*jobs.AiParseDocumentFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types	[]jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types[*]	jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.image_output_path	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.page_range	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table	*jobs.DeltaTableSource	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.input_column	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns	[]string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns[*]	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.table_name	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output	jobs.QualifiedName	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.catalog	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.schema	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.table	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume	*jobs.VolumeSource	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume.volume_path	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task	*jobs.AiRuntimeTask	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.code_source_path	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments	[]jobs.DeploymentSpec	ALL
        @@ -1043,6 +1117,12 @@
         resources.jobs.*.trigger.file_arrival.min_time_between_triggers_seconds	int	ALL
         resources.jobs.*.trigger.file_arrival.url	string	ALL
         resources.jobs.*.trigger.file_arrival.wait_after_last_change_seconds	int	ALL
        +resources.jobs.*.trigger.job_completion	*jobs.JobCompletionTriggerConfiguration	ALL
        +resources.jobs.*.trigger.job_completion.if_status	jobs.JobCompletionTriggerConfigurationIfStatus	ALL
        +resources.jobs.*.trigger.job_completion.jobs	[]jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*]	jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*].job_id	string	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*].workspace_id	string	ALL
         resources.jobs.*.trigger.model	*jobs.ModelTriggerConfiguration	ALL
         resources.jobs.*.trigger.model.aliases	[]string	ALL
         resources.jobs.*.trigger.model.aliases[*]	string	ALL
        @@ -1086,6 +1166,17 @@
         resources.jobs.*.trigger_details[*].state.continuous.next_attempt_ms	int64	REMOTE
         resources.jobs.*.trigger_details[*].state.file_arrival	*jobs.FileArrivalTriggerState	REMOTE
         resources.jobs.*.trigger_details[*].state.file_arrival.using_file_events	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion	*jobs.JobCompletionTriggerState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states	[]jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*]	jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].has_seen_completion	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].is_deleted	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].job_id	string	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_completion_time	*time.Time	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_run_id	string	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].latest_non_matching_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].workspace_id	string	REMOTE
         resources.jobs.*.trigger_details[*].state.model	*jobs.ModelTriggerState	REMOTE
         resources.jobs.*.trigger_details[*].state.pause_status	jobs.PauseStatus	REMOTE
         resources.jobs.*.trigger_details[*].state.periodic	*jobs.PeriodicTriggerState	REMOTE
        @@ -1104,6 +1195,17 @@
         resources.jobs.*.trigger_state	*jobs.TriggerStateProto	REMOTE
         resources.jobs.*.trigger_state.file_arrival	*jobs.FileArrivalTriggerState	REMOTE
         resources.jobs.*.trigger_state.file_arrival.using_file_events	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion	*jobs.JobCompletionTriggerState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states	[]jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*]	jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].has_seen_completion	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].is_deleted	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].job_id	string	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_completion_time	*time.Time	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_run_id	string	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].latest_non_matching_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].workspace_id	string	REMOTE
         resources.jobs.*.trigger_state.pause_status	jobs.PauseStatus	REMOTE
         resources.jobs.*.trigger_state.sql_condition	*jobs.SqlConditionState	REMOTE
         resources.jobs.*.trigger_state.sql_condition.latest_condition_evaluation_satisfied	bool	REMOTE
        @@ -1127,6 +1229,12 @@
         resources.jobs.*.triggers[*].file_arrival.min_time_between_triggers_seconds	int	ALL
         resources.jobs.*.triggers[*].file_arrival.url	string	ALL
         resources.jobs.*.triggers[*].file_arrival.wait_after_last_change_seconds	int	ALL
        +resources.jobs.*.triggers[*].job_completion	*jobs.JobCompletionTriggerConfiguration	ALL
        +resources.jobs.*.triggers[*].job_completion.if_status	jobs.JobCompletionTriggerConfigurationIfStatus	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs	[]jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*]	jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*].job_id	string	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*].workspace_id	string	ALL
         resources.jobs.*.triggers[*].model	*jobs.ModelTriggerConfiguration	ALL
         resources.jobs.*.triggers[*].model.aliases	[]string	ALL
         resources.jobs.*.triggers[*].model.aliases[*]	string	ALL
        
    acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/root.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=3269255869/001/output/root.txt
        @@ -1,4 +1,4 @@
        -__locations	*loctable.Locations	INPUT
        +__locations	*dynloc.Locations	INPUT
         __locations.files	[]string	INPUT
         __locations.files[*]	string	INPUT
         __locations.locations	map[string][][]int	INPUT
        @@ -148,6 +148,7 @@
         environments.*.variables.*.lookup.query	string	INPUT
         environments.*.variables.*.lookup.service_principal	string	INPUT
         environments.*.variables.*.lookup.warehouse	string	INPUT
        +environments.*.variables.*.sensitive	bool	INPUT
         environments.*.variables.*.type	variable.VariableType	INPUT
         environments.*.variables.*.value	any	INPUT
         environments.*.workspace	*config.Workspace	INPUT
        @@ -364,6 +365,7 @@
         targets.*.variables.*.lookup.query	string	INPUT
         targets.*.variables.*.lookup.service_principal	string	INPUT
         targets.*.variables.*.lookup.warehouse	string	INPUT
        +targets.*.variables.*.sensitive	bool	INPUT
         targets.*.variables.*.type	variable.VariableType	INPUT
         targets.*.variables.*.value	any	INPUT
         targets.*.workspace	*config.Workspace	INPUT
        @@ -447,6 +449,7 @@
         variables.*.lookup.query	string	INPUT
         variables.*.lookup.service_principal	string	INPUT
         variables.*.lookup.warehouse	string	INPUT
        +variables.*.sensitive	bool	INPUT
         variables.*.type	variable.VariableType	INPUT
         variables.*.value	any	INPUT
         workspace	config.Workspace	INPUT
        
    acceptance_test.go:1323: Unexpected output file: output/data_quality_monitors.txt
        pathRef: bundle/refschema/output/data_quality_monitors.txt
        pathNew: /tmp/TestAcceptbundlerefschemaDMS=3269255869/001/output/data_quality_monitors.txt
    acceptance_test.go:1323: Unexpected output file: output/materialization_sets.txt
        pathRef: bundle/refschema/output/materialization_sets.txt
... (4 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)
TestAccept/bundle/refschema/DMS=true: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/root.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=true4251655775/001/output/root.txt
        @@ -1,4 +1,4 @@
        -__locations	*loctable.Locations	INPUT
        +__locations	*dynloc.Locations	INPUT
         __locations.files	[]string	INPUT
         __locations.files[*]	string	INPUT
         __locations.locations	map[string][][]int	INPUT

latest (v1.24.0):

acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/root.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=true2551230734/001/output/root.txt
        @@ -1,4 +1,4 @@
        -__locations	*loctable.Locations	INPUT
        +__locations	*dynloc.Locations	INPUT
         __locations.files	[]string	INPUT
         __locations.files[*]	string	INPUT
         __locations.locations	map[string][][]int	INPUT
        @@ -148,6 +148,7 @@
         environments.*.variables.*.lookup.query	string	INPUT
         environments.*.variables.*.lookup.service_principal	string	INPUT
         environments.*.variables.*.lookup.warehouse	string	INPUT
        +environments.*.variables.*.sensitive	bool	INPUT
         environments.*.variables.*.type	variable.VariableType	INPUT
         environments.*.variables.*.value	any	INPUT
         environments.*.workspace	*config.Workspace	INPUT
        @@ -364,6 +365,7 @@
         targets.*.variables.*.lookup.query	string	INPUT
         targets.*.variables.*.lookup.service_principal	string	INPUT
         targets.*.variables.*.lookup.warehouse	string	INPUT
        +targets.*.variables.*.sensitive	bool	INPUT
         targets.*.variables.*.type	variable.VariableType	INPUT
         targets.*.variables.*.value	any	INPUT
         targets.*.workspace	*config.Workspace	INPUT
        @@ -447,6 +449,7 @@
         variables.*.lookup.query	string	INPUT
         variables.*.lookup.service_principal	string	INPUT
         variables.*.lookup.warehouse	string	INPUT
        +variables.*.sensitive	bool	INPUT
         variables.*.type	variable.VariableType	INPUT
         variables.*.value	any	INPUT
         workspace	config.Workspace	INPUT
        
    acceptance_test.go:1341: Diff:
        --- bundle/refschema/output/jobs.txt
        +++ /tmp/TestAcceptbundlerefschemaDMS=true2551230734/001/output/jobs.txt
        @@ -193,6 +193,8 @@
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients	compute.ClientsTypes	ALL
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.jobs	bool	ALL
         resources.jobs.*.job_clusters[*].new_cluster.workload_type.clients.notebooks	bool	ALL
        +resources.jobs.*.job_clusters[*].serverless_compute	*jobs.JobClusterServerlessCompute	ALL
        +resources.jobs.*.job_clusters[*].serverless_compute.policy_id	string	ALL
         resources.jobs.*.job_clusters[*].serverless_compute_id	string	ALL
         resources.jobs.*.job_id	int64	REMOTE
         resources.jobs.*.lifecycle	resources.Lifecycle	INPUT
        @@ -231,6 +233,42 @@
         resources.jobs.*.tags.*	string	ALL
         resources.jobs.*.tasks	[]jobs.Task	ALL
         resources.jobs.*.tasks[*]	jobs.Task	ALL
        +resources.jobs.*.tasks[*].ai_function_task	*jobs.AiFunctionTask	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify	*jobs.AiClassifyFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.enable_rationales	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels	*jobs.AiClassifyFunctionInlineLabels	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels	[]jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*]	jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].description	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.inline_labels.labels[*].name	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.instructions	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.multilabel	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_classify.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract	*jobs.AiExtractFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_citations	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.instructions	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.mode	jobs.AiExtractFunctionMode	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.schema	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_extract.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document	*jobs.AiParseDocumentFunction	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types	[]jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.description_element_types[*]	jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.image_output_path	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.page_range	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.ai_parse_document.version	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table	*jobs.DeltaTableSource	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.input_column	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns	[]string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.merge_key_columns[*]	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.delta_table.table_name	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output	jobs.QualifiedName	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.catalog	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.schema	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.output.table	string	ALL
        +resources.jobs.*.tasks[*].ai_function_task.volume	*jobs.VolumeSource	ALL
        +resources.jobs.*.tasks[*].ai_function_task.volume.volume_path	string	ALL
         resources.jobs.*.tasks[*].ai_runtime_task	*jobs.AiRuntimeTask	ALL
         resources.jobs.*.tasks[*].ai_runtime_task.code_source_path	string	ALL
         resources.jobs.*.tasks[*].ai_runtime_task.deployments	[]jobs.DeploymentSpec	ALL
        @@ -339,6 +377,42 @@
         resources.jobs.*.tasks[*].for_each_task.concurrency	int	ALL
         resources.jobs.*.tasks[*].for_each_task.inputs	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task	jobs.Task	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task	*jobs.AiFunctionTask	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify	*jobs.AiClassifyFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.enable_rationales	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels	*jobs.AiClassifyFunctionInlineLabels	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels	[]jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*]	jobs.AiClassifyFunctionLabel	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].description	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.inline_labels.labels[*].name	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.instructions	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.multilabel	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_classify.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract	*jobs.AiExtractFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_citations	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.enable_confidence_scores	bool	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.instructions	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.mode	jobs.AiExtractFunctionMode	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.schema	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_extract.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document	*jobs.AiParseDocumentFunction	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types	[]jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.description_element_types[*]	jobs.AiParseDocumentFunctionDescriptionElementType	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.image_output_path	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.page_range	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.ai_parse_document.version	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table	*jobs.DeltaTableSource	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.input_column	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns	[]string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.merge_key_columns[*]	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.delta_table.table_name	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output	jobs.QualifiedName	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.catalog	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.schema	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.output.table	string	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume	*jobs.VolumeSource	ALL
        +resources.jobs.*.tasks[*].for_each_task.task.ai_function_task.volume.volume_path	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task	*jobs.AiRuntimeTask	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.code_source_path	string	ALL
         resources.jobs.*.tasks[*].for_each_task.task.ai_runtime_task.deployments	[]jobs.DeploymentSpec	ALL
        @@ -1043,6 +1117,12 @@
         resources.jobs.*.trigger.file_arrival.min_time_between_triggers_seconds	int	ALL
         resources.jobs.*.trigger.file_arrival.url	string	ALL
         resources.jobs.*.trigger.file_arrival.wait_after_last_change_seconds	int	ALL
        +resources.jobs.*.trigger.job_completion	*jobs.JobCompletionTriggerConfiguration	ALL
        +resources.jobs.*.trigger.job_completion.if_status	jobs.JobCompletionTriggerConfigurationIfStatus	ALL
        +resources.jobs.*.trigger.job_completion.jobs	[]jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*]	jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*].job_id	string	ALL
        +resources.jobs.*.trigger.job_completion.jobs[*].workspace_id	string	ALL
         resources.jobs.*.trigger.model	*jobs.ModelTriggerConfiguration	ALL
         resources.jobs.*.trigger.model.aliases	[]string	ALL
         resources.jobs.*.trigger.model.aliases[*]	string	ALL
        @@ -1086,6 +1166,17 @@
         resources.jobs.*.trigger_details[*].state.continuous.next_attempt_ms	int64	REMOTE
         resources.jobs.*.trigger_details[*].state.file_arrival	*jobs.FileArrivalTriggerState	REMOTE
         resources.jobs.*.trigger_details[*].state.file_arrival.using_file_events	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion	*jobs.JobCompletionTriggerState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states	[]jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*]	jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].has_seen_completion	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].is_deleted	bool	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].job_id	string	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_completion_time	*time.Time	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].last_seen_run_id	string	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].latest_non_matching_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_details[*].state.job_completion.monitored_job_states[*].workspace_id	string	REMOTE
         resources.jobs.*.trigger_details[*].state.model	*jobs.ModelTriggerState	REMOTE
         resources.jobs.*.trigger_details[*].state.pause_status	jobs.PauseStatus	REMOTE
         resources.jobs.*.trigger_details[*].state.periodic	*jobs.PeriodicTriggerState	REMOTE
        @@ -1104,6 +1195,17 @@
         resources.jobs.*.trigger_state	*jobs.TriggerStateProto	REMOTE
         resources.jobs.*.trigger_state.file_arrival	*jobs.FileArrivalTriggerState	REMOTE
         resources.jobs.*.trigger_state.file_arrival.using_file_events	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion	*jobs.JobCompletionTriggerState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states	[]jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*]	jobs.JobCompletionTriggerStateMonitoredJobState	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].has_seen_completion	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].is_deleted	bool	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].job_id	string	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_completion_time	*time.Time	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].last_seen_run_id	string	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].latest_non_matching_result	jobs.TerminationCodeCode	REMOTE
        +resources.jobs.*.trigger_state.job_completion.monitored_job_states[*].workspace_id	string	REMOTE
         resources.jobs.*.trigger_state.pause_status	jobs.PauseStatus	REMOTE
         resources.jobs.*.trigger_state.sql_condition	*jobs.SqlConditionState	REMOTE
         resources.jobs.*.trigger_state.sql_condition.latest_condition_evaluation_satisfied	bool	REMOTE
        @@ -1127,6 +1229,12 @@
         resources.jobs.*.triggers[*].file_arrival.min_time_between_triggers_seconds	int	ALL
         resources.jobs.*.triggers[*].file_arrival.url	string	ALL
         resources.jobs.*.triggers[*].file_arrival.wait_after_last_change_seconds	int	ALL
        +resources.jobs.*.triggers[*].job_completion	*jobs.JobCompletionTriggerConfiguration	ALL
        +resources.jobs.*.triggers[*].job_completion.if_status	jobs.JobCompletionTriggerConfigurationIfStatus	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs	[]jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*]	jobs.JobCompletionTriggerConfigurationMonitoredJob	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*].job_id	string	ALL
        +resources.jobs.*.triggers[*].job_completion.jobs[*].workspace_id	string	ALL
         resources.jobs.*.triggers[*].model	*jobs.ModelTriggerConfiguration	ALL
         resources.jobs.*.triggers[*].model.aliases	[]string	ALL
         resources.jobs.*.triggers[*].model.aliases[*]	string	ALL
        
    acceptance_test.go:1323: Unexpected output file: output/data_quality_monitors.txt
        pathRef: bundle/refschema/output/data_quality_monitors.txt
        pathNew: /tmp/TestAcceptbundlerefschemaDMS=true2551230734/001/output/data_quality_monitors.txt
    acceptance_test.go:1323: Unexpected output file: output/materialization_sets.txt
        pathRef: bundle/refschema/output/materialization_sets.txt
... (5 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)
TestAccept/bundle/strict_profile_match/default_profile/host/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/strict_profile_match/default_profile/host/output.txt
        +++ /tmp/TestAcceptbundlestrict_profile_matchdefault_profilehostDMS=2674295506/002/output.txt
        @@ -18,7 +18,7 @@
         Name: strict-profile-match
         Target: classic_other_workspace
         Workspace:
        -  Host: [DATABRICKS_URL]/?o=2222222222
        +  Host: [DATABRICKS_URL]
         
         Found 1 error

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/strict_profile_match/default_profile/host/DMS=true: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/strict_profile_match/default_profile/host/output.txt
        +++ /tmp/TestAcceptbundlestrict_profile_matchdefault_profilehostDMS=3558433220/002/output.txt
        @@ -18,7 +18,7 @@
         Name: strict-profile-match
         Target: classic_other_workspace
         Workspace:
        -  Host: [DATABRICKS_URL]/?o=2222222222
        +  Host: [DATABRICKS_URL]
         
         Found 1 error

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/strict_profile_match/host/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/strict_profile_match/host/output.txt
        +++ /tmp/TestAcceptbundlestrict_profile_matchhostDMS=1467662779/002/output.txt
        @@ -22,7 +22,7 @@
         Name: strict-profile-match
         Target: classic_other_workspace
         Workspace:
        -  Host: [DATABRICKS_URL]/?o=2222222222
        +  Host: [DATABRICKS_URL]
         
         Found 1 error
         
        @@ -48,7 +48,7 @@
         Name: strict-profile-match
         Target: custom_host_other_workspace
         Workspace:
        -  Host: [CUSTOM_HOST]/?o=2222222222
        +  Host: [CUSTOM_HOST]
         
         Found 1 error

latest (v1.24.0): same output as main (3aa5c96)

TestAccept/bundle/strict_profile_match/host/DMS=true: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌

main (3aa5c96):

acceptance_test.go:1341: Diff:
        --- bundle/strict_profile_match/host/output.txt
        +++ /tmp/TestAcceptbundlestrict_profile_matchhostDMS=true1681429727/002/output.txt
        @@ -22,7 +22,7 @@
         Name: strict-profile-match
         Target: classic_other_workspace
         Workspace:
        -  Host: [DATABRICKS_URL]/?o=2222222222
        +  Host: [DATABRICKS_URL]
         
         Found 1 error
         
        @@ -48,7 +48,7 @@
         Name: strict-profile-match
         Target: custom_host_other_workspace
         Workspace:
        -  Host: [CUSTOM_HOST]/?o=2222222222
        +  Host: [CUSTOM_HOST]
         
         Found 1 error
         
        
FAIL

latest (v1.24.0):

acceptance_test.go:1341: Diff:
        --- bundle/strict_profile_match/host/output.txt
        +++ /tmp/TestAcceptbundlestrict_profile_matchhostDMS=true1639055008/002/output.txt
        @@ -22,7 +22,7 @@
         Name: strict-profile-match
         Target: classic_other_workspace
         Workspace:
        -  Host: [DATABRICKS_URL]/?o=2222222222
        +  Host: [DATABRICKS_URL]
         
         Found 1 error
         
        @@ -48,7 +48,7 @@
         Name: strict-profile-match
         Target: custom_host_other_workspace
         Workspace:
        -  Host: [CUSTOM_HOST]/?o=2222222222
        +  Host: [CUSTOM_HOST]
         
         Found 1 error

14 more failure details omitted, see the full report in the run.

@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: d2ee1fd

Run: 41992530468

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 281 36 5:25
✅​ aws-windows-latest-4core-16gb 283 34 7:20
✅​ azure linux-2core-8gb 280 36 5:24
✅​ azure-windows-latest-4core-16gb 282 34 6:12
✅​ gcp linux-2core-8gb 281 36 5:15
✅​ gcp-windows-latest-4core-16gb 283 34 7:15
Top 6 slowest tests (at least 2 minutes):
duration env testname
7:12 aws-windows-latest-4core-16gb TestAccept
7:09 gcp-windows-latest-4core-16gb TestAccept
6:07 azure-windows-latest-4core-16gb TestAccept
3:59 azure linux-2core-8gb TestAccept
3:51 gcp linux-2core-8gb TestAccept
3:50 aws linux-2core-8gb TestAccept

This branch has not been deployed

No deployments
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.

2 participants