yq icon indicating copy to clipboard operation
yq copied to clipboard

Nested anchors of mappings do not retain order

Open fresh2dev opened this issue 1 year ago • 0 comments

Describe the bug

Nested anchors of mappings do not retain order.

Version of yq: 4.44.3 Operating system: mac Installed via: binary release

Input Yaml data1.yml:

.global-config: &global-config
  first: foo
  second: bar
  third: baz

.local-config: &local-config
  <<: *global-config
  first: FOO

final-config:
  <<: *local-config

Command The command you ran:

yq 'explode(.)' data1.yml

Actual behavior

---
.global-config:
  first: foo
  second: bar
  third: baz
.local-config:
  second: bar
  third: baz
  first: FOO
final-config:
  second: bar
  third: baz
  first: FOO

Expected behavior

---
.global-config:
  first: foo
  second: bar
  third: baz
.local-config:
  first: FOO
  second: bar
  third: baz
final-config:
  first: FOO
  second: bar
  third: baz

Additional context I tested with Helm using a values.yaml, Python's pyyaml, the Python yq, and each of them do retain order of nested anchors. E.g.,

spec:
  template:
    metadata:
      labels:
        app.kubernetes.io/managed-by: Helm
        first: FOO
        second: bar
        third: baz

fresh2dev avatar Nov 08 '24 22:11 fresh2dev