Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Test-Most for openSUSE:Factory checked in at 2026-05-18 17:47:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Test-Most (Old) and /work/SRC/openSUSE:Factory/.perl-Test-Most.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Test-Most" Mon May 18 17:47:55 2026 rev:13 rq:1353752 version:0.420.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Test-Most/perl-Test-Most.changes 2025-10-11 22:49:16.610845220 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Test-Most.new.1966/perl-Test-Most.changes 2026-05-18 17:48:41.681983464 +0200 @@ -1,0 +2,23 @@ +Fri May 8 07:04:29 UTC 2026 - Tina Müller <[email protected]> + +- updated to 0.420.0 (0.42) + see /usr/share/doc/packages/perl-Test-Most/Changes + + 0.42 2026-05-07 + - Bugfix: restore support for `use Test::Most import => [...]` to + select which symbols to export. The 0.39 export rework broke it. + See https://github.com/Ovid/test--most/issues/18 + 0.41 2026-04-30 + - No functional changes + - ANOTHER book-keeping fix. Once a module has been indexed it needs + to always have a version number. Grargh! + 0.40 2026-04-30 + - No functional changes + - Test::Most::Exception didn't get indexed last time because I forgot + to bump the version. It doesn't need a version at all, so get rid of + it to avoid this happening again. + 0.39 2026-04-30 + - Bugfix: prevent strange import behaviour caused by @EXPORT twiddling + see @dmaestro's patch f436edb and also later 7d20ddb + +------------------------------------------------------------------- Old: ---- Test-Most-0.38.tar.gz New: ---- Test-Most-0.42.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Test-Most.spec ++++++ --- /var/tmp/diff_new_pack.3aMOui/_old 2026-05-18 17:48:42.394012886 +0200 +++ /var/tmp/diff_new_pack.3aMOui/_new 2026-05-18 17:48:42.398013052 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Test-Most # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2026 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,14 +18,14 @@ %define cpan_name Test-Most Name: perl-Test-Most -Version: 0.380.0 +Version: 0.420.0 Release: 0 -# 0.38 -> normalize -> 0.380.0 -%define cpan_version 0.38 +# 0.42 -> normalize -> 0.420.0 +%define cpan_version 0.42 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Most commonly needed test functions and features URL: https://metacpan.org/release/%{cpan_name} -Source0: https://cpan.metacpan.org/authors/id/O/OV/OVID/%{cpan_name}-%{cpan_version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/D/DC/DCANTRELL/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml Source100: README.md BuildArch: noarch ++++++ Test-Most-0.38.tar.gz -> Test-Most-0.42.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/Changes new/Test-Most-0.42/Changes --- old/Test-Most-0.38/Changes 2022-09-24 15:40:01.000000000 +0200 +++ new/Test-Most-0.42/Changes 2026-05-07 18:25:55.000000000 +0200 @@ -1,5 +1,29 @@ Revision history for Test::Most +0.42 2026-05-07 + + - Bugfix: restore support for `use Test::Most import => [...]` to + select which symbols to export. The 0.39 export rework broke it. + See https://github.com/Ovid/test--most/issues/18 + +0.41 2026-04-30 + + - No functional changes + - ANOTHER book-keeping fix. Once a module has been indexed it needs + to always have a version number. Grargh! + +0.40 2026-04-30 + + - No functional changes + - Test::Most::Exception didn't get indexed last time because I forgot + to bump the version. It doesn't need a version at all, so get rid of + it to avoid this happening again. + +0.39 2026-04-30 + + - Bugfix: prevent strange import behaviour caused by @EXPORT twiddling + see @dmaestro's patch f436edb and also later 7d20ddb + 0.38 2022-09-24 - Stop permanently altering Test::More's export list (RT#73299) (thanks to 2shortplanks for this) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/MANIFEST new/Test-Most-0.42/MANIFEST --- old/Test-Most-0.38/MANIFEST 2022-09-24 15:30:06.000000000 +0200 +++ new/Test-Most-0.42/MANIFEST 2026-05-07 18:22:45.000000000 +0200 @@ -21,9 +21,12 @@ t/function_die.t t/import_bail.t t/import_die.t +t/import_list.t t/import_strict_and_warnings.t t/lib/DuplicatePlanRegression.pm t/lib/OurTester.pm t/timex.t xt/author/pod-coverage.t xt/author/pod.t +t/carried-over-imports.t +t/lib/UsesTestMost.pm diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/META.json new/Test-Most-0.42/META.json --- old/Test-Most-0.38/META.json 2022-09-24 15:48:07.000000000 +0200 +++ new/Test-Most-0.42/META.json 2026-05-07 18:27:32.000000000 +0200 @@ -4,7 +4,7 @@ "unknown" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.66, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -49,6 +49,6 @@ "web" : "https://github.com/Ovid/test--most" } }, - "version" : "0.38", - "x_serialization_backend" : "JSON::PP version 4.09" + "version" : "0.42", + "x_serialization_backend" : "JSON::PP version 4.02" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/META.yml new/Test-Most-0.42/META.yml --- old/Test-Most-0.38/META.yml 2022-09-24 15:48:07.000000000 +0200 +++ new/Test-Most-0.42/META.yml 2026-05-07 18:27:32.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.66, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -27,5 +27,5 @@ Test::Warn: '0.30' resources: repository: https://github.com/Ovid/test--most -version: '0.38' +version: '0.42' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/lib/Test/Most/Exception.pm new/Test-Most-0.42/lib/Test/Most/Exception.pm --- old/Test-Most-0.38/lib/Test/Most/Exception.pm 2022-09-24 15:47:26.000000000 +0200 +++ new/Test-Most-0.42/lib/Test/Most/Exception.pm 2026-05-07 18:26:26.000000000 +0200 @@ -6,7 +6,7 @@ use base 'Exporter'; our @EXPORT_OK = ('throw_failure'); -our $VERSION = '0.38'; +our $VERSION = '0.42'; $VERSION = eval $VERSION; use Exception::Class 'Test::Most::Exception' => { @@ -24,7 +24,7 @@ =head1 VERSION -Version 0.38 +Version 0.41 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/lib/Test/Most.pm new/Test-Most-0.42/lib/Test/Most.pm --- old/Test-Most-0.38/lib/Test/Most.pm 2022-09-24 15:47:48.000000000 +0200 +++ new/Test-Most-0.42/lib/Test/Most.pm 2026-05-07 18:26:17.000000000 +0200 @@ -33,7 +33,7 @@ $OK_FUNC = \&Test::Builder::ok; } -our $VERSION = '0.38'; +our $VERSION = '0.42'; $VERSION = eval $VERSION; BEGIN { @@ -59,7 +59,9 @@ } sub import { + my $class = shift; my $bail_set = 0; + local @EXPORT = @EXPORT; # localize effect of %exclude_symbol my %modules_to_load = map { $_ => 1 } qw/ Test::Differences @@ -100,9 +102,31 @@ my %exclude_symbol; my $i = 0; + # Pull out `import => [...]` so it doesn't fall through to plan(), which + # doesn't understand it. The list drives export_to_level below. + # + # The while-with-index loop is intentional: we mutate @_ via splice as + # we go, and this matches the existing parser further down the sub. + my @explicit; + while ( $i < @_ ) { + if ( $_[$i] eq 'import' && ref $_[ $i + 1 ] eq 'ARRAY' ) { + @explicit = @{ ( splice @_, $i, 2 )[1] }; + last; + } + $i++; + } + $i = 0; + foreach my $do_not_import_by_default (qw/blessed reftype/) { - if ( grep { $_ eq $do_not_import_by_default } @_ ) { + if ( grep { $_ eq $do_not_import_by_default } @_, @explicit ) { @_ = grep { $_ ne $do_not_import_by_default } @_; + # If the user opted in positionally AND used import => [...], + # the explicit list is the export source — make sure the symbol + # is in it, or it would be silently dropped. + if ( @explicit + && !grep { $_ eq $do_not_import_by_default } @explicit ) { + push @explicit, $do_not_import_by_default; + } } else { $exclude_symbol{$do_not_import_by_default} = 1; @@ -154,6 +178,7 @@ } $i++; } + local @EXPORT = @EXPORT; # localize effect of %exclude_symbol foreach my $module (keys %modules_to_load) { eval "use $module"; @@ -162,12 +187,21 @@ Carp::croak($error); } no strict 'refs'; - # Note: export_to_level would be better here. push @EXPORT => grep { !$exclude_symbol{$_} } @{"${module}::EXPORT"}; } - # 'magic' goto to avoid updating the callstack - goto &Test::Builder::Module::import; + my $test = $class->builder; + $test->exported_to($caller); + $test->plan(@_); + + # Empty @explicit covers two cases that should both fall through to the + # default exports: no `import =>` was given, or `import => []` was given + # (which matches Test::Builder::Module / Exporter, where an empty import + # list means "use defaults"). When @explicit has items but `!sym` + # exclusions empty it out, @to_export is empty and we export nothing. + my @to_export + = @explicit ? grep { !$exclude_symbol{$_} } @explicit : @EXPORT; + $class->export_to_level( 1, $class, @to_export ) if @to_export; } sub explain { @@ -319,7 +353,7 @@ =head1 VERSION -Version 0.38 +Version 0.41 =head1 SYNOPSIS @@ -824,7 +858,9 @@ =head1 COPYRIGHT & LICENSE -Copyright 2008 Curtis Poe, all rights reserved. +originally Copyright 2008 Curtis Poe + +now maintained by David Cantrell, his changes Copyright 2026 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/t/carried-over-imports.t new/Test-Most-0.42/t/carried-over-imports.t --- old/Test-Most-0.38/t/carried-over-imports.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Most-0.42/t/carried-over-imports.t 2026-04-30 20:34:49.000000000 +0200 @@ -0,0 +1,18 @@ +use strict; +use warnings; + +use lib 't/lib'; +use UsesTestMost; + +use Test::Most qw(!any); # exclude an import that has already been imported in UsesTestMost + +warning_is { + require List::Util; + List::Util->import('any'); +} undef, 'List::Util::any imports without warnings after exclusion'; + +ok any( sub { $_ == 1 }, 1 ), 'List::Util::any is imported into the caller'; + +UsesTestMost::is_it_one(1); + +done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/t/import_list.t new/Test-Most-0.42/t/import_list.t --- old/Test-Most-0.38/t/import_list.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Most-0.42/t/import_list.t 2026-05-07 18:22:45.000000000 +0200 @@ -0,0 +1,70 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use lib 'lib'; + +# Regression test for GH#18: `use Test::Most import => [...]` died with +# "plan() doesn't understand import ARRAY(...)" because the pair fell +# through to plan() instead of being consumed as an export filter. +# +# `import => [...]` must be supplied as the first arg to actually exercise +# the regression — it's what gets handed to plan() and what plan() chokes on. +use Test::Most import => [qw( ok done_testing is blessed subtest )]; + +ok 1, 'ok was imported via the explicit list'; +is 2, 2, 'is was imported via the explicit list'; +ok defined( &main::blessed ), + 'symbols normally excluded by default may be imported when listed explicitly'; +ok !defined( &main::eq_or_diff ), + 'symbols not in the import list are not exported'; +ok !defined( &main::dies_ok ), + 'Test::Exception symbols not in the import list are not exported'; +ok !defined( &main::cmp_deeply ), + 'Test::Deep symbols not in the import list are not exported'; +ok !defined( &main::warning_is ), + 'Test::Warn symbols not in the import list are not exported'; + +subtest 'empty import list falls through to default exports' => sub { + # This matches Test::Builder::Module and Exporter, both of which treat + # an empty import list as "use defaults". Pre-0.39 Test::Most inherited + # the same behaviour via `goto &Test::Builder::Module::import`, so we + # preserve it here. + package EmptyList; + Test::Most->import( import => [] ); + main::ok( defined( &EmptyList::ok ), 'ok exported (default)' ); + main::ok( defined( &EmptyList::cmp_deeply ), 'cmp_deeply exported (default)' ); +}; + +subtest 'fully excluded import list exports nothing' => sub { + package AllExcluded; + Test::Most->import( import => [qw( is )], '!is' ); + main::ok( !defined( &AllExcluded::is ), 'excluded symbol not exported' ); + main::ok( !defined( &AllExcluded::ok ), 'unrelated default not exported' ); +}; + +subtest 'import list combined with plan args' => sub { + package WithPlan; + Test::Most->import( 'no_plan', import => [qw( ok )] ); + main::ok( defined( &WithPlan::ok ), 'ok was imported' ); + main::ok( !defined( &WithPlan::cmp_deeply ), 'cmp_deeply not exported' ); +}; + +subtest 'positional blessed alongside import list is honored' => sub { + package WithBlessed; + Test::Most->import( 'blessed', import => [qw( ok )] ); + main::ok( defined( &WithBlessed::blessed ), + 'blessed listed positionally still gets exported' ); + main::ok( defined( &WithBlessed::ok ), 'ok from import list exported' ); +}; + +subtest 'module exclusion still applies' => sub { + package WithoutDeep; + Test::Most->import( '-Test::Deep', import => [qw( ok )] ); + main::ok( defined( &WithoutDeep::ok ), 'ok exported' ); + main::ok( !defined( &WithoutDeep::cmp_deeply ), + 'Test::Deep symbols not exported even if Test::Deep stayed loaded' ); +}; + +done_testing; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Most-0.38/t/lib/UsesTestMost.pm new/Test-Most-0.42/t/lib/UsesTestMost.pm --- old/Test-Most-0.38/t/lib/UsesTestMost.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Most-0.42/t/lib/UsesTestMost.pm 2026-04-30 20:34:49.000000000 +0200 @@ -0,0 +1,9 @@ +package UsesTestMost; + +use strict; +use warnings; +use Test::Most; + +sub is_it_one { ok(shift == 1, "yes it's one") } + +1; ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.3aMOui/_old 2026-05-18 17:48:42.638022969 +0200 +++ /var/tmp/diff_new_pack.3aMOui/_new 2026-05-18 17:48:42.650023465 +0200 @@ -1,6 +1,6 @@ -mtime: 1760133635 -commit: 7c34064cf9502fd5f5d8b2f84edbed18422167767ff0dca03418234f3113583b -url: https://src.opensuse.org/perl/perl-Test-Most.git -revision: 7c34064cf9502fd5f5d8b2f84edbed18422167767ff0dca03418234f3113583b +mtime: 1778223869 +commit: 11cd11199aaf219b45119256465289987433655dd3e6387b1e6b6bc83ede2011 +url: https://src.opensuse.org/perl/perl-Test-Most +revision: 11cd11199aaf219b45119256465289987433655dd3e6387b1e6b6bc83ede2011 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-08 09:04:29.000000000 +0200 @@ -0,0 +1 @@ +.osc
