Repository navigation
Conversation
…oad path Takes the struct-only load path of the baseline before the hybrid: files decode straight into the typed configuration with structvar, includes and targets merge with structvar.Merge, and the load-phase mutators edit the structs. libs/dyn is unused by anything but structvar's decode_dyn.go. Co-authored-by: Isaac <no-reply@databricks.com>
The shorthand rewrite of a target's variables follows aliases and merge keys without changing shared nodes. The YAML is validated first, including values a later duplicate key shadows, so merge-key and key-tag errors are reported as before. Co-authored-by: Isaac <no-reply@databricks.com>
A scalar targets section is a warning, resources: null is accepted, and includes after one that fails to merge still report their diagnostics, as the comments of the tests say. Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
|
Commit: Regression test reportSelected 20 changed tests (limit=20, 1 not selected) 42 tests: regression=28 unreleased=2 coverage=12 failing=0
TestAccept/bundle/python/pipeline-development-deprecated/DMS=/PYDAB_VERSION=0.266.0: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌main (3aa5c96): 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): 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): 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): latest (v1.24.0): same output as main (3aa5c96) TestAccept/bundle/refschema/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌main (3aa5c96): latest (v1.24.0): TestAccept/bundle/refschema/DMS=true: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌main (3aa5c96): latest (v1.24.0): TestAccept/bundle/strict_profile_match/default_profile/host/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌main (3aa5c96): 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): 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): 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): latest (v1.24.0): same output as main (3aa5c96) TestAccept/bundle/validate/app_resource_duplicate_name_location/DMS=: branch ✅ | main (3aa5c96) ❌ | latest (v1.24.0) ❌main (3aa5c96): latest (v1.24.0): same output as main (3aa5c96) 19 more failure details omitted, see the full report in the run. |
Integration test reportCommit: 071aaa3
Top 6 slowest tests (at least 2 minutes):
|
Changes
Files decode straight into the typed configuration, includes and targets merge with
structvar.Merge, and the load-phase mutators edit the structs. Nothing converts between a dynamic tree and the structs anymore, solibs/dynis deleted. A target variable written as a value (x: 1) is rewritten to{default: 1}on the YAML before decoding; YAML errors (merge keys, key tags) are reported before that, as before.Three diagnostics differ, as the comments of their tests say they should: a
targetssection that is not a map is a warning,resources: nullis accepted, and includes after one that fails to merge still report their diagnostics. Their goldens are updated.Why
It is the alternative to #7203: instead of trimming
libs/dynto what loading needs, loading does not use it. It removes the second representation of the configuration, 16k lines, and the load and merge code that existed twice.Same speed as #7098 (
bundle validateof 1000 jobs: 0.50 s, 11.4 s on main), 186 MB peak memory against 196 MB, and a binary 5 MB smaller than #7098 (+0.15 MB over main).Stacked on #7373.
Tests
Before
libs/dynwas removed, a test merged every pair of YAML files in the same acceptance directory with the dynamic and the typed merge: 1317 pairs gave the same result, the only difference being the target variable shorthand above.TestAcceptpasses except for the three updated goldens.This pull request and its description were written by Isaac.