bundle: write config sync key renames as a key rewrite - #6134
Closed
ilyakuz-db wants to merge 1 commit into
Closed
Conversation
Contributor
Approval status: pending
|
ilyakuz-db
force-pushed
the
configsync/block-provenance
branch
from
August 2, 2026 12:21
f957e06 to
7075667
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 12:21
aa51acf to
94680ae
Compare
ilyakuz-db
changed the base branch from
configsync/block-provenance
to
configsync/block-scoped-removal
August 2, 2026 12:21
Collaborator
Integration test reportCommit: 36cc95b
10 interesting tests: 4 RECOVERED, 4 SKIP, 2 flaky
Top 3 slowest tests (at least 2 minutes):
|
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 14:01
88ba6e6 to
2aca20d
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 14:01
94680ae to
0f2b1bb
Compare
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 14:46
2aca20d to
af80453
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 14:46
0f2b1bb to
a65ba01
Compare
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 18:53
af80453 to
c7d2043
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 18:53
a65ba01 to
e4db4df
Compare
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 19:15
c7d2043 to
add864c
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 19:15
e4db4df to
46ee26e
Compare
This was referenced Aug 2, 2026
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 19:58
add864c to
f1fc0e3
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 19:58
46ee26e to
1e50904
Compare
Co-authored-by: Isaac
ilyakuz-db
force-pushed
the
configsync/block-scoped-removal
branch
from
August 2, 2026 21:52
f1fc0e3 to
490a0da
Compare
ilyakuz-db
force-pushed
the
configsync/rename-keyed-elements
branch
from
August 2, 2026 21:52
1e50904 to
36cc95b
Compare
Contributor
Author
|
Consolidated into #6138 — the stack is merged into a single PR with the same final tree. |
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.
Stack
Each PR is based on the one above it and carries the acceptance tests for its own behaviour.
Changes
Writes a remote key change on a keyed list element as a rewrite of that one key, instead of deleting the element and re-emitting it.
A key change (
task_key,job_cluster_key, a parametername) is reported as an unrelated remove plus add — nothing links the two halves.pairRenamesmatches them back up by identity: a remove and an add on the same sequence whose values are equal apart from the key. The pair is then written from the remove half, which is the one that has a source location, as aReplaceof the key field in every block that defines the element.For an element defined in both the top-level and a
targets.<target>block the key is rewritten in both, and every other field stays in the block it was written in:Two cases need care:
timeout_secondsout of the target scope into shared configuration. Holding both halves back leaves it for a later run. A plain removal with no matching addition is unaffected.Why
Recreating the element from the remote value was lossy in three ways, all visible in the goldens this PR updates:
task_rename_revert,job_fields,job_multiple_tasksandmultiple_filesall previously re-emitted the whole task with keys reordered andnotebook_pathrequoted. They now show a one-line key change.config-remote-syncruns unattended, so a rename that silently moves a field between scopes, or renames the wrong element, is a wrong write rather than a cosmetic one.Tests
New
split/keyed_renamecovers three scenarios, all failing on the parent commit:a_shared,z_solo) whose sort order is the reverse of the block order — an implementation that pairs renames positionally swaps their contents. Asserts the two-block key appears twice, once per block, and the target-only key once.timeout_secondsstays target-scoped.Four pre-existing goldens improve to minimal one-line diffs.