Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-Feature-Compat-Class for 
openSUSE:Factory checked in at 2026-09-07 16:24:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Feature-Compat-Class (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Feature-Compat-Class.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Feature-Compat-Class"

Mon Sep  7 16:24:00 2026 rev:2 rq:1375844 version:0.80.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Feature-Compat-Class/perl-Feature-Compat-Class.changes
      2025-01-31 16:04:48.836965945 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Feature-Compat-Class.new.1265/perl-Feature-Compat-Class.changes
    2026-09-07 16:24:02.325789916 +0200
@@ -1,0 +2,13 @@
+Tue Dec  9 05:34:49 UTC 2025 - Tina Müller <[email protected]>
+
+- updated to 0.80.0 (0.08)
+   see /usr/share/doc/packages/perl-Feature-Compat-Class/Changes
+
+  0.08    2025-12-08
+          [CHANGES]
+           * Updated for Perl v5.42 to support the `:writer` field attribute on
+             scalar fields
+           * Swapped unit tests from `Test::More` to `Test2::V0`
+           * Account for respelling of "unrecognized" in latest bleadperl
+
+-------------------------------------------------------------------

Old:
----
  Feature-Compat-Class-0.07.tar.gz

New:
----
  Feature-Compat-Class-0.08.tar.gz
  README.md
  _scmsync.obsinfo
  build.specials.obscpio

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

Other differences:
------------------
++++++ perl-Feature-Compat-Class.spec ++++++
--- /var/tmp/diff_new_pack.5rDoMS/_old  2026-09-07 16:24:04.283871992 +0200
+++ /var/tmp/diff_new_pack.5rDoMS/_new  2026-09-07 16:24:04.285872076 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Feature-Compat-Class
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,22 +18,23 @@
 
 %define cpan_name Feature-Compat-Class
 Name:           perl-Feature-Compat-Class
-Version:        0.70.0
+Version:        0.80.0
 Release:        0
-# 0.07 -> normalize -> 0.70.0
-%define cpan_version 0.07
+# 0.08 -> normalize -> 0.80.0
+%define cpan_version 0.08
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Summary:        Make class syntax available
 URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/P/PE/PEVANS/%{cpan_name}-%{cpan_version}.tar.gz
 Source1:        cpanspec.yml
+Source100:      README.md
 BuildArch:      noarch
 BuildRequires:  perl
 BuildRequires:  perl-macros
-BuildRequires:  perl(Module::Build) >= 0.4004
-BuildRequires:  perl(Object::Pad) >= 0.806
-BuildRequires:  perl(Test::More) >= 0.88
-Requires:       perl(Object::Pad) >= 0.806
+BuildRequires:  perl(Module::Build) >= 0.400.400
+BuildRequires:  perl(Object::Pad) >= 0.823
+BuildRequires:  perl(Test2::V0)
+Requires:       perl(Object::Pad) >= 0.823
 Provides:       perl(Feature::Compat::Class) = %{version}
 %undefine       __perllib_provides
 %{perl_requires}
@@ -47,7 +48,8 @@
    use feature 'class';
 
 This syntax was further expanded in 5.40, adding the '__CLASS__' keyword
-and ':reader' attribute on fields.
+and ':reader' attribute on fields, and again in 5.42 to add the ':writer'
+attribute.
 
 On that version of perl or later, this module simply enables the core
 feature equivalent of using it directly. On such perls, this module will

++++++ Feature-Compat-Class-0.07.tar.gz -> Feature-Compat-Class-0.08.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/Build.PL 
new/Feature-Compat-Class-0.08/Build.PL
--- old/Feature-Compat-Class-0.07/Build.PL      2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/Build.PL      2025-12-08 14:31:10.000000000 
+0100
@@ -8,11 +8,11 @@
 );
 
 my %REQUIRES_OP = (
-   'Object::Pad' => '0.806',
+   'Object::Pad' => '0.823',
 );
 
-# We need the :reader attribute from 5.40
-my $HAVE_FEATURE_CLASS = $^V ge v5.40;
+# We need the :writer attribute from 5.42
+my $HAVE_FEATURE_CLASS = $^V ge v5.42;
 
 printf "Using %s\n",
    $HAVE_FEATURE_CLASS ? "core's feature 'class'" : "Object::Pad";
@@ -24,7 +24,7 @@
       $HAVE_FEATURE_CLASS ? %REQUIRES_PERL : %REQUIRES_OP,
    },
    test_requires => {
-      'Test::More' => '0.88', # done_testing
+      'Test2::V0' => 0,
    },
    configure_requires => {
       'Module::Build' => '0.4004', # test_requires
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/Changes 
new/Feature-Compat-Class-0.08/Changes
--- old/Feature-Compat-Class-0.07/Changes       2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/Changes       2025-12-08 14:31:10.000000000 
+0100
@@ -1,5 +1,12 @@
 Revision history for Feature-Compat-Class
 
+0.08    2025-12-08
+        [CHANGES]
+         * Updated for Perl v5.42 to support the `:writer` field attribute on
+           scalar fields
+         * Swapped unit tests from `Test::More` to `Test2::V0`
+         * Account for respelling of "unrecognized" in latest bleadperl
+
 0.07    2024-07-08
         [CHANGES]
          * Updated for Perl v5.40 to support the `:reader` field attribute and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/LICENSE 
new/Feature-Compat-Class-0.08/LICENSE
--- old/Feature-Compat-Class-0.07/LICENSE       2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/LICENSE       2025-12-08 14:31:10.000000000 
+0100
@@ -1,4 +1,4 @@
-This software is copyright (c) 2024 by Paul Evans <[email protected]>.
+This software is copyright (c) 2025 by Paul Evans <[email protected]>.
 
 This is free software; you can redistribute it and/or modify it under
 the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
 
 --- The GNU General Public License, Version 1, February 1989 ---
 
-This software is Copyright (c) 2024 by Paul Evans <[email protected]>.
+This software is Copyright (c) 2025 by Paul Evans <[email protected]>.
 
 This is free software, licensed under:
 
@@ -272,7 +272,7 @@
 
 --- The Perl Artistic License 1.0 ---
 
-This software is Copyright (c) 2024 by Paul Evans <[email protected]>.
+This software is Copyright (c) 2025 by Paul Evans <[email protected]>.
 
 This is free software, licensed under:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/META.json 
new/Feature-Compat-Class-0.08/META.json
--- old/Feature-Compat-Class-0.07/META.json     2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/META.json     2025-12-08 14:31:10.000000000 
+0100
@@ -21,20 +21,20 @@
       },
       "runtime" : {
          "requires" : {
-            "Object::Pad" : "0.806",
+            "Object::Pad" : "0.823",
             "perl" : "5.014"
          }
       },
       "test" : {
          "requires" : {
-            "Test::More" : "0.88"
+            "Test2::V0" : "0"
          }
       }
    },
    "provides" : {
       "Feature::Compat::Class" : {
          "file" : "lib/Feature/Compat/Class.pm",
-         "version" : "0.07"
+         "version" : "0.08"
       }
    },
    "release_status" : "stable",
@@ -43,6 +43,6 @@
          "http://dev.perl.org/licenses/";
       ]
    },
-   "version" : "0.07",
+   "version" : "0.08",
    "x_serialization_backend" : "JSON::PP version 4.16"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/META.yml 
new/Feature-Compat-Class-0.08/META.yml
--- old/Feature-Compat-Class-0.07/META.yml      2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/META.yml      2025-12-08 14:31:10.000000000 
+0100
@@ -3,7 +3,7 @@
 author:
   - 'Paul Evans <[email protected]>'
 build_requires:
-  Test::More: '0.88'
+  Test2::V0: '0'
 configure_requires:
   Module::Build: '0.4004'
 dynamic_config: 1
@@ -16,11 +16,11 @@
 provides:
   Feature::Compat::Class:
     file: lib/Feature/Compat/Class.pm
-    version: '0.07'
+    version: '0.08'
 requires:
-  Object::Pad: '0.806'
+  Object::Pad: '0.823'
   perl: '5.014'
 resources:
   license: http://dev.perl.org/licenses/
-version: '0.07'
+version: '0.08'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/README 
new/Feature-Compat-Class-0.08/README
--- old/Feature-Compat-Class-0.07/README        2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/README        2025-12-08 14:31:10.000000000 
+0100
@@ -7,8 +7,8 @@
        use Feature::Compat::Class;
     
        class Point {
-          field $x :param :reader = 0;
-          field $y :param :reader = 0;
+          field $x :param :reader :writer = 0;
+          field $y :param :reader :writer = 0;
     
           method move_to ($new_x, $new_y) {
              $x = $new_x;
@@ -32,7 +32,8 @@
        use feature 'class';
 
     This syntax was further expanded in 5.40, adding the __CLASS__ keyword
-    and :reader attribute on fields.
+    and :reader attribute on fields, and again in 5.42 to add the :writer
+    attribute.
 
     On that version of perl or later, this module simply enables the core
     feature equivalent of using it directly. On such perls, this module
@@ -203,7 +204,7 @@
        field $x :reader;
     
        # equivalent to
-       field $x;  method x { return $x }
+       field $x;  method x () { return $x }
 
     These are permitted on an field type, not just scalars. The reader
     method behaves identically to how a lexical variable would behave in
@@ -217,6 +218,29 @@
     
        my $count = $obj->items;                   # yields count of items
 
+  :writer, :writer(NAME)
+
+    Since version 0.08.
+
+    Generates a writer method to set a new value for the field. If no name
+    is given, the name of the field is used with a set_ prefix. If a name
+    is provided that will be used - you should remember to add a
+    distinguishing prefix if required to keep it distinct from the reader
+    method. A single prefix character _ will be removed if present.
+
+       field $x :writer;
+    
+       # equivalent to
+       field $x;  method set_x ($new_x) { $x = $new_x; return $self; }
+
+    When invoked, a :writer method will return the invocant object itself.
+    This is so that multiple fields can be modified in a convenient
+    chaining syntax; for example:
+
+       $obj->set_x( 10 )
+           ->set_y( 20 )
+           ->set_z( 30 );
+
  ADJUST
 
        ADJUST { ... }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Feature-Compat-Class-0.07/lib/Feature/Compat/Class.pm 
new/Feature-Compat-Class-0.08/lib/Feature/Compat/Class.pm
--- old/Feature-Compat-Class-0.07/lib/Feature/Compat/Class.pm   2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/lib/Feature/Compat/Class.pm   2025-12-08 
14:31:10.000000000 +0100
@@ -1,15 +1,15 @@
 #  You may distribute under the terms of either the GNU General Public License
 #  or the Artistic License (the same terms as Perl itself)
 #
-#  (C) Paul Evans, 2022-2024 -- [email protected]
+#  (C) Paul Evans, 2022-2025 -- [email protected]
 
-package Feature::Compat::Class 0.07;
+package Feature::Compat::Class 0.08;
 
 use v5.14;
 use warnings;
 use feature ();
 
-use constant HAVE_FEATURE_CLASS => $^V ge v5.40;
+use constant HAVE_FEATURE_CLASS => $^V ge v5.42;
 
 =head1 NAME
 
@@ -20,8 +20,8 @@
    use Feature::Compat::Class;
 
    class Point {
-      field $x :param :reader = 0;
-      field $y :param :reader = 0;
+      field $x :param :reader :writer = 0;
+      field $y :param :reader :writer = 0;
 
       method move_to ($new_x, $new_y) {
          $x = $new_x;
@@ -45,7 +45,8 @@
    use feature 'class';
 
 This syntax was further expanded in 5.40, adding the C<__CLASS__> keyword and
-C<:reader> attribute on fields.
+C<:reader> attribute on fields, and again in 5.42 to add the C<:writer>
+attribute.
 
 On that version of perl or later, this module simply enables the core feature
 equivalent of using it directly. On such perls, this module will install with
@@ -73,12 +74,12 @@
    }
    else {
       require Object::Pad;
-      Object::Pad->VERSION( '0.806' );
+      Object::Pad->VERSION( '0.823' ); # :config(writer_only_scalar)
       Object::Pad->import(qw( class method field ADJUST ),
          ':experimental(init_expr)',
          ':config(' .
-            'always_strict only_class_attrs=isa only_field_attrs=param,reader 
' .
-            'no_field_block no_adjust_attrs no_implicit_pragmata' .
+            'always_strict only_class_attrs=isa 
only_field_attrs=param,reader,writer ' .
+            'no_field_block no_adjust_attrs no_implicit_pragmata 
writer_only_scalar' .
          ')',
       );
    }
@@ -234,7 +235,7 @@
    field $x :reader;
 
    # equivalent to
-   field $x;  method x { return $x }
+   field $x;  method x () { return $x }
 
 These are permitted on an field type, not just scalars. The reader method
 behaves identically to how a lexical variable would behave in the same
@@ -248,6 +249,29 @@
 
    my $count = $obj->items;                   # yields count of items
 
+=head3 :writer, :writer(NAME)
+
+I<Since version 0.08.>
+
+Generates a writer method to set a new value for the field. If no name is
+given, the name of the field is used with a C<set_> prefix. If a name is
+provided that will be used - you should remember to add a distinguishing
+prefix if required to keep it distinct from the reader method. A single
+prefix character C<_> will be removed if present.
+
+   field $x :writer;
+
+   # equivalent to
+   field $x;  method set_x ($new_x) { $x = $new_x; return $self; }
+
+When invoked, a C<:writer> method will return the invocant object itself.
+This is so that multiple fields can be modified in a convenient chaining
+syntax; for example:
+
+   $obj->set_x( 10 )
+       ->set_y( 20 )
+       ->set_z( 30 );
+
 =head2 ADJUST
 
    ADJUST { ... }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/00use.t 
new/Feature-Compat-Class-0.08/t/00use.t
--- old/Feature-Compat-Class-0.07/t/00use.t     2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/t/00use.t     2025-12-08 14:31:10.000000000 
+0100
@@ -3,8 +3,9 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
-use_ok( "Feature::Compat::Class" );
+require Feature::Compat::Class;
 
+pass "Modules loaded";
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/01method.t 
new/Feature-Compat-Class-0.08/t/01method.t
--- old/Feature-Compat-Class-0.07/t/01method.t  2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/t/01method.t  2025-12-08 14:31:10.000000000 
+0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -20,7 +20,7 @@
    }
 
    my $obj = Test1->new;
-   isa_ok( $obj, "Test1", '$obj' );
+   isa_ok( $obj, [ "Test1" ], '$obj' );
 
    is( $obj->hello, "Hello, world!", '$obj->hello' );
 
@@ -44,7 +44,7 @@
    }
 
    my $obj = Test3->new;
-   is_deeply( [ $obj->args( "a", "b" ) ], [ "a", "b" ],
+   is( [ $obj->args( "a", "b" ) ], [ "a", "b" ],
       '$self is shifted from @_' );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/02fields.t 
new/Feature-Compat-Class-0.08/t/02fields.t
--- old/Feature-Compat-Class-0.07/t/02fields.t  2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/t/02fields.t  2025-12-08 14:31:10.000000000 
+0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -40,9 +40,9 @@
       field %hash   = ( 89 => 10 );
 
       method test {
-         Test::More::is(        $scalar, 123,         '$scalar field' );
-         Test::More::is_deeply( \@array, [ 45, 67 ],  '@array field' );
-         Test::More::is_deeply( \%hash, { 89 => 10 }, '%hash field' );
+         ::is( $scalar, 123,          '$scalar field' );
+         ::is( \@array, [ 45, 67 ],   '@array field' );
+         ::is( \%hash,  { 89 => 10 }, '%hash field' );
       }
    }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/03create.t 
new/Feature-Compat-Class-0.08/t/03create.t
--- old/Feature-Compat-Class-0.07/t/03create.t  2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/t/03create.t  2025-12-08 14:31:10.000000000 
+0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -23,7 +23,7 @@
    }
 
    Test1->new();
-   is_deeply( \@called, [qw( ADJUST-1 ADJUST-2 )], 'ADJUST blocks invoked in 
sequence' );
+   is( \@called, [qw( ADJUST-1 ADJUST-2 )], 'ADJUST blocks invoked in 
sequence' );
 
    is( $class_in_ADJUST, "Test1", '__CLASS__ during ADJUST block' );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/05subclass.t 
new/Feature-Compat-Class-0.08/t/05subclass.t
--- old/Feature-Compat-Class-0.07/t/05subclass.t        2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/05subclass.t        2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -18,8 +18,8 @@
    }
 
    my $obj = Test1Derived->new;
-   isa_ok( $obj, "Test1Derived", '$obj' );
-   isa_ok( $obj, "Test1Base",    '$obj' );
+   isa_ok( $obj, [ "Test1Derived" ], '$obj' );
+   isa_ok( $obj, [ "Test1Base" ],    '$obj' );
    is( $obj->describe, "Value is 123", 'Object can invoke superclass methods' 
);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/11method-signatures.t 
new/Feature-Compat-Class-0.08/t/11method-signatures.t
--- old/Feature-Compat-Class-0.07/t/11method-signatures.t       2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/11method-signatures.t       2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 BEGIN {
    $] >= 5.026000 or plan skip_all => "No parse_subsignature()";
@@ -21,7 +21,7 @@
 {
    my $l = List->new;
    $l->push(qw( a b c d ));
-   is_deeply( [ $l->nshift( 2 ) ],
+   is( [ $l->nshift( 2 ) ],
       [qw( a b )],
       '$l->nshift yields values' );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/12fields-capture.t 
new/Feature-Compat-Class-0.08/t/12fields-capture.t
--- old/Feature-Compat-Class-0.07/t/12fields-capture.t  2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/12fields-capture.t  2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/22fields-accesssors.t 
new/Feature-Compat-Class-0.08/t/22fields-accesssors.t
--- old/Feature-Compat-Class-0.07/t/22fields-accesssors.t       2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/22fields-accesssors.t       2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -21,8 +21,8 @@
 
    my $allthetypes = AllTheTypesReader->new;
    is( $allthetypes->sv, 123, ':reader on scalar field' );
-   is_deeply( [ $allthetypes->av ], [qw( one two three )],  ':reader on array 
field' );
-   is_deeply( { $allthetypes->hv }, { one => 1, two => 2 }, ':reader on hash 
field' );
+   is( [ $allthetypes->av ], [qw( one two three )],  ':reader on array field' 
);
+   is( { $allthetypes->hv }, { one => 1, two => 2 }, ':reader on hash field' );
 
    is( scalar $allthetypes->av, 3,   ':reader on array field in scalar 
context' );
 
@@ -39,4 +39,31 @@
       'exception message from too many arguments to reader' );
 }
 
+# writers
+{
+   class AllTheTypesWriter {
+      field $sv :reader :writer;
+      # only scalars support for now
+   }
+
+   my $allthetypes = AllTheTypesWriter->new;
+   $allthetypes->set_sv( 456 );
+   is( $allthetypes->sv, 456, ':writer set value of scalar field' );
+}
+
+# writers are not currently permitted on non-scalar fields
+{
+   ok( !defined eval <<'EOF',
+      class WriterOnArray { field @av :writer; }
+      1
+EOF
+      ':writer not permitted on array field' );
+
+   ok( !defined eval <<'EOF',
+      class WriterOnHash { field %hv :writer; }
+      1
+EOF
+      ':writer not permitted on hash field' );
+}
+
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/24fields-constructor.t 
new/Feature-Compat-Class-0.08/t/24fields-constructor.t
--- old/Feature-Compat-Class-0.07/t/24fields-constructor.t      2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/24fields-constructor.t      2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -16,7 +16,7 @@
 
 {
    my $point = Point->new( x => 10 );
-   is_deeply( [ $point->pos ], [ 10, 0 ],
+   is( [ $point->pos ], [ 10, 0 ],
       'Point with default y' );
 }
 
@@ -44,7 +44,7 @@
    my $LINE = __LINE__+1;
    ok( !defined eval { Colour->new( yellow => 1 ); 1 },
       'constructor complains about unrecognised param name' );
-   like( $@, qr/^Unrecognised parameters for ${QUOT}Colour${QUOT} constructor: 
'?yellow'? at \S+ line $LINE\./,
+   like( $@, qr/^Unrecogni[sz]ed parameters for ${QUOT}Colour${QUOT} 
constructor: '?yellow'? at \S+ line $LINE\./,
       'exception message from unrecognised parameter' );
 }
 
@@ -58,19 +58,19 @@
       method values { return ( $exists, $defined, $true ); }
    }
 
-   is_deeply( [ AllTheOps->new(exists => "value", defined => "value", true => 
"value")->values ],
+   is( [ AllTheOps->new(exists => "value", defined => "value", true => 
"value")->values ],
       [ "value", "value", "value" ],
       'AllTheOps for true values' );
 
-   is_deeply( [ AllTheOps->new(exists => 0, defined => 0, true => 0)->values ],
+   is( [ AllTheOps->new(exists => 0, defined => 0, true => 0)->values ],
       [ 0, 0, "default" ],
       'AllTheOps for false values' );
 
-   is_deeply( [ AllTheOps->new(exists => undef, defined => undef, true => 
undef)->values ],
+   is( [ AllTheOps->new(exists => undef, defined => undef, true => 
undef)->values ],
       [ undef, "default", "default" ],
       'AllTheOps for undef values' );
 
-   is_deeply( [ AllTheOps->new()->values ],
+   is( [ AllTheOps->new()->values ],
       [ "default", "default", "default" ],
       'AllTheOps for missing values' );
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/31pad-outside.t 
new/Feature-Compat-Class-0.08/t/31pad-outside.t
--- old/Feature-Compat-Class-0.07/t/31pad-outside.t     2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/31pad-outside.t     2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/50croak-method.t 
new/Feature-Compat-Class-0.08/t/50croak-method.t
--- old/Feature-Compat-Class-0.07/t/50croak-method.t    2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/50croak-method.t    2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/51pragmata.t 
new/Feature-Compat-Class-0.08/t/51pragmata.t
--- old/Feature-Compat-Class-0.07/t/51pragmata.t        2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/51pragmata.t        2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/52croak-scope.t 
new/Feature-Compat-Class-0.08/t/52croak-scope.t
--- old/Feature-Compat-Class-0.07/t/52croak-scope.t     2024-07-08 
15:11:46.000000000 +0200
+++ new/Feature-Compat-Class-0.08/t/52croak-scope.t     2025-12-08 
14:31:10.000000000 +0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 use Feature::Compat::Class;
 
@@ -13,6 +13,7 @@
 
 {
    ok( !eval <<'EOPERL',
+      no warnings;
       field $field;
 EOPERL
       'field outside class fails' );
@@ -20,6 +21,7 @@
 
 {
    ok( !eval <<'EOPERL',
+      no warnings;
       class AClass { }
       field $field;
 EOPERL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Feature-Compat-Class-0.07/t/99pod.t 
new/Feature-Compat-Class-0.08/t/99pod.t
--- old/Feature-Compat-Class-0.07/t/99pod.t     2024-07-08 15:11:46.000000000 
+0200
+++ new/Feature-Compat-Class-0.08/t/99pod.t     2025-12-08 14:31:10.000000000 
+0100
@@ -3,7 +3,7 @@
 use v5.14;
 use warnings;
 
-use Test::More;
+use Test2::V0;
 
 eval "use Test::Pod 1.00";
 plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;

++++++ README.md ++++++

## Build Results

Current state of perl in openSUSE:Factory is

![Factory build 
results](https://br.opensuse.org/status/openSUSE:Factory/perl-Feature-Compat-Class/standard)

The current state of perl in the devel project build (devel:languages:perl)

![Devel project build 
results](https://br.opensuse.org/status/devel:languages:perl/perl-Feature-Compat-Class)



++++++ _scmsync.obsinfo ++++++
mtime: 1765258489
commit: 7725c31924bf25f31f10ec36a1ca7d5ebbed24d53057a4193d98b904814bf831
url: https://src.opensuse.org/perl/perl-Feature-Compat-Class
revision: 7725c31924bf25f31f10ec36a1ca7d5ebbed24d53057a4193d98b904814bf831
projectscmsync: https://src.opensuse.org/perl/_ObsPrj

++++++ 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      2025-12-09 06:34:49.000000000 +0100
@@ -0,0 +1 @@
+.osc

Reply via email to