Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-YAML-Syck for openSUSE:Factory 
checked in at 2026-06-08 14:18:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-YAML-Syck (Old)
 and      /work/SRC/openSUSE:Factory/.perl-YAML-Syck.new.2375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-YAML-Syck"

Mon Jun  8 14:18:57 2026 rev:43 rq:1357777 version:1.460.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-YAML-Syck/perl-YAML-Syck.changes    
2026-05-23 23:27:58.338169356 +0200
+++ /work/SRC/openSUSE:Factory/.perl-YAML-Syck.new.2375/perl-YAML-Syck.changes  
2026-06-08 14:24:56.212103698 +0200
@@ -1,0 +2,22 @@
+Mon May 25 09:09:17 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 1.460.0 (1.46)
+   see /usr/share/doc/packages/perl-YAML-Syck/Changes
+
+  1.46 May 24 2026
+
+    [Bug Fixes]
+    - Fix: preserve string nature of numeric-looking values in Dump; pure
+      strings (POK only, no IOK/NOK) are now quoted to maintain roundtrip
+      fidelity (GH #199, PR #200)
+    - Fix: accept trailing commas in flow sequences and mappings
+      ([a, b,] and {a: 1,}), valid per YAML 1.0/1.1/1.2 spec
+      (GH #195, PR #196)
+
+    [Maintenance]
+    - CI: upgrade install-with-cpm to v2 for compatibility with Perl
+      versions prior to 5.24 in perldocker containers (GH #197, PR #198)
+    - Clean up MANIFEST.SKIP: add #!include_default, remove redundant
+      entries, exclude .claude/ from distribution
+
+-------------------------------------------------------------------

Old:
----
  YAML-Syck-1.45.tar.gz

New:
----
  YAML-Syck-1.46.tar.gz

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

Other differences:
------------------
++++++ perl-YAML-Syck.spec ++++++
--- /var/tmp/diff_new_pack.GlVQPR/_old  2026-06-08 14:24:56.836129575 +0200
+++ /var/tmp/diff_new_pack.GlVQPR/_new  2026-06-08 14:24:56.836129575 +0200
@@ -18,10 +18,10 @@
 
 %define cpan_name YAML-Syck
 Name:           perl-YAML-Syck
-Version:        1.450.0
+Version:        1.460.0
 Release:        0
-# 1.45 -> normalize -> 1.450.0
-%define cpan_version 1.45
+# 1.46 -> normalize -> 1.460.0
+%define cpan_version 1.46
 License:        MIT
 Summary:        Perl YAML loader and dumper
 URL:            https://metacpan.org/release/%{cpan_name}

++++++ YAML-Syck-1.45.tar.gz -> YAML-Syck-1.46.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/Changes new/YAML-Syck-1.46/Changes
--- old/YAML-Syck-1.45/Changes  2026-04-23 17:14:33.251486624 +0200
+++ new/YAML-Syck-1.46/Changes  2026-05-25 05:02:04.000000000 +0200
@@ -1,3 +1,19 @@
+1.46 May 24 2026
+
+  [Bug Fixes]
+  - Fix: preserve string nature of numeric-looking values in Dump; pure
+    strings (POK only, no IOK/NOK) are now quoted to maintain roundtrip
+    fidelity (GH #199, PR #200)
+  - Fix: accept trailing commas in flow sequences and mappings
+    ([a, b,] and {a: 1,}), valid per YAML 1.0/1.1/1.2 spec
+    (GH #195, PR #196)
+
+  [Maintenance]
+  - CI: upgrade install-with-cpm to v2 for compatibility with Perl
+    versions prior to 5.24 in perldocker containers (GH #197, PR #198)
+  - Clean up MANIFEST.SKIP: add #!include_default, remove redundant
+    entries, exclude .claude/ from distribution
+
 1.45 Apr 23 2026
 
   [Bug Fixes]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/MANIFEST new/YAML-Syck-1.46/MANIFEST
--- old/YAML-Syck-1.45/MANIFEST 2026-04-23 17:16:55.000000000 +0200
+++ new/YAML-Syck-1.46/MANIFEST 2026-05-25 05:06:01.000000000 +0200
@@ -46,10 +46,12 @@
 t/gh-dumpcode-prototype.t
 t/gh-load-list-context.t
 t/gh-loadfile-dumpfile-errors.t
+t/gh-199-preserve-string-type.t
 t/gh-negative-base60.t
 t/gh-negative-float-base60.t
 t/gh-negative-hex-oct.t
 t/gh-positive-hex-oct.t
+t/gh-trailing-comma.t
 t/json-basic.t
 t/json-circular-ref.t
 t/json-crlf.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/META.json new/YAML-Syck-1.46/META.json
--- old/YAML-Syck-1.45/META.json        2026-04-23 17:16:55.000000000 +0200
+++ new/YAML-Syck-1.46/META.json        2026-05-25 05:06:01.000000000 +0200
@@ -39,7 +39,7 @@
    "provides" : {
       "JSON::Syck" : {
          "file" : "lib/JSON/Syck.pm",
-         "version" : "1.45"
+         "version" : "1.46"
       },
       "YAML::Dumper::Syck" : {
          "file" : "lib/YAML/Dumper/Syck.pm"
@@ -49,7 +49,7 @@
       },
       "YAML::Syck" : {
          "file" : "lib/YAML/Syck.pm",
-         "version" : "1.45"
+         "version" : "1.46"
       }
    },
    "release_status" : "stable",
@@ -67,6 +67,6 @@
          "web" : "https://github.com/toddr/YAML-Syck";
       }
    },
-   "version" : "1.45",
+   "version" : "1.46",
    "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/META.yml new/YAML-Syck-1.46/META.yml
--- old/YAML-Syck-1.45/META.yml 2026-04-23 17:16:55.000000000 +0200
+++ new/YAML-Syck-1.46/META.yml 2026-05-25 05:06:01.000000000 +0200
@@ -20,14 +20,14 @@
 provides:
   JSON::Syck:
     file: lib/JSON/Syck.pm
-    version: '1.45'
+    version: '1.46'
   YAML::Dumper::Syck:
     file: lib/YAML/Dumper/Syck.pm
   YAML::Loader::Syck:
     file: lib/YAML/Loader/Syck.pm
   YAML::Syck:
     file: lib/YAML/Syck.pm
-    version: '1.45'
+    version: '1.46'
 requires:
   perl: '5.006'
 resources:
@@ -35,5 +35,5 @@
   homepage: https://github.com/toddr/YAML-Syck
   license: https://dev.perl.org/licenses/
   repository: https://github.com/toddr/YAML-Syck.git
-version: '1.45'
+version: '1.46'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.020'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/gram.c new/YAML-Syck-1.46/gram.c
--- old/YAML-Syck-1.45/gram.c   2026-03-25 23:32:12.000000000 +0100
+++ new/YAML-Syck-1.46/gram.c   2026-05-24 18:39:20.000000000 +0200
@@ -500,7 +500,7 @@
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  29
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  80
+#define YYNRULES  82
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  126
 
@@ -557,10 +557,10 @@
      146,   158,   159,   163,   167,   171,   172,   176,   181,   186,
      194,   198,   206,   219,   220,   227,   228,   229,   230,   231,
      235,   239,   246,   253,   258,   263,   268,   273,   277,   284,
-     288,   293,   300,   304,   311,   315,   323,   324,   328,   333,
-     341,   346,   351,   356,   361,   365,   372,   373,   380,   384,
-     393,   394,   406,   414,   421,   430,   434,   441,   442,   452,
-     459
+     288,   293,   300,   304,   311,   315,   320,   327,   328,   332,
+     337,   345,   350,   355,   360,   365,   369,   376,   377,   384,
+     388,   397,   398,   410,   418,   425,   434,   438,   445,   446,
+     453,   460,   467
 };
 #endif
 
@@ -645,15 +645,15 @@
       21,     0,     0,     0,     2,     6,     0,     5,     7,    36,
       37,    38,    39,    10,    30,     8,    27,     9,    28,    11,
       29,    16,    16,    16,    16,    13,     3,    14,    16,    53,
-      56,     0,    54,    57,    76,    79,    80,     0,    77,     1,
-       0,     0,     0,    22,    16,     0,     0,    66,    49,     0,
-       0,     0,     0,    70,     0,    20,    18,    19,    17,    16,
-      16,    16,     0,    16,    52,     0,     0,    75,    24,     0,
-      48,    65,     0,    44,    61,     0,    46,    63,    42,     0,
-      25,     0,    12,    34,    23,    40,    41,    51,    58,    16,
-      59,    73,    15,    74,    55,    78,     0,     0,     0,     0,
-       0,    66,    47,    64,    43,    60,    45,    62,    67,    26,
-      50,    68,    69,    71,    72,     0
+      57,     0,    54,    58,    77,    81,    82,     0,    78,     1,
+       0,     0,     0,    22,    16,     0,     0,    67,    49,     0,
+       0,     0,     0,    71,     0,    20,    18,    19,    17,    16,
+      16,    16,     0,    16,    52,    56,    80,    76,    24,     0,
+      48,    66,     0,    44,    62,     0,    46,    64,    42,     0,
+      25,     0,    12,    34,    23,    40,    41,    51,    59,    16,
+      60,    74,    15,    75,    55,    79,     0,     0,     0,     0,
+       0,    67,    47,    65,    43,    61,    45,    63,    68,    26,
+      50,    69,    70,    72,    73,     0
 };
 
   /* YYPGOTO[NTERM-NUM].  */
@@ -788,10 +788,10 @@
       28,    29,    29,    30,    31,    32,    32,    33,    33,    33,
       33,    33,    33,    33,    33,    34,    34,    34,    34,    34,
       35,    35,    36,    37,    37,    37,    37,    37,    37,    38,
-      38,    38,    39,    39,    40,    40,    41,    41,    42,    42,
-      43,    43,    43,    43,    43,    43,    44,    44,    45,    46,
-      47,    47,    47,    47,    48,    49,    49,    50,    50,    51,
-      51
+      38,    38,    39,    39,    40,    40,    40,    41,    41,    42,
+      42,    43,    43,    43,    43,    43,    43,    44,    44,    45,
+      46,    47,    47,    47,    47,    48,    49,    49,    50,    50,
+      50,    51,    51
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -802,10 +802,10 @@
        2,     1,     2,     1,     1,     1,     2,     2,     2,     2,
        2,     1,     1,     1,     3,     1,     1,     1,     1,     1,
        3,     3,     2,     3,     2,     3,     2,     3,     2,     1,
-       3,     2,     3,     2,     1,     3,     1,     1,     3,     3,
-       3,     2,     3,     2,     3,     2,     1,     3,     1,     3,
-       1,     3,     3,     2,     3,     3,     2,     1,     3,     1,
-       1
+       3,     2,     3,     2,     1,     3,     2,     1,     1,     3,
+       3,     3,     2,     3,     2,     3,     2,     1,     3,     1,
+       3,     1,     3,     3,     2,     3,     3,     2,     1,     3,
+       2,     1,     1
 };
 
 
@@ -1624,96 +1624,104 @@
 #line 1625 "gram.c"
     break;
 
-  case 58: /* implicit_map: indent_open top_imp_map indent_end  */
-#line 329 "gram.y"
+  case 56: /* in_inline_seq: in_inline_seq ','  */
+#line 321 "gram.y"
+        {
+                    (yyval.nodeData) = (yyvsp[-1].nodeData);
+                }
+#line 1633 "gram.c"
+    break;
+
+  case 59: /* implicit_map: indent_open top_imp_map indent_end  */
+#line 333 "gram.y"
         {
                     apply_seq_in_map( (SyckParser *)parser, 
(yyvsp[-1].nodeData) );
                     (yyval.nodeData) = (yyvsp[-1].nodeData);
                 }
-#line 1634 "gram.c"
+#line 1642 "gram.c"
     break;
 
-  case 59: /* implicit_map: indent_open in_implicit_map indent_end  */
-#line 334 "gram.y"
+  case 60: /* implicit_map: indent_open in_implicit_map indent_end  */
+#line 338 "gram.y"
         {
                     apply_seq_in_map( (SyckParser *)parser, 
(yyvsp[-1].nodeData) );
                     (yyval.nodeData) = (yyvsp[-1].nodeData);
                 }
-#line 1643 "gram.c"
+#line 1651 "gram.c"
     break;
 
-  case 60: /* top_imp_map: YAML_TRANSFER indent_sep in_implicit_map  */
-#line 342 "gram.y"
+  case 61: /* top_imp_map: YAML_TRANSFER indent_sep in_implicit_map  */
+#line 346 "gram.y"
         {
                     syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), 
((SyckParser *)parser)->taguri_expansion );
                     (yyval.nodeData) = (yyvsp[0].nodeData);
                 }
-#line 1652 "gram.c"
+#line 1660 "gram.c"
     break;
 
-  case 61: /* top_imp_map: YAML_TRANSFER top_imp_map  */
-#line 347 "gram.y"
+  case 62: /* top_imp_map: YAML_TRANSFER top_imp_map  */
+#line 351 "gram.y"
         {
                     syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 
((SyckParser *)parser)->taguri_expansion );
                     (yyval.nodeData) = (yyvsp[0].nodeData);
                 }
-#line 1661 "gram.c"
+#line 1669 "gram.c"
     break;
 
-  case 62: /* top_imp_map: YAML_TAGURI indent_sep in_implicit_map  */
-#line 352 "gram.y"
+  case 63: /* top_imp_map: YAML_TAGURI indent_sep in_implicit_map  */
+#line 356 "gram.y"
         {
                     syck_add_transfer( (yyvsp[-2].name), (yyvsp[0].nodeData), 
0 );
                     (yyval.nodeData) = (yyvsp[0].nodeData);
                 }
-#line 1670 "gram.c"
+#line 1678 "gram.c"
     break;
 
-  case 63: /* top_imp_map: YAML_TAGURI top_imp_map  */
-#line 357 "gram.y"
+  case 64: /* top_imp_map: YAML_TAGURI top_imp_map  */
+#line 361 "gram.y"
         {
                     syck_add_transfer( (yyvsp[-1].name), (yyvsp[0].nodeData), 
0 );
                     (yyval.nodeData) = (yyvsp[0].nodeData);
                 }
-#line 1679 "gram.c"
+#line 1687 "gram.c"
     break;
 
-  case 64: /* top_imp_map: YAML_ANCHOR indent_sep in_implicit_map  */
-#line 362 "gram.y"
+  case 65: /* top_imp_map: YAML_ANCHOR indent_sep in_implicit_map  */
+#line 366 "gram.y"
         {
                     (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser 
*)parser, (yyvsp[-2].name), (yyvsp[0].nodeData) );
                 }
-#line 1687 "gram.c"
+#line 1695 "gram.c"
     break;
 
-  case 65: /* top_imp_map: YAML_ANCHOR top_imp_map  */
-#line 366 "gram.y"
+  case 66: /* top_imp_map: YAML_ANCHOR top_imp_map  */
+#line 370 "gram.y"
         {
                     (yyval.nodeData) = syck_hdlr_add_anchor( (SyckParser 
*)parser, (yyvsp[-1].name), (yyvsp[0].nodeData) );
                 }
-#line 1695 "gram.c"
+#line 1703 "gram.c"
     break;
 
-  case 67: /* complex_key: '?' atom indent_sep  */
-#line 374 "gram.y"
+  case 68: /* complex_key: '?' atom indent_sep  */
+#line 378 "gram.y"
         {
                     (yyval.nodeData) = (yyvsp[-1].nodeData);
                 }
-#line 1703 "gram.c"
+#line 1711 "gram.c"
     break;
 
-  case 69: /* complex_mapping: complex_key ':' complex_value  */
-#line 385 "gram.y"
+  case 70: /* complex_mapping: complex_key ':' complex_value  */
+#line 389 "gram.y"
         {
                     (yyval.nodeData) = syck_new_map(
                         syck_hdlr_add_node( (SyckParser *)parser, 
(yyvsp[-2].nodeData) ),
                         syck_hdlr_add_node( (SyckParser *)parser, 
(yyvsp[0].nodeData) ) );
                 }
-#line 1713 "gram.c"
+#line 1721 "gram.c"
     break;
 
-  case 71: /* in_implicit_map: in_implicit_map indent_sep basic_seq  */
-#line 395 "gram.y"
+  case 72: /* in_implicit_map: in_implicit_map indent_sep basic_seq  */
+#line 399 "gram.y"
         {
                     if ( (yyvsp[-2].nodeData)->shortcut == NULL )
                     {
@@ -1725,11 +1733,11 @@
                     }
                     (yyval.nodeData) = (yyvsp[-2].nodeData);
                 }
-#line 1729 "gram.c"
+#line 1737 "gram.c"
     break;
 
-  case 72: /* in_implicit_map: in_implicit_map indent_sep complex_mapping  */
-#line 407 "gram.y"
+  case 73: /* in_implicit_map: in_implicit_map indent_sep complex_mapping  */
+#line 411 "gram.y"
         {
                     apply_seq_in_map( (SyckParser *)parser, 
(yyvsp[-2].nodeData) );
                     syck_map_update( (yyvsp[-2].nodeData), (yyvsp[0].nodeData) 
);
@@ -1737,67 +1745,75 @@
                     (yyvsp[0].nodeData) = NULL;
                     (yyval.nodeData) = (yyvsp[-2].nodeData);
                 }
-#line 1741 "gram.c"
+#line 1749 "gram.c"
     break;
 
-  case 73: /* in_implicit_map: in_implicit_map indent_sep  */
-#line 415 "gram.y"
+  case 74: /* in_implicit_map: in_implicit_map indent_sep  */
+#line 419 "gram.y"
         {
                     (yyval.nodeData) = (yyvsp[-1].nodeData);
                 }
-#line 1749 "gram.c"
+#line 1757 "gram.c"
     break;
 
-  case 74: /* basic_mapping: atom ':' atom_or_empty  */
-#line 422 "gram.y"
+  case 75: /* basic_mapping: atom ':' atom_or_empty  */
+#line 426 "gram.y"
         {
                     (yyval.nodeData) = syck_new_map(
                         syck_hdlr_add_node( (SyckParser *)parser, 
(yyvsp[-2].nodeData) ),
                         syck_hdlr_add_node( (SyckParser *)parser, 
(yyvsp[0].nodeData) ) );
                 }
-#line 1759 "gram.c"
+#line 1767 "gram.c"
     break;
 
-  case 75: /* inline_map: '{' in_inline_map '}'  */
-#line 431 "gram.y"
+  case 76: /* inline_map: '{' in_inline_map '}'  */
+#line 435 "gram.y"
         {
                     (yyval.nodeData) = (yyvsp[-1].nodeData);
                 }
-#line 1767 "gram.c"
+#line 1775 "gram.c"
     break;
 
-  case 76: /* inline_map: '{' '}'  */
-#line 435 "gram.y"
+  case 77: /* inline_map: '{' '}'  */
+#line 439 "gram.y"
         {
                     (yyval.nodeData) = syck_alloc_map();
                 }
-#line 1775 "gram.c"
+#line 1783 "gram.c"
     break;
 
-  case 78: /* in_inline_map: in_inline_map ',' inline_map_atom  */
-#line 443 "gram.y"
+  case 79: /* in_inline_map: in_inline_map ',' inline_map_atom  */
+#line 447 "gram.y"
         {
                     syck_map_update( (yyvsp[-2].nodeData), (yyvsp[0].nodeData) 
);
                     syck_free_node( (yyvsp[0].nodeData) );
                     (yyvsp[0].nodeData) = NULL;
                     (yyval.nodeData) = (yyvsp[-2].nodeData);
                                 }
-#line 1786 "gram.c"
+#line 1794 "gram.c"
+    break;
+
+  case 80: /* in_inline_map: in_inline_map ','  */
+#line 454 "gram.y"
+        {
+                    (yyval.nodeData) = (yyvsp[-1].nodeData);
+                }
+#line 1802 "gram.c"
     break;
 
-  case 79: /* inline_map_atom: atom  */
-#line 453 "gram.y"
+  case 81: /* inline_map_atom: atom  */
+#line 461 "gram.y"
         {
                     NULL_NODE( parser, n );
                     (yyval.nodeData) = syck_new_map(
                         syck_hdlr_add_node( (SyckParser *)parser, 
(yyvsp[0].nodeData) ),
                         syck_hdlr_add_node( (SyckParser *)parser, n ) );
                 }
-#line 1797 "gram.c"
+#line 1813 "gram.c"
     break;
 
 
-#line 1801 "gram.c"
+#line 1817 "gram.c"
 
       default: break;
     }
@@ -1991,7 +2007,7 @@
   return yyresult;
 }
 
-#line 462 "gram.y"
+#line 470 "gram.y"
 
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/lib/JSON/Syck.pm 
new/YAML-Syck-1.46/lib/JSON/Syck.pm
--- old/YAML-Syck-1.45/lib/JSON/Syck.pm 2026-04-23 17:14:49.693996266 +0200
+++ new/YAML-Syck-1.46/lib/JSON/Syck.pm 2026-05-25 05:02:30.226749660 +0200
@@ -4,7 +4,7 @@
 use Exporter;
 use YAML::Syck ();
 
-our $VERSION   = '1.45';
+our $VERSION   = '1.46';
 our @EXPORT_OK = qw( Load Dump LoadFile DumpFile DumpInto );
 our @ISA       = qw/Exporter/;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/lib/YAML/Syck.pm 
new/YAML-Syck-1.46/lib/YAML/Syck.pm
--- old/YAML-Syck-1.45/lib/YAML/Syck.pm 2026-04-23 17:14:39.910280897 +0200
+++ new/YAML-Syck-1.46/lib/YAML/Syck.pm 2026-05-25 05:02:30.226964328 +0200
@@ -10,7 +10,7 @@
 use Exporter;
 use XSLoader ();
 
-our $VERSION   = '1.45';
+our $VERSION   = '1.46';
 our @EXPORT    = qw( Dump Load DumpFile LoadFile );
 our @EXPORT_OK = qw( DumpInto LoadBytes LoadUTF8 DumpBytes DumpUTF8 );
 our @ISA       = qw( Exporter );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/perl_syck.h 
new/YAML-Syck-1.46/perl_syck.h
--- old/YAML-Syck-1.45/perl_syck.h      2026-04-23 17:12:20.000000000 +0200
+++ new/YAML-Syck-1.46/perl_syck.h      2026-05-25 05:00:27.000000000 +0200
@@ -1247,7 +1247,11 @@
 /* JSON should preserve quotes even on simple integers ("0" is true in 
javascript) */
 #ifndef YAML_IS_JSON
         if (looks_like_number(sv)) {
-               if(syck_str_is_unquotable_integer(SvPV_nolen(sv), sv_len(sv))) {
+               if(!(SvIOK(sv) || SvNOK(sv))) {
+                       /* POK-only: string that looks numeric — quote to 
preserve type */
+                       syck_emit_scalar(e, OBJOF("str"), SCALAR_QUOTED, 0, 0, 
0, SvPV_nolen(sv), len);
+               }
+               else if(syck_str_is_unquotable_integer(SvPV_nolen(sv), 
sv_len(sv))) {
                        /* emit an unquoted number only if it's a very basic 
integer. /^-?[1-9][0-9]*$/ */
                        syck_emit_scalar(e, OBJOF("str"), SCALAR_NUMBER, 0, 0, 
0, SvPV_nolen(sv), len);
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/t/3-objects.t 
new/YAML-Syck-1.46/t/3-objects.t
--- old/YAML-Syck-1.45/t/3-objects.t    2026-03-25 17:41:01.000000000 +0100
+++ new/YAML-Syck-1.46/t/3-objects.t    2026-05-25 05:00:27.000000000 +0200
@@ -65,7 +65,7 @@
 is( Dump($obj),                 "--- !!perl/scalar:Foo ~\n" );
 is( Dump( Load( Dump($obj) ) ), "--- !!perl/scalar:Foo ~\n" );
 
-is( Dump( bless( { 1 .. 10 }, 'foo' ) ), "--- !!perl/hash:foo\n1: 2\n3: 4\n5: 
6\n7: 8\n9: 10\n" );
+is( Dump( bless( { 1 .. 10 }, 'foo' ) ), "--- !!perl/hash:foo\n\"1\": 
2\n\"3\": 4\n\"5\": 6\n\"7\": 8\n\"9\": 10\n" );
 
 $YAML::Syck::UseCode = 1;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/t/gh-199-preserve-string-type.t 
new/YAML-Syck-1.46/t/gh-199-preserve-string-type.t
--- old/YAML-Syck-1.45/t/gh-199-preserve-string-type.t  1970-01-01 
01:00:00.000000000 +0100
+++ new/YAML-Syck-1.46/t/gh-199-preserve-string-type.t  2026-05-25 
05:00:27.000000000 +0200
@@ -0,0 +1,80 @@
+use strict;
+use Test::More tests => 12;
+use YAML::Syck;
+
+# GH #199: YAML::Syck should preserve the string nature of numeric-looking 
values.
+# A Perl scalar that is a pure string (POK only, no IOK/NOK) must be quoted
+# in the Dump output so that a subsequent Load sees it as a string, not an 
integer.
+
+# Pure Perl string that looks like an integer
+{
+    my $str = "8080";
+    my $yaml = Dump({ val => $str });
+    like( $yaml, qr/val: '8080'/, "pure string '8080' is quoted in Dump" );
+}
+
+# Actual Perl integer
+{
+    my $num = 8080;
+    my $yaml = Dump({ val => $num });
+    like( $yaml, qr/val: 8080\b/, "integer 8080 is unquoted in Dump" );
+    unlike( $yaml, qr/val: '8080'/, "integer 8080 is not single-quoted" );
+}
+
+# String that was numified (IOK+POK after arithmetic)
+{
+    my $str = "8080";
+    my $n = $str + 0;
+    my $yaml = Dump({ val => $str });
+    like( $yaml, qr/val: 8080\b/, "numified string emits unquoted" );
+}
+
+# Original issue: flow collection with quoted strings
+{
+    my $yaml_in = qq{command: [ "daemon", "-p", "8080" ]};
+    my $data = Load($yaml_in);
+    my $yaml_out = Dump($data);
+    like( $yaml_out, qr/'8080'/, "quoted '8080' in flow collection roundtrips 
quoted" );
+}
+
+# ImplicitTyping=1: unquoted number stays unquoted
+{
+    local $YAML::Syck::ImplicitTyping = 1;
+    my $data = Load("val: 8080");
+    my $yaml = Dump($data);
+    like( $yaml, qr/val: 8080\b/, "ImplicitTyping=1: unquoted 8080 stays 
unquoted" );
+    unlike( $yaml, qr/val: '8080'/, "ImplicitTyping=1: unquoted 8080 not 
quoted" );
+}
+
+# ImplicitTyping=1: quoted string stays quoted
+{
+    local $YAML::Syck::ImplicitTyping = 1;
+    my $data = Load('val: "8080"');
+    my $yaml = Dump($data);
+    like( $yaml, qr/val: '8080'/, "ImplicitTyping=1: quoted '8080' stays 
quoted" );
+}
+
+# Zero string vs zero integer
+{
+    my $str_zero = "0";
+    my $yaml = Dump({ val => $str_zero });
+    like( $yaml, qr/val: '0'/, "string '0' is quoted" );
+
+    my $num_zero = 0;
+    $yaml = Dump({ val => $num_zero });
+    like( $yaml, qr/val: 0\b/, "integer 0 is unquoted" );
+}
+
+# Float string
+{
+    my $str_float = "3.14";
+    my $yaml = Dump({ val => $str_float });
+    like( $yaml, qr/val: '3\.14'/, "float-like string '3.14' is quoted" );
+}
+
+# Negative number string
+{
+    my $str_neg = "-42";
+    my $yaml = Dump({ val => $str_neg });
+    like( $yaml, qr/val: '-42'/, "negative number string '-42' is quoted" );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/t/gh-trailing-comma.t 
new/YAML-Syck-1.46/t/gh-trailing-comma.t
--- old/YAML-Syck-1.45/t/gh-trailing-comma.t    1970-01-01 01:00:00.000000000 
+0100
+++ new/YAML-Syck-1.46/t/gh-trailing-comma.t    2026-05-24 18:39:20.000000000 
+0200
@@ -0,0 +1,33 @@
+use strict;
+use warnings;
+use Test::More tests => 8;
+use YAML::Syck;
+
+# GitHub issue #195: trailing commas in flow collections are valid YAML
+# (all spec versions: 1.0, 1.1, 1.2) but YAML-Syck rejected them.
+
+# Flow sequences with trailing comma
+is_deeply eval { Load("test: [a, b, c,]\n") }, { test => [qw(a b c)] },
+    'flow sequence with trailing comma';
+
+is_deeply eval { Load("test: [a,]\n") }, { test => ['a'] },
+    'single-element flow sequence with trailing comma';
+
+is_deeply Load("test: [a, b, c]\n"), { test => [qw(a b c)] },
+    'flow sequence without trailing comma still works';
+
+is_deeply Load("test: []\n"), { test => [] },
+    'empty flow sequence still works';
+
+# Flow mappings with trailing comma
+is_deeply eval { Load("test: {a: 1, b: 2,}\n") }, { test => { a => 1, b => 2 } 
},
+    'flow mapping with trailing comma';
+
+is_deeply eval { Load("test: {a: 1,}\n") }, { test => { a => 1 } },
+    'single-entry flow mapping with trailing comma';
+
+is_deeply Load("test: {a: 1, b: 2}\n"), { test => { a => 1, b => 2 } },
+    'flow mapping without trailing comma still works';
+
+is_deeply Load("test: {}\n"), { test => {} },
+    'empty flow mapping still works';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/YAML-Syck-1.45/t/yaml-tie.t 
new/YAML-Syck-1.46/t/yaml-tie.t
--- old/YAML-Syck-1.45/t/yaml-tie.t     2026-03-21 01:49:16.000000000 +0100
+++ new/YAML-Syck-1.46/t/yaml-tie.t     2026-05-25 05:00:27.000000000 +0200
@@ -10,8 +10,8 @@
     %h = ( a => 1, b => '2', c => 3.1415, d => 4 );
     bless $rh => 'Tie::StdHash';
 
-    is( Dump($rh),   "--- !!perl/hash:Tie::StdHash\na: 1\nb: 2\nc: 
'3.1415'\nd: 4\n", "blessed hash ref dumps with class tag" );
-    is( Dump( \%h ), "--- !!perl/hash:Tie::StdHash\na: 1\nb: 2\nc: 
'3.1415'\nd: 4\n", "blessed hash deref dumps with class tag" );
+    is( Dump($rh),   "--- !!perl/hash:Tie::StdHash\na: 1\nb: '2'\nc: 
'3.1415'\nd: 4\n", "blessed hash ref dumps with class tag" );
+    is( Dump( \%h ), "--- !!perl/hash:Tie::StdHash\na: 1\nb: '2'\nc: 
'3.1415'\nd: 4\n", "blessed hash deref dumps with class tag" );
 }
 
 # Tied hash - tie object ($th) is blessed, so it gets a class tag
@@ -23,13 +23,13 @@
   SKIP: {
         skip "Perl 5.8 sometimes coerces ints into strings (Perl bug, not 
ours)", 1
             unless ( $] > '5.009888' || $] < '5.007' );
-        is( Dump($th), "--- !!perl/hash:Tie::StdHash\na: 1\nb: 2\nc: 
'3.1415'\nd: 4\n", "tie object dumps with class tag" );
+        is( Dump($th), "--- !!perl/hash:Tie::StdHash\na: 1\nb: '2'\nc: 
'3.1415'\nd: 4\n", "tie object dumps with class tag" );
     }
 
     # Tied hash reference dumps content (no class tag since \%h is not blessed)
   SKIP: {
         skip "Perl 5.8 tied hash iteration loses some values", 1 if $] < 
'5.010';
-        is( Dump( \%h ), "---\na: 1\nb: 2\nc: '3.1415'\nd: 4\n", "tied hash 
ref dumps content" );
+        is( Dump( \%h ), "---\na: 1\nb: '2'\nc: '3.1415'\nd: 4\n", "tied hash 
ref dumps content" );
     }
 }
 
@@ -42,8 +42,8 @@
     $h{c} = 3.1415;
     $h{d} = 4;
 
-    is( Dump($th), "--- !!perl/hash:Tie::StdHash\na: 1\nb: 2\nc: '3.1415'\nd: 
4\n", "tie object with individual assigns dumps correctly" );
-    is( Dump( \%h ), "---\na: 1\nb: 2\nc: '3.1415'\nd: 4\n", "tied hash ref 
with individual assigns dumps content" );
+    is( Dump($th), "--- !!perl/hash:Tie::StdHash\na: 1\nb: '2'\nc: 
'3.1415'\nd: 4\n", "tie object with individual assigns dumps correctly" );
+    is( Dump( \%h ), "---\na: 1\nb: '2'\nc: '3.1415'\nd: 4\n", "tied hash ref 
with individual assigns dumps content" );
 }
 
 # Empty tied hash

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.GlVQPR/_old  2026-06-08 14:24:57.152142679 +0200
+++ /var/tmp/diff_new_pack.GlVQPR/_new  2026-06-08 14:24:57.156142845 +0200
@@ -1,6 +1,6 @@
-mtime: 1779462447
-commit: 85b598acb5ef8d64097db3cec4ee1ed39208b04258a58501f98da5c62ab6f0d4
+mtime: 1779700158
+commit: c78eb2b0eabbb7062b67ab11d00e687e58bca160c3274f2143ec1e20601af202
 url: https://src.opensuse.org/perl/perl-YAML-Syck
-revision: 85b598acb5ef8d64097db3cec4ee1ed39208b04258a58501f98da5c62ab6f0d4
+revision: c78eb2b0eabbb7062b67ab11d00e687e58bca160c3274f2143ec1e20601af202
 projectscmsync: https://src.opensuse.org/perl/_ObsPrj
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-05-25 11:09:18.000000000 +0200
@@ -0,0 +1 @@
+.osc

Reply via email to