Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dyff for openSUSE:Factory checked in 
at 2026-04-30 20:28:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dyff (Old)
 and      /work/SRC/openSUSE:Factory/.dyff.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dyff"

Thu Apr 30 20:28:38 2026 rev:20 rq:1350133 version:1.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/dyff/dyff.changes        2026-03-18 
16:52:24.337775429 +0100
+++ /work/SRC/openSUSE:Factory/.dyff.new.30200/dyff.changes     2026-04-30 
20:28:39.602553602 +0200
@@ -1,0 +2,21 @@
+Thu Apr 30 05:06:16 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 1.12.0:
+  * Omit YAML document start marker for single-document output
+- Update to version 1.11.4:
+  * Bump `github.com/gonvenience/ytbx` to `v1.5.0`
+  * build(deps): bump dependabot/fetch-metadata from 3.0.0 to 3.1.0
+  * build(deps): bump golang.org/x/tools from 0.43.0 to 0.44.0
+  * build(deps): bump golang.org/x/net from 0.52.0 to 0.53.0
+  * build(deps): bump golang.org/x/text from 0.35.0 to 0.36.0
+  * build(deps): bump golang.org/x/term from 0.41.0 to 0.42.0
+  * build(deps): bump golang.org/x/mod from 0.34.0 to 0.35.0
+  * build(deps): bump golang.org/x/sys from 0.42.0 to 0.43.0
+  * build(deps): bump github.com/mattn/go-isatty from 0.0.20 to
+    0.0.21
+  * build(deps): bump dependabot/fetch-metadata from 2.5.0 to 3.0.0
+  * build(deps): bump codecov/codecov-action from 5 to 6
+  * build(deps): bump github.com/lucasb-eyer/go-colorful from 1.3.0
+    to 1.4.0
+
+-------------------------------------------------------------------

Old:
----
  dyff-1.11.3.obscpio

New:
----
  dyff-1.12.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dyff.spec ++++++
--- /var/tmp/diff_new_pack.7kPV3A/_old  2026-04-30 20:28:40.826603311 +0200
+++ /var/tmp/diff_new_pack.7kPV3A/_new  2026-04-30 20:28:40.826603311 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           dyff
-Version:        1.11.3
+Version:        1.12.0
 Release:        0
 Summary:        Diff tool for YAML files, and sometimes JSON
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.7kPV3A/_old  2026-04-30 20:28:40.882605585 +0200
+++ /var/tmp/diff_new_pack.7kPV3A/_new  2026-04-30 20:28:40.890605910 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/homeport/dyff</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v1.11.3</param>
+    <param name="revision">v1.12.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7kPV3A/_old  2026-04-30 20:28:40.922607209 +0200
+++ /var/tmp/diff_new_pack.7kPV3A/_new  2026-04-30 20:28:40.926607372 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/homeport/dyff</param>
-              <param 
name="changesrevision">4512053136bcd17cc8784b386f6c75bda7e01ec2</param></service></servicedata>
+              <param 
name="changesrevision">ea5d770b575967f1bc21eefcae08712d8f755e04</param></service></servicedata>
 (No newline at EOF)
 

++++++ dyff-1.11.3.obscpio -> dyff-1.12.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dyff-1.11.3/assets/kubernetes/multi-docs-file-level/expected-dyff.human 
new/dyff-1.12.0/assets/kubernetes/multi-docs-file-level/expected-dyff.human
--- old/dyff-1.11.3/assets/kubernetes/multi-docs-file-level/expected-dyff.human 
2026-03-17 14:28:35.000000000 +0100
+++ new/dyff-1.12.0/assets/kubernetes/multi-docs-file-level/expected-dyff.human 
2026-04-26 22:39:02.000000000 +0200
@@ -6,7 +6,6 @@
 
 (root level)  (v1/Service/foo-2)
 - one document removed:
-  ---
   apiVersion: v1
   kind: Service
   metadata:
@@ -17,7 +16,6 @@
 
 (root level)  (v1/Service/bar)
 + one document added:
-  ---
   apiVersion: v1
   kind: Service
   metadata:
@@ -28,7 +26,6 @@
 
 (root level)  (v1/Service/baz)
 + one document added:
-  ---
   apiVersion: v1
   kind: Service
   metadata:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/assets/multidocs/simple/file.yaml 
new/dyff-1.12.0/assets/multidocs/simple/file.yaml
--- old/dyff-1.11.3/assets/multidocs/simple/file.yaml   1970-01-01 
01:00:00.000000000 +0100
+++ new/dyff-1.12.0/assets/multidocs/simple/file.yaml   2026-04-26 
22:39:02.000000000 +0200
@@ -0,0 +1,5 @@
+---
+foo: bar
+
+---
+bar: foo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/go.mod new/dyff-1.12.0/go.mod
--- old/dyff-1.11.3/go.mod      2026-03-17 14:28:35.000000000 +0100
+++ new/dyff-1.12.0/go.mod      2026-04-26 22:39:02.000000000 +0200
@@ -6,11 +6,11 @@
        github.com/caarlos0/env/v11 v11.4.0
        github.com/gonvenience/bunt v1.4.3
        github.com/gonvenience/idem v0.0.3
-       github.com/gonvenience/neat v1.3.18
+       github.com/gonvenience/neat v1.3.20
        github.com/gonvenience/term v1.0.5
        github.com/gonvenience/text v1.0.10
-       github.com/gonvenience/ytbx v1.4.9
-       github.com/lucasb-eyer/go-colorful v1.3.0
+       github.com/gonvenience/ytbx v1.5.0
+       github.com/lucasb-eyer/go-colorful v1.4.0
        github.com/mitchellh/hashstructure/v2 v2.0.2
        github.com/onsi/ginkgo/v2 v2.28.1
        github.com/onsi/gomega v1.39.1
@@ -32,17 +32,17 @@
        github.com/google/pprof v0.0.0-20260202012954-cb029daf43ef // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 // 
indirect
-       github.com/mattn/go-isatty v0.0.20 // indirect
+       github.com/mattn/go-isatty v0.0.21 // indirect
        github.com/mitchellh/go-ps v1.0.0 // indirect
        github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // 
indirect
        github.com/russross/blackfriday/v2 v2.1.0 // indirect
        github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 
// indirect
        go.yaml.in/yaml/v2 v2.4.4 // indirect
-       golang.org/x/mod v0.34.0 // indirect
-       golang.org/x/net v0.52.0 // indirect
+       golang.org/x/mod v0.35.0 // indirect
+       golang.org/x/net v0.53.0 // indirect
        golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.42.0 // indirect
-       golang.org/x/term v0.41.0 // indirect
-       golang.org/x/text v0.35.0 // indirect
-       golang.org/x/tools v0.43.0 // indirect
+       golang.org/x/sys v0.43.0 // indirect
+       golang.org/x/term v0.42.0 // indirect
+       golang.org/x/text v0.36.0 // indirect
+       golang.org/x/tools v0.44.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/go.sum new/dyff-1.12.0/go.sum
--- old/dyff-1.11.3/go.sum      2026-03-17 14:28:35.000000000 +0100
+++ new/dyff-1.12.0/go.sum      2026-04-26 22:39:02.000000000 +0200
@@ -27,16 +27,14 @@
 github.com/gonvenience/bunt v1.4.3/go.mod 
h1:ggA6odP6FNOh50mGxxytSSJTs2Ghy5Veq9wIVSbuoAw=
 github.com/gonvenience/idem v0.0.3 
h1:rZ2f17JU5GHa3b5M5R2fClz0dYN3EFGhHHGo3AZz/1U=
 github.com/gonvenience/idem v0.0.3/go.mod 
h1:ChZ+RP8e30+uCBcCIzN/0di6lTO2PucjemgKfzQUQEw=
-github.com/gonvenience/neat v1.3.18 
h1:WxWoXhsTHA6CStNrGgSEjGTt5MwIm+7Xs+VZmQIuXZA=
-github.com/gonvenience/neat v1.3.18/go.mod 
h1:DTaEyHIOjSkMa066EoZZl3k5KCG/rFGE67n0cjm/9qk=
+github.com/gonvenience/neat v1.3.20 
h1:KdevSy5GLb3h1U5AYGw3NwW9FAAU2MWfrtsDHzYaKOg=
+github.com/gonvenience/neat v1.3.20/go.mod 
h1:GbVes855L3QYFkDg9pnxHe/FQVsr1Tl+ME0fyOZO4Lg=
 github.com/gonvenience/term v1.0.5 
h1:PYfBH7FB1V+tuuJl4KYrqG/tzAOUnvTy8IFa9YqYrJY=
 github.com/gonvenience/term v1.0.5/go.mod 
h1:CYvcU7H3nE6eOP0gvGfYz4BjGJzM1GeNp+fx4IBWKLs=
 github.com/gonvenience/text v1.0.10 
h1:QRqtC/KMk57K7y4jHi4HjLxf8u+tg+/tIRCS5afywNE=
 github.com/gonvenience/text v1.0.10/go.mod 
h1:qO4aTZGAXbeW7eJXK+94nIc5Uumz8Q5DphOFZex6JHI=
-github.com/gonvenience/ytbx v1.4.8 
h1:V7oea89gLUN1C0rGDHxnt1YMAd7wHau9LC80Ng2QauA=
-github.com/gonvenience/ytbx v1.4.8/go.mod 
h1:DVrIUZAiVv/bzOU3esvEvhGWED4YbyhSAuFru5nlzD4=
-github.com/gonvenience/ytbx v1.4.9 
h1:8n9kmCTrS0dna863abBI50fQT6/2397jpsSZr6ZsnHo=
-github.com/gonvenience/ytbx v1.4.9/go.mod 
h1:5+Gl5Y0OxrO7Kp0qmrH8vTCAlY3whwBHN26KOReIe5o=
+github.com/gonvenience/ytbx v1.5.0 
h1:6AbxnAWwyY+tMLEBENXC4m1j71Ubcv2+UaQmEA7rYv4=
+github.com/gonvenience/ytbx v1.5.0/go.mod 
h1:zxRSqmJ2sHOH+XyYFAPhyb7y+xjnRSRHLcNta5Ybcws=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
 github.com/google/pprof v0.0.0-20260202012954-cb029daf43ef 
h1:xpF9fUHpoIrrjX24DURVKiwHcFpw19ndIs+FwTSMbno=
@@ -54,14 +52,14 @@
 github.com/kr/text v0.1.0/go.mod 
h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/lucasb-eyer/go-colorful v1.3.0 
h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
-github.com/lucasb-eyer/go-colorful v1.3.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
+github.com/lucasb-eyer/go-colorful v1.4.0 
h1:UtrWVfLdarDgc44HcS7pYloGHJUjHV/4FwW4TvVgFr4=
+github.com/lucasb-eyer/go-colorful v1.4.0/go.mod 
h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
 github.com/maruel/natural v1.1.1 
h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
 github.com/maruel/natural v1.1.1/go.mod 
h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg=
 github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 
h1:BXxTozrOU8zgC5dkpn3J6NTRdoP+hjok/e+ACr4Hibk=
 github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3/go.mod 
h1:x1uk6vxTiVuNt6S5R2UYgdhpj3oKojXvOXauHZ7dEnI=
-github.com/mattn/go-isatty v0.0.20 
h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod 
h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-isatty v0.0.21 
h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs=
+github.com/mattn/go-isatty v0.0.21/go.mod 
h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
 github.com/mfridman/tparse v0.18.0 
h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE=
 github.com/mfridman/tparse v0.18.0/go.mod 
h1:gEvqZTuCgEhPbYk/2lS3Kcxg1GmTxxU7kTC8DvP0i/A=
 github.com/mitchellh/go-ps v1.0.0 
h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc=
@@ -108,21 +106,20 @@
 go.yaml.in/yaml/v2 v2.4.4/go.mod 
h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ=
 go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
 go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
-golang.org/x/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI=
-golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY=
-golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0=
-golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw=
+golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM=
+golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
+golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
+golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
 golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
 golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
-golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
-golang.org/x/term v0.41.0/go.mod 
h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
-golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
-golang.org/x/text v0.35.0/go.mod 
h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
-golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s=
-golang.org/x/tools v0.43.0/go.mod 
h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0=
+golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
+golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY=
+golang.org/x/term v0.42.0/go.mod 
h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY=
+golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
+golang.org/x/text v0.36.0/go.mod 
h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
+golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c=
+golang.org/x/tools v0.44.0/go.mod 
h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
 google.golang.org/protobuf v1.36.7 
h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
 google.golang.org/protobuf v1.36.7/go.mod 
h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/internal/cmd/cmds_test.go 
new/dyff-1.12.0/internal/cmd/cmds_test.go
--- old/dyff-1.11.3/internal/cmd/cmds_test.go   2026-03-17 14:28:35.000000000 
+0100
+++ new/dyff-1.12.0/internal/cmd/cmds_test.go   2026-04-26 22:39:02.000000000 
+0200
@@ -51,96 +51,6 @@
                })
        })
 
-       Context("yaml command", func() {
-               Context("creating yaml output", func() {
-                       It("should not create YAML output that is not valid", 
func() {
-                               filename := createTestFile(`{"a": ",", "foo": 
{"bar": "*", "dash": "-"}}`)
-                               defer os.Remove(filename)
-
-                               out, err := dyff("yaml", filename)
-                               Expect(err).ToNot(HaveOccurred())
-                               Expect(out).To(BeEquivalentTo(`---
-a: ","
-foo:
-  bar: "*"
-  dash: "-"
-
-`))
-                       })
-               })
-
-               Context("using restructure", func() {
-                       Context("to write the file to STDOUT", func() {
-                               It("should write a YAML file to STDOUT using 
restructure feature", func() {
-                                       filename := createTestFile(`---
-list:
-- aaa: bbb
-  name: one
-`)
-                                       defer os.Remove(filename)
-
-                                       out, err := dyff("yaml", 
"--restructure", filename)
-                                       Expect(err).ToNot(HaveOccurred())
-                                       Expect(out).To(BeEquivalentTo(`---
-list:
-- name: one
-  aaa: bbb
-
-`))
-                               })
-
-                               It("should write a YAML file with multiple 
documents to STDOUT using restructure feature", func() {
-                                       out, err := dyff("yaml", "--plain", 
"--restructure", assets("issues", "issue-133", "input.yml"))
-                                       Expect(err).ToNot(HaveOccurred())
-                                       Expect(out).To(BeEquivalentTo(`---
-name: one
-bar: foo
-foo: bar
----
-name: two
-Foo: Bar
-Bar: Foo
----
-name: three
-foobar: foobar
-`))
-                               })
-                       })
-
-                       Context("to write the file in-place", func() {
-                               It("should write a YAML file in place using 
restructure feature", func() {
-                                       filename := createTestFile(`---
-list:
-- aaa: bbb
-  name: one
-`)
-                                       defer os.Remove(filename)
-
-                                       out, err := dyff("yaml", 
"--restructure", "--in-place", filename)
-                                       Expect(err).ToNot(HaveOccurred())
-                                       Expect(out).To(BeEmpty())
-
-                                       data, err := os.ReadFile(filename)
-                                       Expect(err).To(BeNil())
-                                       
Expect(string(data)).To(BeEquivalentTo(`---
-list:
-  - name: one
-    aaa: bbb
-`))
-
-                               })
-                       })
-
-                       Context("incorrect usage", func() {
-                               It("should fail to write a YAML when in place 
and STDIN are used at the same time", func() {
-                                       _, err := dyff("yaml", "--in-place", 
"-")
-                                       Expect(err).To(HaveOccurred())
-                                       
Expect(err.Error()).To(ContainSubstring("incompatible flags: cannot use 
in-place flag in combination with input"))
-                               })
-                       })
-               })
-       })
-
        Context("json command", func() {
                It("should write a JSON file in place using restructure 
feature", func() {
                        filename := 
createTestFile(`{"list":[{"aaa":"bbb","name":"one"}]}`)
@@ -554,8 +464,8 @@
                        Expect(out).To(BeEquivalentTo(`
 (root level)
 + four map entries added:
-  kind: ConfigMap
   apiVersion: v1
+  kind: ConfigMap
   metadata:
     name: atlantis-repo-config
     namespace: default
@@ -596,7 +506,6 @@
                        expected := `
 (root level)  (v1/Namespace/test)
 - one document removed:
-  ---
   apiVersion: v1
   kind: Namespace
   metadata:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/internal/cmd/common.go 
new/dyff-1.12.0/internal/cmd/common.go
--- old/dyff-1.11.3/internal/cmd/common.go      2026-03-17 14:28:35.000000000 
+0100
+++ new/dyff-1.12.0/internal/cmd/common.go      2026-04-26 22:39:02.000000000 
+0200
@@ -133,10 +133,11 @@
 // OutputWriter encapsulates the required fields to define the look and feel of
 // the output
 type OutputWriter struct {
-       PlainMode        bool
-       Restructure      bool
-       OmitIndentHelper bool
-       OutputStyle      string
+       PlainMode                  bool
+       Restructure                bool
+       OmitIndentHelper           bool
+       EnforceDocumentStartMarker bool
+       OutputStyle                string
 }
 
 func humanReadableFilename(filename string) string {
@@ -191,14 +192,20 @@
 
                switch {
                case w.PlainMode && w.OutputStyle == "json":
-                       output, err := neat.NewOutputProcessor(false, false, 
&neat.DefaultColorSchema).ToCompactJSON(document)
+                       outputProcessor := neat.NewOutputProcessorWithDefaults()
+
+                       output, err := outputProcessor.ToCompactJSON(document)
                        if err != nil {
                                return err
                        }
+
                        _, _ = fmt.Fprintln(writer, output)
 
                case w.PlainMode && w.OutputStyle == "yaml":
-                       _, _ = fmt.Fprintln(writer, "---")
+                       if len(inputFile.Documents) != 1 || 
w.EnforceDocumentStartMarker {
+                               _, _ = fmt.Fprintln(writer, "---")
+                       }
+
                        encoder := yamlv3.NewEncoder(writer)
                        encoder.SetIndent(2)
 
@@ -211,17 +218,30 @@
                        }
 
                case w.OutputStyle == "json":
-                       output, err := 
neat.NewOutputProcessor(!w.OmitIndentHelper, true, 
&neat.DefaultColorSchema).ToJSON(document)
+                       outputProcessor := 
neat.NewOutputProcessorWithDefaults().
+                               UseIndentLines(!w.OmitIndentHelper).
+                               BoldKeys(true).
+                               ColorSchema(neat.DefaultColorSchema)
+
+                       output, err := outputProcessor.ToJSON(document)
                        if err != nil {
                                return err
                        }
+
                        _, _ = fmt.Fprintln(writer, output)
 
                case w.OutputStyle == "yaml":
-                       output, err := 
neat.NewOutputProcessor(!w.OmitIndentHelper, true, 
&neat.DefaultColorSchema).ToYAML(document)
+                       outputProcessor := 
neat.NewOutputProcessorWithDefaults().
+                               UseIndentLines(!w.OmitIndentHelper).
+                               BoldKeys(true).
+                               
EnforceDocumentStartMarker(len(inputFile.Documents) > 1).
+                               ColorSchema(neat.DefaultColorSchema)
+
+                       output, err := outputProcessor.ToYAML(document)
                        if err != nil {
                                return err
                        }
+
                        _, _ = fmt.Fprintln(writer, output)
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/internal/cmd/yaml.go 
new/dyff-1.12.0/internal/cmd/yaml.go
--- old/dyff-1.11.3/internal/cmd/yaml.go        2026-03-17 14:28:35.000000000 
+0100
+++ new/dyff-1.12.0/internal/cmd/yaml.go        2026-04-26 22:39:02.000000000 
+0200
@@ -30,10 +30,12 @@
 )
 
 type yamlCmdOptions struct {
-       plainMode        bool
-       restructure      bool
-       omitIndentHelper bool
-       inplace          bool
+       restructure bool
+       inplace     bool
+
+       plainMode                  bool
+       omitIndentHelper           bool
+       enforceDocumentStartMarker bool
 }
 
 var yamlCmdSettings yamlCmdOptions
@@ -50,10 +52,11 @@
 
        RunE: func(cmd *cobra.Command, args []string) error {
                writer := &OutputWriter{
-                       OutputStyle:      "yaml",
-                       PlainMode:        yamlCmdSettings.plainMode,
-                       Restructure:      yamlCmdSettings.restructure,
-                       OmitIndentHelper: yamlCmdSettings.omitIndentHelper,
+                       OutputStyle:                "yaml",
+                       PlainMode:                  yamlCmdSettings.plainMode,
+                       Restructure:                yamlCmdSettings.restructure,
+                       OmitIndentHelper:           
yamlCmdSettings.omitIndentHelper,
+                       EnforceDocumentStartMarker: 
yamlCmdSettings.enforceDocumentStartMarker,
                }
 
                var errs []error
@@ -88,6 +91,8 @@
 
        yamlCmd.Flags().BoolVarP(&yamlCmdSettings.plainMode, "plain", "p", 
false, "output in plain style without any highlighting")
        yamlCmd.Flags().BoolVarP(&yamlCmdSettings.restructure, "restructure", 
"r", false, "restructure map keys in reasonable order")
-       yamlCmd.Flags().BoolVarP(&yamlCmdSettings.omitIndentHelper, 
"omit-indent-helper", "O", false, "omit indent helper lines in highlighted 
output")
        yamlCmd.Flags().BoolVarP(&yamlCmdSettings.inplace, "in-place", "i", 
false, "overwrite input file with output of this command")
+
+       yamlCmd.Flags().BoolVarP(&yamlCmdSettings.omitIndentHelper, 
"omit-indent-helper", "O", false, "omit indent helper lines in highlighted 
output")
+       yamlCmd.Flags().BoolVar(&yamlCmdSettings.enforceDocumentStartMarker, 
"enforce-document-start-marker", false, "print YAML document start marker even 
when not necessarily required")
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/internal/cmd/yaml_test.go 
new/dyff-1.12.0/internal/cmd/yaml_test.go
--- old/dyff-1.11.3/internal/cmd/yaml_test.go   1970-01-01 01:00:00.000000000 
+0100
+++ new/dyff-1.12.0/internal/cmd/yaml_test.go   2026-04-26 22:39:02.000000000 
+0200
@@ -0,0 +1,164 @@
+// Copyright © 2019 The Homeport Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to 
deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+package cmd_test
+
+import (
+       "os"
+
+       . "github.com/onsi/ginkgo/v2"
+       . "github.com/onsi/gomega"
+
+       "github.com/gonvenience/term"
+)
+
+var _ = Describe("using dyff yaml", func() {
+       BeforeEach(func() {
+               term.FixedTerminalWidth = 250
+               term.FixedTerminalHeight = 40
+       })
+
+       AfterEach(func() {
+               term.FixedTerminalWidth = -1
+               term.FixedTerminalHeight = -1
+       })
+
+       Context("streaming to StdOut", func() {
+               It("should write single document without document start marker 
in default mode", func() {
+                       filename := createTestFile(`{"foo": "bar"}`)
+                       defer os.Remove(filename)
+
+                       out, err := dyff("yaml", filename)
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`foo: bar
+
+`))
+               })
+
+               It("should write single document without document start marker 
in plain mode", func() {
+                       filename := createTestFile(`{"foo": "bar"}`)
+                       defer os.Remove(filename)
+
+                       out, err := dyff("yaml", "--plain", filename)
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`foo: bar
+`))
+               })
+
+               It("should write multi document with document start marker in 
default mode", func() {
+                       out, err := dyff("yaml", 
assets("multidocs/simple/file.yaml"))
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`---
+foo: bar
+
+---
+bar: foo
+
+`))
+               })
+
+               It("should write multi document with document start marker in 
plain mode", func() {
+                       out, err := dyff("yaml", "--plain", 
assets("multidocs/simple/file.yaml"))
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`---
+foo: bar
+---
+bar: foo
+`))
+               })
+
+               It("should quote all string that have special meaning in YAML", 
func() {
+                       filename := createTestFile(`{"a": ",", "foo": {"bar": 
"*", "dash": "-"}}`)
+                       defer os.Remove(filename)
+
+                       out, err := dyff("yaml", filename)
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`a: ","
+foo:
+  bar: "*"
+  dash: "-"
+
+`))
+               })
+
+               It("should restructure (reorder) fields", func() {
+                       filename := createTestFile(`---
+list:
+- aaa: bbb
+  name: one
+`)
+                       defer os.Remove(filename)
+
+                       out, err := dyff("yaml", "--restructure", filename)
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`list:
+- name: one
+  aaa: bbb
+
+`))
+               })
+
+               It("should restructure (reorder) fields in multi-document 
YAML", func() {
+                       out, err := dyff("yaml", "--plain", "--restructure", 
assets("issues", "issue-133", "input.yml"))
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEquivalentTo(`---
+name: one
+bar: foo
+foo: bar
+---
+name: two
+Foo: Bar
+Bar: Foo
+---
+name: three
+foobar: foobar
+`))
+               })
+       })
+
+       Context("writing in-place", func() {
+               It("should write a YAML file in place using restructure 
feature", func() {
+                       filename := createTestFile(`---
+list:
+- aaa: bbb
+  name: one
+`)
+                       defer os.Remove(filename)
+
+                       out, err := dyff("yaml", "--restructure", "--in-place", 
filename)
+                       Expect(err).ToNot(HaveOccurred())
+                       Expect(out).To(BeEmpty())
+
+                       data, err := os.ReadFile(filename)
+                       Expect(err).To(BeNil())
+                       Expect(string(data)).To(BeEquivalentTo(`list:
+  - name: one
+    aaa: bbb
+`))
+
+               })
+       })
+
+       It("should fail to write a YAML when in place and STDIN are used at the 
same time", func() {
+               _, err := dyff("yaml", "--in-place", "-")
+               Expect(err).To(HaveOccurred())
+               Expect(err.Error()).To(ContainSubstring("incompatible flags: 
cannot use in-place flag in combination with input"))
+       })
+})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/pkg/dyff/colors.go 
new/dyff-1.12.0/pkg/dyff/colors.go
--- old/dyff-1.11.3/pkg/dyff/colors.go  2026-03-17 14:28:35.000000000 +0100
+++ new/dyff-1.12.0/pkg/dyff/colors.go  2026-04-26 22:39:02.000000000 +0200
@@ -160,31 +160,41 @@
 }
 
 func (c *BuntColorizer) YAMLInRedishColors(input interface{}, useIndentLines 
bool) (string, error) {
-       return neat.NewOutputProcessor(useIndentLines, true, 
&map[string]colorful.Color{
-               "keyColor":           bunt.FireBrick,
-               "indentLineColor":    {R: 0.2, G: 0, B: 0},
-               "scalarDefaultColor": bunt.LightCoral,
-               "boolColor":          bunt.LightCoral,
-               "floatColor":         bunt.LightCoral,
-               "intColor":           bunt.LightCoral,
-               "multiLineTextColor": bunt.DarkSalmon,
-               "nullColor":          bunt.Salmon,
-               "emptyStructures":    bunt.LightSalmon,
-               "dashColor":          bunt.FireBrick,
-       }).ToYAML(input)
+       return neat.NewOutputProcessorWithDefaults().
+               BoldKeys(true).
+               UseIndentLines(useIndentLines).
+               EnforceDocumentStartMarker(false).
+               ColorSchema(map[string]colorful.Color{
+                       "keyColor":           bunt.FireBrick,
+                       "indentLineColor":    {R: 0.2, G: 0, B: 0},
+                       "scalarDefaultColor": bunt.LightCoral,
+                       "boolColor":          bunt.LightCoral,
+                       "floatColor":         bunt.LightCoral,
+                       "intColor":           bunt.LightCoral,
+                       "multiLineTextColor": bunt.DarkSalmon,
+                       "nullColor":          bunt.Salmon,
+                       "emptyStructures":    bunt.LightSalmon,
+                       "dashColor":          bunt.FireBrick,
+               }).
+               ToYAML(input)
 }
 
 func (c *BuntColorizer) YAMLInGreenishColors(input interface{}, useIndentLines 
bool) (string, error) {
-       return neat.NewOutputProcessor(useIndentLines, true, 
&map[string]colorful.Color{
-               "keyColor":           bunt.Green,
-               "indentLineColor":    {R: 0, G: 0.2, B: 0},
-               "scalarDefaultColor": bunt.LimeGreen,
-               "boolColor":          bunt.LimeGreen,
-               "floatColor":         bunt.LimeGreen,
-               "intColor":           bunt.LimeGreen,
-               "multiLineTextColor": bunt.OliveDrab,
-               "nullColor":          bunt.Olive,
-               "emptyStructures":    bunt.DarkOliveGreen,
-               "dashColor":          bunt.Green,
-       }).ToYAML(input)
+       return neat.NewOutputProcessorWithDefaults().
+               BoldKeys(true).
+               UseIndentLines(useIndentLines).
+               EnforceDocumentStartMarker(false).
+               ColorSchema(map[string]colorful.Color{
+                       "keyColor":           bunt.Green,
+                       "indentLineColor":    {R: 0, G: 0.2, B: 0},
+                       "scalarDefaultColor": bunt.LimeGreen,
+                       "boolColor":          bunt.LimeGreen,
+                       "floatColor":         bunt.LimeGreen,
+                       "intColor":           bunt.LimeGreen,
+                       "multiLineTextColor": bunt.OliveDrab,
+                       "nullColor":          bunt.Olive,
+                       "emptyStructures":    bunt.DarkOliveGreen,
+                       "dashColor":          bunt.Green,
+               }).
+               ToYAML(input)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dyff-1.11.3/pkg/dyff/output_human.go 
new/dyff-1.12.0/pkg/dyff/output_human.go
--- old/dyff-1.11.3/pkg/dyff/output_human.go    2026-03-17 14:28:35.000000000 
+0100
+++ new/dyff-1.12.0/pkg/dyff/output_human.go    2026-04-26 22:39:02.000000000 
+0200
@@ -619,7 +619,10 @@
                }
        }
 
-       return neat.NewOutputProcessor(false, true, nil).ToYAML(input)
+       return neat.NewOutputProcessorWithDefaults().
+               UseIndentLines(false).
+               BoldKeys(true).
+               ToYAML(input)
 }
 
 func isMinorChange(from string, to string, minorChangeThreshold float64) bool {

++++++ dyff.obsinfo ++++++
--- /var/tmp/diff_new_pack.7kPV3A/_old  2026-04-30 20:28:41.446628490 +0200
+++ /var/tmp/diff_new_pack.7kPV3A/_new  2026-04-30 20:28:41.450628652 +0200
@@ -1,5 +1,5 @@
 name: dyff
-version: 1.11.3
-mtime: 1773754115
-commit: 4512053136bcd17cc8784b386f6c75bda7e01ec2
+version: 1.12.0
+mtime: 1777235942
+commit: ea5d770b575967f1bc21eefcae08712d8f755e04
 

++++++ vendor.tar.gz ++++++
++++ 2423 lines of diff (skipped)

Reply via email to