Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perl-Perl-PrereqScanner-NotQuiteLite 
for openSUSE:Factory checked in at 2022-08-25 15:08:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Perl-PrereqScanner-NotQuiteLite (Old)
 and      
/work/SRC/openSUSE:Factory/.perl-Perl-PrereqScanner-NotQuiteLite.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Perl-PrereqScanner-NotQuiteLite"

Thu Aug 25 15:08:55 2022 rev:2 rq:999041 version:0.9916

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Perl-PrereqScanner-NotQuiteLite/perl-Perl-PrereqScanner-NotQuiteLite.changes
        2021-09-15 22:51:27.590912232 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Perl-PrereqScanner-NotQuiteLite.new.2083/perl-Perl-PrereqScanner-NotQuiteLite.changes
      2022-08-25 15:09:01.601206552 +0200
@@ -1,0 +2,13 @@
+Sat Apr  9 03:08:16 UTC 2022 - Tina M??ller <timueller+p...@suse.de>
+
+- updated to 0.9916
+   see /usr/share/doc/packages/perl-Perl-PrereqScanner-NotQuiteLite/Changes
+
+  0.9916 2022/04/08
+    - Ignore core modules with undef version correctly
+    - Drop URI::cpan dependency and use Parse::Distname to parse cpan URI
+
+  0.9915 2022/04/01
+    - Add optional option
+
+-------------------------------------------------------------------

Old:
----
  Perl-PrereqScanner-NotQuiteLite-0.9914.tar.gz

New:
----
  Perl-PrereqScanner-NotQuiteLite-0.9916.tar.gz

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

Other differences:
------------------
++++++ perl-Perl-PrereqScanner-NotQuiteLite.spec ++++++
--- /var/tmp/diff_new_pack.ubavMH/_old  2022-08-25 15:09:02.173207761 +0200
+++ /var/tmp/diff_new_pack.ubavMH/_new  2022-08-25 15:09:02.181207778 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Perl-PrereqScanner-NotQuiteLite
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,10 +18,10 @@
 
 %define cpan_name Perl-PrereqScanner-NotQuiteLite
 Name:           perl-Perl-PrereqScanner-NotQuiteLite
-Version:        0.9914
+Version:        0.9916
 Release:        0
-Summary:        Tool to scan your Perl code for its prerequisites
 License:        Artistic-1.0 OR GPL-1.0-or-later
+Summary:        Tool to scan your Perl code for its prerequisites
 URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
@@ -35,11 +35,11 @@
 BuildRequires:  perl(Module::CPANfile) >= 1.1004
 BuildRequires:  perl(Module::CoreList) >= 3.11
 BuildRequires:  perl(Module::Find)
+BuildRequires:  perl(Parse::Distname)
 BuildRequires:  perl(Regexp::Trie)
 BuildRequires:  perl(Test::FailWarnings)
 BuildRequires:  perl(Test::More) >= 0.98
 BuildRequires:  perl(Test::UseAllModules) >= 0.17
-BuildRequires:  perl(URI::cpan)
 BuildRequires:  perl(parent)
 Requires:       perl(CPAN::Meta::Prereqs) >= 2.150010
 Requires:       perl(CPAN::Meta::Requirements) >= 2.140000
@@ -47,8 +47,8 @@
 Requires:       perl(Module::CPANfile) >= 1.1004
 Requires:       perl(Module::CoreList) >= 3.11
 Requires:       perl(Module::Find)
+Requires:       perl(Parse::Distname)
 Requires:       perl(Regexp::Trie)
-Requires:       perl(URI::cpan)
 Requires:       perl(parent)
 %{perl_requires}
 

++++++ Perl-PrereqScanner-NotQuiteLite-0.9914.tar.gz -> 
Perl-PrereqScanner-NotQuiteLite-0.9916.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Perl-PrereqScanner-NotQuiteLite-0.9914/Changes 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/Changes
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/Changes  2021-09-12 
20:25:31.000000000 +0200
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/Changes  2022-04-08 
08:13:59.000000000 +0200
@@ -1,5 +1,12 @@
 Revision history for Perl-PrereqScanner-NotQuiteLite
 
+0.9916 2022/04/08
+  - Ignore core modules with undef version correctly
+  - Drop URI::cpan dependency and use Parse::Distname to parse cpan URI
+
+0.9915 2022/04/01
+  - Add optional option
+
 0.9914 2021/09/13
   - Support Object::Pad
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Perl-PrereqScanner-NotQuiteLite-0.9914/MANIFEST 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/MANIFEST
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/MANIFEST 2021-09-12 
20:26:15.000000000 +0200
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/MANIFEST 2022-04-08 
08:15:15.000000000 +0200
@@ -56,6 +56,7 @@
 t/app/exclude_core.t
 t/app/features.t
 t/app/ignore.t
+t/app/optional.t
 t/app/private.t
 t/app/scan_also.t
 t/app/use_index.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Perl-PrereqScanner-NotQuiteLite-0.9914/META.json 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/META.json
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/META.json        2021-09-12 
20:26:15.000000000 +0200
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/META.json        2022-04-08 
08:15:15.000000000 +0200
@@ -45,8 +45,8 @@
             "Module::CPANfile" : "1.1004",
             "Module::CoreList" : "3.11",
             "Module::Find" : "0",
+            "Parse::Distname" : "0",
             "Regexp::Trie" : "0",
-            "URI::cpan" : "0",
             "parent" : "0",
             "perl" : "5.008001"
          },
@@ -69,6 +69,6 @@
          "url" : "https://github.com/charsbar/Perl-PrereqScanner-NotQuiteLite";
       }
    },
-   "version" : "0.9914",
+   "version" : "0.9916",
    "x_serialization_backend" : "JSON::PP version 4.05"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Perl-PrereqScanner-NotQuiteLite-0.9914/META.yml 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/META.yml
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/META.yml 2021-09-12 
20:26:15.000000000 +0200
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/META.yml 2022-04-08 
08:15:15.000000000 +0200
@@ -28,11 +28,11 @@
   Module::CPANfile: '1.1004'
   Module::CoreList: '3.11'
   Module::Find: '0'
+  Parse::Distname: '0'
   Regexp::Trie: '0'
-  URI::cpan: '0'
   parent: '0'
   perl: '5.008001'
 resources:
   repository: https://github.com/charsbar/Perl-PrereqScanner-NotQuiteLite
-version: '0.9914'
+version: '0.9916'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/bin/scan-perl-prereqs-nqlite 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/bin/scan-perl-prereqs-nqlite
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/bin/scan-perl-prereqs-nqlite     
2021-01-17 19:29:58.000000000 +0100
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/bin/scan-perl-prereqs-nqlite     
2022-04-01 14:48:43.000000000 +0200
@@ -25,6 +25,8 @@
   base_dir|base-dir=s
   ignore_re|ignore-re=s
   ignore=s@
+  optional_re|optional-re=s
+  optional=s@
   private_re|private-re=s
   private=s@
   recommends
@@ -149,6 +151,16 @@
 You can also specify a regexp instead of a list of paths. If this is
 set, C<ignore> options are ignored.
 
+=item optional
+
+Set a list of paths C<scan-perl-prereqs-nqlite> should ignore. This is
+useful when your distribution has a set of OS-specific modules, for example.
+
+=item optional_re
+
+You can also specify a regexp instead of a list of paths. If this is
+set, C<optional> options are ignored.
+
 =item private
 
 Set a list of modules C<scan-perl-prereqs-nqlite> should consider
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Perl-PrereqScanner-NotQuiteLite-0.9914/cpanfile 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/cpanfile
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/cpanfile 2021-01-17 
19:29:58.000000000 +0100
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/cpanfile 2022-04-08 
08:09:58.000000000 +0200
@@ -5,8 +5,8 @@
 requires 'Module::CPANfile', '1.1004';
 requires 'Module::CoreList', '3.11';
 requires 'Module::Find';
+requires 'Parse::Distname';
 requires 'Regexp::Trie';
-requires 'URI::cpan';
 requires 'parent';
 requires 'perl', '5.008001';
 suggests 'JSON::PP';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite/App.pm
 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite/App.pm
--- 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite/App.pm
       2021-01-17 19:29:58.000000000 +0100
+++ 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite/App.pm
       2022-04-08 08:09:13.000000000 +0200
@@ -10,6 +10,7 @@
 use CPAN::Meta::Requirements;
 use Perl::PrereqScanner::NotQuiteLite;
 use Perl::PrereqScanner::NotQuiteLite::Util::Prereqs;
+use Parse::Distname;
 
 use constant WIN32 => $^O eq 'MSWin32';
 
@@ -79,6 +80,19 @@
     $opts{private_re} ||= $re->_regexp;
   }
 
+  if ($opts{optional} and ref $opts{optional} eq 'ARRAY') {
+    require Regexp::Trie;
+    my $re = Regexp::Trie->new;
+    for (@{$opts{optional}}) {
+        s|\\|/|g if WIN32;
+        $re->add($_);
+    }
+    $opts{optional_re} ||= $re->_regexp;
+  }
+  if ($opts{optional_re}) {
+    $opts{suggests} = 1;
+  }
+
   if (my $index_name = delete $opts{use_index}) {
     my $index_package = "CPAN::Common::Index::$index_name";
     if (eval "require $index_package; 1") {
@@ -286,7 +300,8 @@
       if (Module::CoreList::is_core($module, undef, $perl_version) and
           !Module::CoreList::deprecated_in($module, undef, $perl_version)
       ) {
-        my $core_version = $Module::CoreList::version{$perl_version}{$module} 
or next;
+        next unless exists $Module::CoreList::version{$perl_version}{$module};
+        my $core_version = $Module::CoreList::version{$perl_version}{$module};
         next unless $req->accepts_module($module => $core_version);
         $req->clear_requirement($module);
         if ($self->{verbose}) {
@@ -358,15 +373,19 @@
   my ($self, $module) = @_;
   my $res = $self->{index}->search_packages({ package => $module }) or return;
   ## ignore (non-dual) core modules
-  return if URI->new($res->{uri})->dist_name eq 'perl';
+  return if _dist_from_uri($res->{uri}) eq 'perl';
   return $res->{uri};
 }
 
+sub _dist_from_uri {
+  my $uri = shift;
+  $uri =~ s!^cpan:///\w+/!!;
+  Parse::Distname->new($uri)->dist;
+}
+
 sub _dedupe_indexed_prereqs {
   my ($self, $prereqs) = @_;
 
-  require URI::cpan;
-
   for my $req ($self->_requirements($prereqs)) {
     my %uri_map;
     for my $module ($req->required_modules) {
@@ -388,7 +407,7 @@
       }
 
       # Replace with the main module if none is versioned
-      my $dist = URI->new($uri)->dist_name;
+      my $dist = _dist_from_uri($uri);
       (my $main_module = $dist) =~ s/-/::/g;
       if ($self->_get_uri($main_module)) {
         $req->add_minimum($main_module);
@@ -445,11 +464,14 @@
     return if $file =~ /\b$self->{ignore_re}\b/;
   }
 
+  my $optional = $self->{optional_re} && $file =~ /\b$self->{optional_re}\b/ ? 
1 : 0;
+
   my $context = Perl::PrereqScanner::NotQuiteLite->new(
     parsers => $self->{parsers},
     recommends => $self->{recommends},
     suggests => $self->{suggests},
     verbose => $self->{verbose},
+    optional => $optional,
   )->scan_file($file);
 
   my $relpath = File::Spec->abs2rel($file, $self->{base_dir});
@@ -629,6 +651,14 @@
 installed unless asked. However, you are advised to create a separate
 distribution for the specific feature.
 
+=item optional, optional_re
+
+Instead of ignoring a set of files, you can also use C<optional> option
+to mark all the prerequisites found in some of the files in your distribution
+optional (i.e. suggests). You can specify (a reference to) a list of
+files (with C<optional> option), or a regular expression that matches
+the files (with C<optional_re> option).
+
 =item private, private_re
 
 Your distribution may use private modules that are not uploaded to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite/Context.pm
 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite/Context.pm
--- 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite/Context.pm
   2021-01-17 19:29:58.000000000 +0100
+++ 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite/Context.pm
   2022-04-01 14:48:43.000000000 +0200
@@ -71,6 +71,7 @@
     noes => CPAN::Meta::Requirements->new,
     file => $args{file},
     verbose => $args{verbose},
+    optional => $args{optional},
     stash => {},
   );
 
@@ -148,7 +149,12 @@
 }
 
 sub add {
-  shift->_add('requires', @_);
+  my $self = shift;
+  if ($self->{optional}) {
+    $self->_add('suggests', @_);
+  } else {
+    $self->_add('requires', @_);
+  }
 }
 
 sub add_recommendation {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite.pm
 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite.pm
--- 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/lib/Perl/PrereqScanner/NotQuiteLite.pm
   2021-09-12 20:25:39.000000000 +0200
+++ 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/lib/Perl/PrereqScanner/NotQuiteLite.pm
   2022-04-08 07:37:21.000000000 +0200
@@ -6,7 +6,7 @@
 use Perl::PrereqScanner::NotQuiteLite::Context;
 use Perl::PrereqScanner::NotQuiteLite::Util;
 
-our $VERSION = '0.9914';
+our $VERSION = '0.9916';
 
 our @BUNDLED_PARSERS = qw/
   Aliased AnyMoose Autouse Catalyst ClassAccessor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/t/app/exclude_core.t 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/t/app/exclude_core.t
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/t/app/exclude_core.t     
2021-01-17 19:29:58.000000000 +0100
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/t/app/exclude_core.t     
2022-04-08 07:35:20.000000000 +0200
@@ -37,4 +37,14 @@
 END
 }, {exclude_core => 1}, { runtime => { requires => { Foo => 0, perl => '5.020' 
}}});
 
+test_app('ignore core modules with undef version', sub {
+  my $tmpdir = shift;
+
+  test_file("$tmpdir/MyTest.pm", <<'END');
+use strict;
+use warnings;
+use Foo;
+END
+}, {exclude_core => 1, perl_version => 5.006}, { runtime => { requires => { 
Foo => 0 }}});
+
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Perl-PrereqScanner-NotQuiteLite-0.9914/t/app/optional.t 
new/Perl-PrereqScanner-NotQuiteLite-0.9916/t/app/optional.t
--- old/Perl-PrereqScanner-NotQuiteLite-0.9914/t/app/optional.t 1970-01-01 
01:00:00.000000000 +0100
+++ new/Perl-PrereqScanner-NotQuiteLite-0.9916/t/app/optional.t 2022-04-01 
14:48:43.000000000 +0200
@@ -0,0 +1,59 @@
+use strict;
+use warnings;
+use FindBin;
+use lib "$FindBin::Bin/../../";
+use Test::More;
+use t::Util;
+
+test_app('optional file', sub {
+  my $tmpdir = shift;
+
+  test_file("$tmpdir/lib/MyTest.pm", <<'END');
+use strict;
+use warnings;
+use Foo;
+END
+
+  test_file("$tmpdir/lib/MyTest/Win32.pm", <<'END');
+use strict;
+use warnings;
+use Win32;
+END
+END
+}, {optional => [qw!lib/MyTest/Win32.pm!]}, { runtime => { requires => { Foo 
=> 0, strict => 0, warnings => 0 }, suggests => { Win32 => 0 }}});
+
+test_app('optional dir', sub {
+  my $tmpdir = shift;
+
+  test_file("$tmpdir/lib/MyTest.pm", <<'END');
+use strict;
+use warnings;
+use Foo;
+END
+
+  test_file("$tmpdir/lib/MyTest/Win32.pm", <<'END');
+use strict;
+use warnings;
+use Win32;
+END
+END
+}, {optional => [qw!lib/MyTest/!]}, { runtime => { requires => { Foo => 0, 
strict => 0, warnings => 0}, suggests => { Win32 => 0 }}});
+
+test_app('optional_re', sub {
+  my $tmpdir = shift;
+
+  test_file("$tmpdir/lib/MyTest.pm", <<'END');
+use strict;
+use warnings;
+use Foo;
+END
+
+  test_file("$tmpdir/lib/MyTest/Win32.pm", <<'END');
+use strict;
+use warnings;
+use Win32;
+END
+END
+}, {optional_re => 'lib/MyTest/'}, { runtime => { requires => { Foo => 0, 
strict => 0, warnings => 0 }, suggests => { Win32 => 0 }}});
+
+done_testing;

Reply via email to