Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Module-Starter for
openSUSE:Factory checked in at 2026-01-13 21:34:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Module-Starter (Old)
and /work/SRC/openSUSE:Factory/.perl-Module-Starter.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Module-Starter"
Tue Jan 13 21:34:35 2026 rev:18 rq:1326995 version:1.790.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Module-Starter/perl-Module-Starter.changes
2025-05-26 18:37:15.203751726 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Module-Starter.new.1928/perl-Module-Starter.changes
2026-01-13 21:34:58.937031576 +0100
@@ -1,0 +2,6 @@
+Sun Jan 4 05:44:05 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 1.790.0 (1.79)
+ see /usr/share/doc/packages/perl-Module-Starter/Changes
+
+-------------------------------------------------------------------
Old:
----
Module-Starter-1.78.tar.gz
New:
----
Module-Starter-1.79.tar.gz
README.md
_scmsync.obsinfo
build.specials.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Module-Starter.spec ++++++
--- /var/tmp/diff_new_pack.IkqIpN/_old 2026-01-13 21:34:59.945073211 +0100
+++ /var/tmp/diff_new_pack.IkqIpN/_new 2026-01-13 21:34:59.945073211 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Module-Starter
#
-# 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,25 +18,26 @@
%define cpan_name Module-Starter
Name: perl-Module-Starter
-Version: 1.780.0
+Version: 1.790.0
Release: 0
-# 1.78 -> normalize -> 1.780.0
-%define cpan_version 1.78
+# 1.79 -> normalize -> 1.790.0
+%define cpan_version 1.79
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Simple starter kit for any module
URL: https://metacpan.org/release/%{cpan_name}
-Source0:
https://cpan.metacpan.org/authors/id/D/DB/DBOOK/%{cpan_name}-%{cpan_version}.tar.gz
+Source0:
https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/%{cpan_name}-%{cpan_version}.tar.gz
Source1: cpanspec.yml
+Source100: README.md
BuildArch: noarch
BuildRequires: perl
BuildRequires: perl-macros
BuildRequires: perl(Module::Runtime)
-BuildRequires: perl(Software::License) >= 0.103005
+BuildRequires: perl(Software::License) >= 0.103.5
BuildRequires: perl(Test::More) >= 0.94
BuildRequires: perl(parent)
BuildRequires: perl(version) >= 0.77
Requires: perl(Module::Runtime)
-Requires: perl(Software::License) >= 0.103005
+Requires: perl(Software::License) >= 0.103.5
Requires: perl(Test::More) >= 0.94
Requires: perl(parent)
Requires: perl(version) >= 0.77
++++++ Module-Starter-1.78.tar.gz -> Module-Starter-1.79.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/Changes
new/Module-Starter-1.79/Changes
--- old/Module-Starter-1.78/Changes 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/Changes 2026-01-03 14:57:21.000000000 +0100
@@ -1,5 +1,15 @@
Revision history for Perl extension Module::Starter
+1.79 2026-01-03 14:57:20 CET
+
+ * GH #79: `--force` will only overwrite files it needs to generate
+ * Minimum perl version in generated distros (and Module::Starter) is
5.8.3
+ * GH #25: Multiple authors are now supported (Hunter McMillen)
+ * GH #84: `Module::Starter::Simple::create_distro()` now returns files
created
+ * Add `--github` option with issue tracker in README/POD, replacing
CPANRatings
+ (Dimitrios Kechagias)
+ * Remove link to CPANRatings (lnation)
+
1.78 2025-05-04 04:54:03 EDT
* Update LICENSE text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/LICENSE
new/Module-Starter-1.79/LICENSE
--- old/Module-Starter-1.78/LICENSE 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/LICENSE 2026-01-03 14:57:21.000000000 +0100
@@ -1,4 +1,4 @@
-This software is copyright (c) 2005 by Andy Lester, Ricardo Signes and C.J.
Adams-Collier.
+This software is copyright (c) 2005-2016 by Sawyer X, Andy Lester, Ricardo
Signes, and C.J. Adams-Collier.
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) 2005 by Andy Lester, Ricardo Signes and C.J.
Adams-Collier.
+This software is Copyright (c) 2005-2016 by Sawyer X, Andy Lester, Ricardo
Signes, and C.J. Adams-Collier.
This is free software, licensed under:
@@ -271,7 +271,7 @@
--- The Perl Artistic License 1.0 ---
-This software is Copyright (c) 2005 by Andy Lester, Ricardo Signes and C.J.
Adams-Collier.
+This software is Copyright (c) 2005-2016 by Sawyer X, Andy Lester, Ricardo
Signes, and C.J. Adams-Collier.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/MANIFEST
new/Module-Starter-1.79/MANIFEST
--- old/Module-Starter-1.78/MANIFEST 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/MANIFEST 2026-01-03 14:57:21.000000000 +0100
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest
v6.032.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest
v6.036.
CONTRIBUTING.md
Changes
LICENSE
@@ -33,6 +33,7 @@
t/lib/Module/Starter/TestPlugin.pm
t/module-starter.t
t/test-dist.t
+t/test-force.t
xt/author/00-compile.t
xt/author/critic.t
xt/author/pod-coverage.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/META.json
new/Module-Starter-1.79/META.json
--- old/Module-Starter-1.78/META.json 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/META.json 2026-01-03 14:57:21.000000000 +0100
@@ -4,7 +4,7 @@
"Andy Lester <[email protected]>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 6.032, CPAN::Meta::Converter version
2.150010",
+ "generated_by" : "Dist::Zilla version 6.036, CPAN::Meta::Converter version
2.150010",
"license" : [
"perl_5"
],
@@ -70,23 +70,23 @@
"provides" : {
"Module::Starter" : {
"file" : "lib/Module/Starter.pm",
- "version" : "1.78"
+ "version" : "1.79"
},
"Module::Starter::App" : {
"file" : "lib/Module/Starter/App.pm",
- "version" : "1.78"
+ "version" : "1.79"
},
"Module::Starter::BuilderSet" : {
"file" : "lib/Module/Starter/BuilderSet.pm",
- "version" : "1.78"
+ "version" : "1.79"
},
"Module::Starter::Plugin::Template" : {
"file" : "lib/Module/Starter/Plugin/Template.pm",
- "version" : "1.78"
+ "version" : "1.79"
},
"Module::Starter::Simple" : {
"file" : "lib/Module/Starter/Simple.pm",
- "version" : "1.78"
+ "version" : "1.79"
}
},
"release_status" : "stable",
@@ -102,23 +102,24 @@
},
"x_IRC" : "irc://irc.perl.org/#toolchain"
},
- "version" : "1.78",
+ "version" : "1.79",
"x_contributors" : [
"Brendan Byrd <[email protected]>",
"Brian Manning <[email protected]>",
"Chas. J. Owens IV <[email protected]>",
"cjcollier <cjcollier@bb7b6759-d628-0410-895d-7b6b7dc49dde>",
"Colin Ewen <[email protected]>",
- "Dan Book <[email protected]>",
"Dan Book <[email protected]>",
"David Pottage <[email protected]>",
- "David.Pottage <[email protected]>",
"David Steinbrunner <[email protected]>",
"Diab Jerius <[email protected]>",
+ "Dimitrios Kechagias <[email protected]>",
"Guillermo O. Freschi <[email protected]>",
"hobbestigrou <[email protected]>",
+ "Hunter McMillen <[email protected]>",
"Ivan Bessarabov <[email protected]>",
"Karen Etheridge <[email protected]>",
+ "lnation <[email protected]>",
"MartinMcGrath <[email protected]>",
"Pedro Figueiredo <[email protected]>",
"petdance <petdance@bb7b6759-d628-0410-895d-7b6b7dc49dde>",
@@ -127,11 +128,10 @@
"sawyer <sawyer@dungeon.(none)>",
"Sawyer X <[email protected]>",
"Shlomi Fish <[email protected]>",
- "xdaveg <xdaveg@bb7b6759-d628-0410-895d-7b6b7dc49dde>",
- "xsawyerx <xsawyerx@bb7b6759-d628-0410-895d-7b6b7dc49dde>"
+ "xdaveg <xdaveg@bb7b6759-d628-0410-895d-7b6b7dc49dde>"
],
- "x_generated_by_perl" : "v5.40.1",
- "x_serialization_backend" : "Cpanel::JSON::XS version 4.39",
+ "x_generated_by_perl" : "v5.34.1",
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.40",
"x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/META.yml
new/Module-Starter-1.79/META.yml
--- old/Module-Starter-1.78/META.yml 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/META.yml 2026-01-03 14:57:21.000000000 +0100
@@ -9,7 +9,7 @@
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.032, CPAN::Meta::Converter version
2.150010'
+generated_by: 'Dist::Zilla version 6.036, CPAN::Meta::Converter version
2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -26,19 +26,19 @@
provides:
Module::Starter:
file: lib/Module/Starter.pm
- version: '1.78'
+ version: '1.79'
Module::Starter::App:
file: lib/Module/Starter/App.pm
- version: '1.78'
+ version: '1.79'
Module::Starter::BuilderSet:
file: lib/Module/Starter/BuilderSet.pm
- version: '1.78'
+ version: '1.79'
Module::Starter::Plugin::Template:
file: lib/Module/Starter/Plugin/Template.pm
- version: '1.78'
+ version: '1.79'
Module::Starter::Simple:
file: lib/Module/Starter/Simple.pm
- version: '1.78'
+ version: '1.79'
requires:
File::Path: '0'
File::Spec: '0'
@@ -56,23 +56,24 @@
bugtracker: https://github.com/xsawyerx/module-starter/issues
homepage: https://github.com/xsawyerx/module-starter
repository: https://github.com/xsawyerx/module-starter.git
-version: '1.78'
+version: '1.79'
x_contributors:
- 'Brendan Byrd <[email protected]>'
- 'Brian Manning <[email protected]>'
- 'Chas. J. Owens IV <[email protected]>'
- 'cjcollier <cjcollier@bb7b6759-d628-0410-895d-7b6b7dc49dde>'
- 'Colin Ewen <[email protected]>'
- - 'Dan Book <[email protected]>'
- 'Dan Book <[email protected]>'
- 'David Pottage <[email protected]>'
- - 'David.Pottage <[email protected]>'
- 'David Steinbrunner <[email protected]>'
- 'Diab Jerius <[email protected]>'
+ - 'Dimitrios Kechagias <[email protected]>'
- 'Guillermo O. Freschi <[email protected]>'
- 'hobbestigrou <[email protected]>'
+ - 'Hunter McMillen <[email protected]>'
- 'Ivan Bessarabov <[email protected]>'
- 'Karen Etheridge <[email protected]>'
+ - 'lnation <[email protected]>'
- 'MartinMcGrath <[email protected]>'
- 'Pedro Figueiredo <[email protected]>'
- 'petdance <petdance@bb7b6759-d628-0410-895d-7b6b7dc49dde>'
@@ -82,7 +83,6 @@
- 'Sawyer X <[email protected]>'
- 'Shlomi Fish <[email protected]>'
- 'xdaveg <xdaveg@bb7b6759-d628-0410-895d-7b6b7dc49dde>'
- - 'xsawyerx <xsawyerx@bb7b6759-d628-0410-895d-7b6b7dc49dde>'
-x_generated_by_perl: v5.40.1
-x_serialization_backend: 'YAML::Tiny version 1.76'
+x_generated_by_perl: v5.34.1
+x_serialization_backend: 'YAML::Tiny version 1.73'
x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/Makefile.PL
new/Module-Starter-1.79/Makefile.PL
--- old/Module-Starter-1.78/Makefile.PL 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/Makefile.PL 2026-01-03 14:57:21.000000000 +0100
@@ -36,7 +36,7 @@
"File::Spec" => 0,
"Test::More" => "0.94"
},
- "VERSION" => "1.78",
+ "VERSION" => "1.79",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/bin/module-starter
new/Module-Starter-1.79/bin/module-starter
--- old/Module-Starter-1.78/bin/module-starter 2025-05-04 10:54:04.000000000
+0200
+++ new/Module-Starter-1.79/bin/module-starter 2026-01-03 14:57:21.000000000
+0100
@@ -6,7 +6,7 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
@@ -15,7 +15,7 @@
use Module::Starter::App;
-our $VERSION = '1.78';
+our $VERSION = '1.79';
Module::Starter::App->run;
@@ -35,14 +35,17 @@
--mi Same as --builder=Module::Install (discouraged)
--author=name Author's name (taken from getpwuid if not provided)
- --email=email Author's email (taken from EMAIL if not provided)
+ and Email address ( taken from $ENV{EMAIL} if Author's
name is not provided )
+ Format: Author Name <[email protected]>
+ This option can be supplied multiple times for projects
+ that have multiple authors.
--ignores=type Ignore type files to include (repeatable)
--license=type License under which the module will be distributed
(default is artistic2)
--genlicense Generate LICENSE file according to specified license
--minperl=ver Minimum Perl version required (optional;
- default is 5.006)
+ default is 5.008003)
--fatalize Generate code that causes all warnings to be fatal with:
use warnings FATAL => 'all'
@@ -71,6 +74,10 @@
module-starter --module=Foo::Bar,Foo::Bat \
--author="Andy Lester" [email protected]
+ module-starter --module=Foo::Bar,Foo::Bat \
+ --author="Andy Lester <[email protected]> \
+ --author="Sawyer X <[email protected]>
+
=head1 DESCRIPTION
C<module-starter> is a command-line interface to L<Module::Starter>, which it
@@ -107,4 +114,7 @@
This format may become more elaborate in the future, but a file of this type
should remain valid.
+Please note, as of right now the configuration file does *not* have support
+for multiple authors.
+
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/dist.ini
new/Module-Starter-1.79/dist.ini
--- old/Module-Starter-1.78/dist.ini 2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/dist.ini 2026-01-03 14:57:21.000000000 +0100
@@ -1,8 +1,8 @@
name = Module-Starter
author = Andy Lester <[email protected]>
license = Perl_5
-copyright_holder = Andy Lester, Ricardo Signes and C.J. Adams-Collier
-copyright_year = 2005
+copyright_holder = Sawyer X, Andy Lester, Ricardo Signes, and C.J.
Adams-Collier
+copyright_year = 2005-2016
[CheckChangesHasContent]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/lib/Module/Starter/App.pm
new/Module-Starter-1.79/lib/Module/Starter/App.pm
--- old/Module-Starter-1.78/lib/Module/Starter/App.pm 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter/App.pm 2026-01-03
14:57:21.000000000 +0100
@@ -6,14 +6,14 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
use warnings;
use strict;
-our $VERSION = '1.78';
+our $VERSION = '1.79';
use File::Spec;
use Getopt::Long;
@@ -83,8 +83,9 @@
mb => sub { push @{$config{builder}}, 'Module::Build' },
mi => sub { push @{$config{builder}}, 'Module::Install' },
- 'author=s' => \$config{author},
+ 'author=s@' => \@{ $config{author} },
'email=s' => \$config{email},
+ 'github=s' => \$config{github},
'license=s' => \$config{license},
genlicense => \$config{genlicense},
'minperl=s' => \$config{minperl},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/lib/Module/Starter/BuilderSet.pm
new/Module-Starter-1.79/lib/Module/Starter/BuilderSet.pm
--- old/Module-Starter-1.78/lib/Module/Starter/BuilderSet.pm 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter/BuilderSet.pm 2026-01-03
14:57:21.000000000 +0100
@@ -11,11 +11,11 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
-our $VERSION = '1.78';
+our $VERSION = '1.79';
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Module-Starter-1.78/lib/Module/Starter/Plugin/Template.pm
new/Module-Starter-1.79/lib/Module/Starter/Plugin/Template.pm
--- old/Module-Starter-1.78/lib/Module/Starter/Plugin/Template.pm
2025-05-04 10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter/Plugin/Template.pm
2026-01-03 14:57:21.000000000 +0100
@@ -10,11 +10,11 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
-our $VERSION = '1.78';
+our $VERSION = '1.79';
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/lib/Module/Starter/Plugin.pod
new/Module-Starter-1.79/lib/Module/Starter/Plugin.pod
--- old/Module-Starter-1.78/lib/Module/Starter/Plugin.pod 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter/Plugin.pod 2026-01-03
14:57:21.000000000 +0100
@@ -6,7 +6,7 @@
=head1 VERSION
-version 1.78
+version 1.79
=head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/lib/Module/Starter/Simple.pm
new/Module-Starter-1.79/lib/Module/Starter/Simple.pm
--- old/Module-Starter-1.78/lib/Module/Starter/Simple.pm 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter/Simple.pm 2026-01-03
14:57:21.000000000 +0100
@@ -1,11 +1,11 @@
package Module::Starter::Simple;
-use 5.006;
+use 5.008003;
use strict;
use warnings;
use Cwd 'cwd';
-use File::Path qw( make_path remove_tree );
+use File::Path qw( make_path );
use File::Spec ();
use Carp qw( carp confess croak );
use Module::Runtime qw( require_module );
@@ -18,11 +18,11 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
-our $VERSION = '1.78';
+our $VERSION = '1.79';
=head1 SYNOPSIS
@@ -96,18 +96,23 @@
if ( ( not $self->{author} ) && ( $^O ne 'MSWin32' ) ) {
( $self->{author} ) = split /,/, ( getpwuid $> )[6];
+ $self->{author} = [
+ exists $ENV{EMAIL}
+ ? "$self->{author} <$ENV{EMAIL}>"
+ : $self->{author}
+ ];
}
- if ( not $self->{email} and exists $ENV{EMAIL} ) {
- $self->{email} = $ENV{EMAIL};
- }
-
- croak "Must specify an author\n" unless $self->{author};
- croak "Must specify an email address\n" unless $self->{email};
- ($self->{email_obfuscated} = $self->{email}) =~ s/@/ at /;
+ croak "Must specify one or more authors\n"
+ unless $self->{author}
+ && ref($self->{author}) eq 'ARRAY'
+ && @{$self->{author}} > 0;
+ croak "author strings must be in the format: 'Author Name
<author-email\@domain.tld>'"
+ if grep { $_ !~ m/^.*?\s*\<.*?\>\s*$/ } @{$self->{author}};
+
$self->{license} ||= 'artistic2';
- $self->{minperl} ||= '5.006';
+ $self->{minperl} ||= '5.008003';
$self->{ignores_type} ||= ['generic'];
$self->{manifest_skip} = !! grep { /manifest/ } @{ $self->{ignores_type} };
@@ -136,9 +141,8 @@
$self->create_MANIFEST( $build_results{'manifest_method'} ) unless (
$self->{manifest_skip} );
# TODO: put files to ignore in a more standard form?
- # XXX: no need to return the files created
- return;
+ return @files;
}
=head2 post_create_distro
@@ -173,14 +177,9 @@
# Make sure there's no directory
if ( -e $self->{basedir} ) {
- die( "$self->{basedir} already exists. ".
- "Use --force if you want to stomp on it.\n"
+ warn( "$self->{basedir} already exists. ".
+ "Will not overwrite files unless --force is used.\n"
) unless $self->{force};
-
- remove_tree $self->{basedir};
-
- die "Couldn't delete existing $self->{basedir}: $!\n"
- if -e $self->{basedir};
}
CREATE_IT: {
@@ -267,7 +266,7 @@
my $license_blurb = defined($record) ?
$record->notice :
<<"EOT";
-This software is Copyright (c) @{[ $self->_thisyear ]} by $self->{author}.
+This software is Copyright (c) @{[ $self->_thisyear ]} by @{[ join ',', @{
$self->{author} } ]}.
This program is released under the following license:
@@ -329,8 +328,9 @@
title => 'CPAN\'s request tracker (report bugs here)',
link => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=%s',
},
- { title => 'CPAN Ratings',
- link => 'https://cpanratings.perl.org/d/%s',
+ { title => 'GitHub issue tracker',
+ link => 'https://github.com/%s/%s/issues',
+ option => 'github',
},
{ title => 'Search CPAN',
link => 'https://metacpan.org/release/%s',
@@ -407,12 +407,16 @@
my $main_module = shift;
my $main_pm_file = shift;
- (my $author = "$self->{author} <$self->{email}>") =~ s/'/\'/g;
+ my $author = '[' .
+ join(',', map { "'" . s/'/\'/rg . "'" } @{$self->{author}})
+ . ']';
my $slname = $self->{license_record} ? $self->{license_record}->meta2_name
: $self->{license};
my $warnings = sprintf 'warnings%s;', ($self->{fatalize} ? " FATAL =>
'all'" : '');
+ my $meta_merge = $self->Makefile_PL_meta_merge;
+
return <<"HERE";
use $self->{minperl};
use strict;
@@ -421,7 +425,7 @@
my %WriteMakefileArgs = (
NAME => '$main_module',
- AUTHOR => q{$author},
+ AUTHOR => $author,
VERSION_FROM => '$main_pm_file',
ABSTRACT_FROM => '$main_pm_file',
LICENSE => '$slname',
@@ -438,7 +442,7 @@
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => '$self->{distro}-*' },
-);
+$meta_merge);
# Compatibility with old versions of ExtUtils::MakeMaker
unless (eval { ExtUtils::MakeMaker->VERSION('6.64'); 1 }) {
@@ -463,6 +467,30 @@
}
+=head2 Makefile_PL_meta_merge
+
+Method called by Makefile_PL_guts. Returns the C<META_MERGE> section -
currently
+only if the option C<github> is set, in which case the C<resources =>
repository>
+entry is created.
+
+=cut
+
+sub Makefile_PL_meta_merge {
+ my $self = shift;
+ return '' unless $self->{github};
+ return sprintf " META_MERGE => {
+ 'meta-spec' => { version => 2 },
+ resources => {
+ repository => {
+ type => 'git',
+ url => 'git://github.com/%s/%s.git',
+ web => 'https://github.com/%s/%s',
+ },
+ },
+ },
+", $self->{github}, $self->{distro}, $self->{github}, $self->{distro}
+}
+
=head2 MI_Makefile_PL_guts( $main_module, $main_pm_file )
This method is called by create_MI_Makefile_PL and returns text used to
populate
@@ -476,11 +504,15 @@
my $main_module = shift;
my $main_pm_file = shift;
- my $author = "$self->{author} <$self->{email}>";
+ my $author = join ',', @{$self->{author}};
$author =~ s/'/\'/g;
-
+
my $license_url = $self->{license_record} ? $self->{license_record}->url :
'';
+ # if there is more than one author, select the first one as
+ # the repository owner
+ my ($repo_author) = (split /\s*\</, $self->{author}->[0])[0];
+
my $warnings = sprintf 'warnings%s;', ($self->{fatalize} ? " FATAL =>
'all'" : '');
return <<"HERE";
@@ -502,8 +534,8 @@
#homepage => 'http://yourwebsitehere.com',
#IRC => 'irc://irc.perl.org/#$self->{distro}',
license => '$license_url',
- #repository => 'git://github.com/$self->{author}/$self->{distro}.git',
- #repository => 'https://bitbucket.org/$self->{author}/$self->{distro}',
+ #repository => 'git://github.com/$repo_author/$self->{distro}.git',
+ #repository => 'https://bitbucket.org/$repo_author/$self->{distro}',
bugtracker => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=$self->{distro}',
);
@@ -568,7 +600,9 @@
my $main_module = shift;
my $main_pm_file = shift;
- (my $author = "$self->{author} <$self->{email}>") =~ s/'/\'/g;
+ my $author = '[' .
+ join(',', map { "'" . s/'/\'/rg . "'" } @{$self->{author}})
+ . ']';
my $slname = $self->{license_record} ? $self->{license_record}->meta2_name
: $self->{license};
@@ -584,7 +618,7 @@
my \$builder = Module::Build->new(
module_name => '$main_module',
license => '$slname',
- dist_author => q{$author},
+ dist_author => $author,
dist_version_from => '$main_pm_file',
release_status => 'stable',
configure_requires => {
@@ -704,10 +738,12 @@
my $content = "You can also look for information at:\n";
foreach my $ref (@reference_links){
+ next if $ref->{option} && !$self->{$ref->{option}};
+
my $title;
$title = "$ref->{nickname}, " if exists $ref->{nickname};
$title .= $ref->{title};
- my $link = sprintf($ref->{link}, $self->{distro});
+ my $link = sprintf($ref->{link}, $ref->{option} ?
$self->{$ref->{option}} : (), $self->{distro});
$content .= qq[
$title
@@ -722,7 +758,6 @@
my $self = shift;
my $license_blurb = $self->_license_blurb();
-
return <<"HERE";
LICENSE AND COPYRIGHT
@@ -1267,6 +1302,13 @@
my $self = shift;
my $fname = shift;
+ if ( -f $fname ) {
+ if ( !$self->{'force'} ) {
+ warn "Will not overwrite '$fname' (--force option not enabled)";
+ return;
+ }
+ }
+
my @content = @_;
open( my $fh, '>', $fname ) or confess "Can't create $fname: $!\n";
print {$fh} @content;
@@ -1424,8 +1466,10 @@
];
foreach my $ref (@reference_links) {
+ next if $ref->{option} && !$self->{$ref->{option}};
+
my $title;
- my $link = sprintf($ref->{link}, $self->{distro});
+ my $link = sprintf($ref->{link}, $ref->{option} ?
$self->{$ref->{option}} : (), $self->{distro});
$title = "$ref->{nickname}: " if exists $ref->{nickname};
$title .= $ref->{title};
@@ -1448,7 +1492,6 @@
my $rtname = shift;
my $license_blurb = $self->_license_blurb();
-
my $content = qq[
\=head1 LICENSE AND COPYRIGHT
@@ -1464,11 +1507,12 @@
my $rtname = shift;
# Sub-templates
- my $header = $self->_module_header($module, $rtname);
- my $bugs = $self->_module_bugs($module, $rtname);
- my $support = $self->_module_support($module, $rtname);
- my $license = $self->_module_license($module, $rtname);
-
+ my $header = $self->_module_header($module, $rtname);
+ my $bugs = $self->_module_bugs($module, $rtname);
+ my $support = $self->_module_support($module, $rtname);
+ my $license = $self->_module_license($module, $rtname);
+ my $author_string = join ',', @{$self->{author}};
+
my $content = <<"HERE";
$header
@@ -1506,7 +1550,7 @@
\=head1 AUTHOR
-$self->{author}, C<< <$self->{email_obfuscated}> >>
+$author_string
$bugs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/lib/Module/Starter.pm
new/Module-Starter-1.79/lib/Module/Starter.pm
--- old/Module-Starter-1.78/lib/Module/Starter.pm 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/lib/Module/Starter.pm 2026-01-03
14:57:21.000000000 +0100
@@ -11,11 +11,11 @@
=head1 VERSION
-version 1.78
+version 1.79
=cut
-our $VERSION = '1.78';
+our $VERSION = '1.79';
=head1 SYNOPSIS
@@ -57,6 +57,7 @@
license => $license, # type of license; defaults to 'artistic2'
author => $author, # author's full name (taken from C<getpwuid> if
not provided)
email => $email, # author's email address (taken from C<EMAIL>
if not provided)
+ github => $username, # author's github user name (for creating links
to git repo)
ignores_type => $type, # ignores file type ('generic', 'cvs', 'git',
'hg', 'manifest' )
fatalize => $fatalize, # generate code that makes warnings fatal
@@ -136,10 +137,6 @@
L<https://github.com/xsawyerx/module-starter>
-=item * CPAN Ratings
-
-L<http://cpanratings.perl.org/dist/Module-Starter>
-
=item * GitHub issue tracker
L<https://github.com/xsawyerx/module-starter/issues>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/t/data/templates/Module.pm
new/Module-Starter-1.79/t/data/templates/Module.pm
--- old/Module-Starter-1.78/t/data/templates/Module.pm 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/t/data/templates/Module.pm 2026-01-03
14:57:21.000000000 +0100
@@ -74,10 +74,6 @@
L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Foo-Bar>
-=item * CPAN Ratings
-
-L<http://cpanratings.perl.org/d/Foo-Bar>
-
=item * Search CPAN
L<https://metacpan.org/release/Foo-Bar>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/t/data/templates/README
new/Module-Starter-1.79/t/data/templates/README
--- old/Module-Starter-1.78/t/data/templates/README 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/t/data/templates/README 2026-01-03
14:57:21.000000000 +0100
@@ -30,9 +30,6 @@
GitHub issue tracker
https://github.com/xsawyerx/module-starter/issues
- CPAN Ratings
- http://cpanratings.perl.org/d/Foo-Bar
-
Search CPAN
https://metacpan.org/release/Foo-Bar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/t/test-dist.t
new/Module-Starter-1.79/t/test-dist.t
--- old/Module-Starter-1.78/t/test-dist.t 2025-05-04 10:54:04.000000000
+0200
+++ new/Module-Starter-1.79/t/test-dist.t 2026-01-03 14:57:21.000000000
+0100
@@ -154,7 +154,6 @@
local $Test::Builder::Level = $Test::Builder::Level + 1;
my ($self, $paras, $msg) = @_;
-
# Construct a large regex.
my $regex =
join '',
@@ -189,7 +188,7 @@
my $distro = $self->{distro};
my $mainmod = $self->{modules}[0];
- my $minperl = $self->{minperl} || '5.006';
+ my $minperl = $self->{minperl} || '5.008003';
my $license_class = "Software::License::$LICENSES->{ $self->{license} }";
require_module $license_class;
@@ -198,7 +197,6 @@
my $license_url = $license->url;
my $license_text = $license->license;
- (my $authoremail = "$self->{author} <$self->{email}>") =~ s/'/\'/g;
(my $libmod = "lib/$mainmod".'.pm') =~ s|::|/|g;
my $install_pl = $self->{builder} eq 'Module::Build' ? 'Build.PL' :
'Makefile.PL';
@@ -251,6 +249,9 @@
}
elsif ($basefn eq 'Build.PL' && $self->{builder} eq 'Module::Build') {
plan tests => 10;
+ my $authoremail = join ',', map { "'$_'" } @{$self->{author}};
+ $authoremail =~ s/'/\'/g;
+
$self->parse($mswb_re,
"Min/Strict/Warning/Builder"
);
@@ -263,7 +264,7 @@
"license",
);
- $self->parse(qr{\A\s*dist_author *=> *\Qq{$authoremail},\E\n}ms,
+ $self->parse(qr{\A\s*dist_author *=> *\Q[$authoremail],\E\n}ms,
"dist_author",
);
@@ -297,6 +298,9 @@
}
elsif ($basefn eq 'Makefile.PL' && $self->{builder} eq
'ExtUtils::MakeMaker') {
plan tests => 10;
+ my $authoremail = join ',', map { "'$_'" } @{$self->{author}};
+ $authoremail =~ s/'/\'/g;
+
$self->parse($mswb_re,
"Min/Strict/Warning/Builder"
);
@@ -305,7 +309,7 @@
"NAME",
);
- $self->parse(qr{\A\s*AUTHOR *=> *\Qq{$authoremail},\E\n}ms,
+ $self->parse(qr{\A\s*AUTHOR *=> *\Q[$authoremail],\E\n}ms,
"AUTHOR",
);
@@ -341,7 +345,12 @@
);
}
elsif ($basefn eq 'Makefile.PL' && $self->{builder} eq 'Module::Install') {
- plan tests => 13;
+ plan tests => 13;
+ # do not quote authoremail combinations for Module::Install since
+ # author is a string not an arrayref
+ my $authoremail = join ',', @{$self->{author}};
+ $authoremail =~ s/'/\'/g;
+
$self->parse($mswb_re,
"Min/Strict/Warning/Builder"
);
@@ -370,13 +379,15 @@
"tests_recursive",
);
+ my $repo_author = $self->{author}->[0];
+ ($repo_author) = (split /\s*\</, $repo_author)[0];
$self->consume(<<"EOT", 'resources');
resources (
#homepage => 'http://yourwebsitehere.com',
#IRC => 'irc://irc.perl.org/#$distro',
license => '$license_url',
- #repository => 'git://github.com/$self->{author}/$distro.git',
- #repository => 'https://bitbucket.org/$self->{author}/$self->{distro}',
+ #repository => 'git://github.com/$repo_author/$distro.git',
+ #repository => 'https://bitbucket.org/$repo_author/$self->{distro}',
bugtracker => 'https://rt.cpan.org/NoAuth/Bugs.html?Dist=$distro',
);
@@ -696,11 +707,11 @@
my $perl_name = $self->{module};
my $dist_name = $self->{distro};
- my $author_name = $self->{author};
+ my $author_name = join ',', @{$self->{author}};
my $lc_dist_name = lc($dist_name);
- my $minperl = $self->{minperl} || 5.006;
+ my $minperl = $self->{minperl} || 5.008003;
- Test::More::plan tests => 18;
+ Test::More::plan tests => 17;
$self->parse(
qr/\Apackage \Q$perl_name\E;\n\nuse $minperl;\nuse strict;\n\Quse
warnings;\E\n\n/ms,
@@ -771,7 +782,7 @@
$self->parse_paras(
[
"=head1 AUTHOR",
- { re => quotemeta($author_name) . q{[^\n]+} },
+ { re => quotemeta($author_name) },
],
"AUTHOR",
);
@@ -807,21 +818,12 @@
"Support - RT",
);
-
- $self->parse_paras(
- [
- { re => q/=item \* CPAN Ratings[^\n]*/, },
- "L<https://cpanratings.perl.org/d/$dist_name>",
- ],
- "CPAN Ratings",
- );
-
$self->parse_paras(
[
{ re => q/=item \* Search CPAN[^\n]*/, },
"L<https://metacpan.org/release/$dist_name>",
],
- "CPAN Ratings",
+ "Search CPAN",
);
$self->parse_paras(
@@ -876,6 +878,7 @@
sub run_settest {
my ($base_dir, $distro_var) = @_;
+
my $module_base_dir = File::Spec->catdir(qw(t data), ref $base_dir ?
@$base_dir : $base_dir);
$distro_var->{dir} = $module_base_dir;
@@ -983,7 +986,10 @@
builder => 'Module::Build',
license => 'artistic2',
genlicense => 1,
- author => 'Baruch Spinoza',
+ author => [
+ 'Baruch Spinoza <[email protected]>',
+ 'Sandra OConnor <[email protected]>'
+ ],
email => '[email protected]',
verbose => 0,
force => $DONT_DEL,
@@ -1001,6 +1007,7 @@
license => 'artistic2',
genlicense => 1,
author => 'Jane Austen',
+ author => [ 'Jane Austen <[email protected]>' ],
email => '[email protected]',
verbose => 0,
force => $DONT_DEL,
@@ -1048,7 +1055,8 @@
my $distro = join('-', rstr_array);
my $author = rstr.' '.rstr;
my $email = join('.', rstr_array).'@'.join('.',
rstr_array).'.tld';
-
+ $author .= ' <$email>';
+
my @modules;
my $len = int(rand(20)) + 1;
push(@modules, rstr_module ) for (1 .. $len);
@@ -1070,7 +1078,7 @@
builder => $builder,
license => $license,
genlicense => 1,
- author => $author,
+ author => [ $author ],
email => $email,
minperl => $minperl,
verbose => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/t/test-force.t
new/Module-Starter-1.79/t/test-force.t
--- old/Module-Starter-1.78/t/test-force.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Module-Starter-1.79/t/test-force.t 2026-01-03 14:57:21.000000000
+0100
@@ -0,0 +1,66 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More 'tests' => 10;
+use Module::Starter::Simple;
+use File::Spec;
+
+sub slurp_file {
+ my $file = shift;
+ open my $fh, '<', $file
+ or die "Cannot create file $file: $!";
+ my $content = do { undef $/; <$fh> };
+ close $fh
+ or die "Cannot close file: $file: $!";
+ return $content;
+}
+
+sub write_file {
+ my ( $file, $content ) = @_;
+ open my $fh, '>', $file
+ or die "Cannot create file $file: $!";
+ print {$fh} $content;
+ close $fh
+ or die "Cannot close file: $file: $!";
+}
+
+my $rand = int rand 99999;
+my $tmpdir = "/tmp/MyTestDir_$rand";
+ok( !-d $tmpdir, "Test directory ($tmpdir) does not exist" );
+
+my $simple_force = Module::Starter::Simple->new(
+ 'distro' => 'Foo',
+ 'basedir' => $tmpdir,
+ 'force' => 1,
+);
+isa_ok( $simple_force, 'Module::Starter::Simple' );
+$simple_force->create_basedir();
+ok( -d $tmpdir, "Test directory ($tmpdir) created" );
+
+my $test_file = File::Spec->catfile($tmpdir, "foo");
+write_file( $test_file, 'ok' );
+ok( -f $test_file, "Created test file ($test_file) successfully" );
+$simple_force->create_basedir();
+ok( -f $test_file, "Test file ($test_file) still exists after trying to
recreate basedir" );
+is( slurp_file($test_file), 'ok', 'Force did not delete unrelated files' );
+
+$simple_force->create_Changes();
+my $changes_file = File::Spec->catfile($tmpdir, 'Changes');
+ok( -f $changes_file, 'Changes file created' );
+my $changes = slurp_file($changes_file);
+ok( length $changes, 'Got Changes file content' );
+
+my $bowie_chant = 'Ch-ch-ch-ch-changes';
+write_file( $changes_file, $bowie_chant );
+my $simple_nonforce = Module::Starter::Simple->new(
+ 'distro' => 'Foo',
+ 'basedir' => $tmpdir,
+);
+$simple_nonforce->create_Changes();
+is( slurp_file($changes_file), $bowie_chant, 'Changes file was not rewritten
without force' );
+
+$simple_force->create_Changes();
+my $recreated_changes = slurp_file($changes_file);
+is( $recreated_changes, $changes, 'Changes file rewritten correctly' );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Module-Starter-1.78/xt/author/00-compile.t
new/Module-Starter-1.79/xt/author/00-compile.t
--- old/Module-Starter-1.78/xt/author/00-compile.t 2025-05-04
10:54:04.000000000 +0200
+++ new/Module-Starter-1.79/xt/author/00-compile.t 2026-01-03
14:57:21.000000000 +0100
@@ -1,8 +1,7 @@
-use 5.006;
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.058
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.059
use Test::More;
@@ -38,7 +37,7 @@
# see L<perlfaq8/How can I capture STDERR from an external command?>
my $stderr = IO::Handle->new;
- diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} .
$str . q{'} }
+ diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g;
q{'}.$str.q{'} }
$^X, @switches, '-e', "require q[$lib]"))
if $ENV{PERL_COMPILE_TEST_DEBUG};
@@ -63,15 +62,15 @@
open my $fh, '<', $file or warn("Unable to open $file: $!"), next;
my $line = <$fh>;
- close $fh and skip("$file isn't perl", 1) unless $line =~
/^#!\s*(?:\S*perl\S*)((?:\s+-\w*)*)(?:\s*#.*)?$/;
+ close $fh and skip("$file isn't perl", 1) unless $line =~
/^#!\s*(?:\S*(?:env )?perl\S*)((?:\s+-\w*)*)(?:\s*#.*)?$/;
@switches = (@switches, split(' ', $1)) if $1;
close $fh and skip("$file uses -T; not testable with PERL5LIB", 1)
- if grep { $_ eq '-T' } @switches and $ENV{PERL5LIB};
+ if grep $_ eq '-T', @switches and $ENV{PERL5LIB};
my $stderr = IO::Handle->new;
- diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} .
$str . q{'} }
+ diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g;
q{'}.$str.q{'} }
$^X, @switches, '-c', $file))
if $ENV{PERL_COMPILE_TEST_DEBUG};
@@ -85,7 +84,7 @@
and not eval { +require blib; blib->VERSION('1.01') };
# in older perls, -c output is simply the file portion of the path being
tested
- if (@_warnings = grep { !/\bsyntax OK$/ }
+ if (@_warnings = grep !/\bsyntax OK$/,
grep { chomp; $_ ne (File::Spec->splitpath($file))[2] } @_warnings)
{
warn @_warnings;
@@ -95,7 +94,6 @@
-is(scalar(@warnings), 0, 'no warnings found')
- or diag 'got warnings: ', ( Test::More->can('explain') ?
Test::More::explain(\@warnings) : join("\n", '', @warnings) );
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', (
Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '',
@warnings) );
++++++ README.md ++++++
## Build Results
Current state of perl in openSUSE:Factory is

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

++++++ _scmsync.obsinfo ++++++
mtime: 1767505446
commit: 04cfa20216854d8718bfc5db54b4888d804dc04e409d2cf4b11aa670e08a66ec
url: https://src.opensuse.org/perl/perl-Module-Starter.git
revision: 04cfa20216854d8718bfc5db54b4888d804dc04e409d2cf4b11aa670e08a66ec
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 2026-01-08 10:09:34.000000000 +0100
@@ -0,0 +1 @@
+.osc