Repository navigation
Conversation
…e handled Acceptance tests that pin today's merge semantics of included files and target overrides, section by section, and show that null values never override a value from databricks.yml or another file. Co-authored-by: Isaac <no-reply@databricks.com>
Contributor
|
Commit: Regression test reportSelected 16 changed tests (limit=20, 0 not selected) 32 tests: regression=0 unreleased=0 coverage=32 failing=0
|
Co-authored-by: Isaac <no-reply@databricks.com>
Collaborator
Integration test reportCommit: 36d4c3a
Top 6 slowest tests (at least 2 minutes):
|
…ource key Moves validate/targets/resource_key_collision to run/ambiguous_key_from_target. Co-authored-by: Isaac <no-reply@databricks.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
New
bundle validateacceptance tests that record how configuration from included files and from the selected target is merged, and what null values do. No code changes.validate/include_vs_targetapplies the same overrides once from an included file and once from a target and diffs the results. In both, maps merge key by key, the later scalar wins and lists are concatenated. They differ in:run_as: an include merges into the root identity (two identities, an error:includes/run_as_merged); a target replaces it.default: an include deep-merges it, lists included; a target replaces it.experimental,scripts(alsopython,include:targets/unknown_sections): merged from an include; ignored as unknown fields in a target.Also recorded:
foo:counts as a definition; the same resource undertargets.<t>.resourcesin several files merges silently; later files win, glob matches are sorted.email_notifications.on_failure, tasklibraries) are concatenated; tasks merge bytask_key; targetcluster_idwins overbundle.cluster_id; a target split across files is merged first, then applied over all files;""/0/falseoverride,[]/{}do not clear.mode,cluster_id,run_as, variabledefault/lookup). The only null that reaches the result is inside a complex variable default set by a target, because the target replaces the whole default.Badness:run/ambiguous_key_from_target. The unique-key check runs before target overrides, so a target can addpipelines.foonext tojobs.foo: validate, deploy and summary accept it, andbundle run foofails with "multiple resources with key".Why
These semantics had no acceptance coverage, so a change to the merge code could alter them silently. Same series as #7085 and #7130.
Tests
New tests only; goldens recorded on main.
This pull request and its description were written by Isaac.