Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Exporter-Tiny for openSUSE:Factory checked in at 2022-11-25 13:11:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Exporter-Tiny (Old) and /work/SRC/openSUSE:Factory/.perl-Exporter-Tiny.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Exporter-Tiny" Fri Nov 25 13:11:17 2022 rev:12 rq:1037846 version:1.006000 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Exporter-Tiny/perl-Exporter-Tiny.changes 2022-11-08 10:53:54.977586566 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Exporter-Tiny.new.1597/perl-Exporter-Tiny.changes 2022-11-25 13:11:24.619764008 +0100 @@ -1,0 +2,14 @@ +Tue Nov 22 03:06:27 UTC 2022 - Tina Müller <timueller+p...@suse.de> + +- updated to 1.006000 + see /usr/share/doc/packages/perl-Exporter-Tiny/Changes + + 1.006000 2022-11-21 + [ Packaging ] + - Stable version number. + 1.005_000 2022-10-17 + - Introduced lexical exporter support on Perl 5.11.2+ using the + Lexical::Var module. + - Refactored the Perl 5.37.2+ lexical exporter support. + +------------------------------------------------------------------- Old: ---- Exporter-Tiny-1.004004.tar.gz New: ---- Exporter-Tiny-1.006000.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Exporter-Tiny.spec ++++++ --- /var/tmp/diff_new_pack.JtJBZl/_old 2022-11-25 13:11:25.111766756 +0100 +++ /var/tmp/diff_new_pack.JtJBZl/_new 2022-11-25 13:11:25.115766778 +0100 @@ -18,7 +18,7 @@ %define cpan_name Exporter-Tiny Name: perl-Exporter-Tiny -Version: 1.004004 +Version: 1.006000 Release: 0 License: Artistic-1.0 OR GPL-1.0-or-later Summary: An exporter with the features of Sub::Exporter but only core dependencies ++++++ Exporter-Tiny-1.004004.tar.gz -> Exporter-Tiny-1.006000.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/COPYRIGHT new/Exporter-Tiny-1.006000/COPYRIGHT --- old/Exporter-Tiny-1.004004/COPYRIGHT 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/COPYRIGHT 2022-11-21 11:50:58.000000000 +0100 @@ -3,17 +3,6 @@ Upstream-Contact: Toby Inkster (TOBYINK) <toby...@cpan.org> Source: https://metacpan.org/release/Exporter-Tiny -Files: NEWS - TODO - inc/Test/Fatal.pm - inc/Test/Requires.pm - inc/Try/Tiny.pm - inc/archaic/Test/Builder/Module.pm - inc/archaic/Test/Builder/Tester.pm - inc/archaic/Test/Builder/Tester/Color.pm -Copyright: Unknown -License: Unknown - Files: lib/Exporter/Tiny/Manual/Etc.pod lib/Exporter/Tiny/Manual/Exporting.pod lib/Exporter/Tiny/Manual/Importing.pod @@ -25,6 +14,17 @@ Copyright: This software is copyright (c) 2013-2014, 2017 by Toby Inkster. License: GPL-1.0+ or Artistic-1.0 +Files: NEWS + TODO + inc/Test/Fatal.pm + inc/Test/Requires.pm + inc/Try/Tiny.pm + inc/archaic/Test/Builder/Module.pm + inc/archaic/Test/Builder/Tester.pm + inc/archaic/Test/Builder/Tester/Color.pm +Copyright: Unknown +License: Unknown + Files: lib/Exporter/Shiny.pm t/05shiny.t t/06notwant.t @@ -63,6 +63,11 @@ Copyright: This software is copyright (c) 2018 by Toby Inkster. License: GPL-1.0+ or Artistic-1.0 +Files: dist.ini + examples/Example/Exporter.pm +Copyright: Copyright 2013 Toby Inkster. +License: GPL-1.0+ or Artistic-1.0 + Files: inc/archaic/Test/More.pm inc/archaic/Test/Simple.pm Copyright: Copyright 2001-2008 by Michael G Schwern <schw...@pobox.com>. @@ -73,16 +78,6 @@ Copyright: This software is copyright (c) 2013-2014, 2017, 2022 by Toby Inkster. License: GPL-1.0+ or Artistic-1.0 -Files: dist.ini - examples/Example/Exporter.pm -Copyright: Copyright 2013 Toby Inkster. -License: GPL-1.0+ or Artistic-1.0 - -Files: inc/archaic/Test/Builder/IO/Scalar.pm -Copyright: Copyright (c) 1996 by Eryq. All rights reserved. - Copyright (c) 1999,2001 by ZeeGee Software Inc. All rights reserved. -License: GPL-1.0+ or Artistic-1.0 - Files: inc/archaic/Test/Builder.pm Copyright: Copyright 2002-2008 by chromatic <chroma...@wgz.org> and. License: GPL-1.0+ or Artistic-1.0 @@ -91,6 +86,11 @@ Copyright: None License: public-domain +Files: inc/archaic/Test/Builder/IO/Scalar.pm +Copyright: Copyright (c) 1996 by Eryq. All rights reserved. + Copyright (c) 1999,2001 by ZeeGee Software Inc. All rights reserved. +License: GPL-1.0+ or Artistic-1.0 + License: Artistic-1.0 This software is Copyright (c) 2022 by the copyright holder(s). diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/Changes new/Exporter-Tiny-1.006000/Changes --- old/Exporter-Tiny-1.004004/Changes 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/Changes 2022-11-21 11:50:58.000000000 +0100 @@ -6,6 +6,17 @@ Bug tracker: <https://github.com/tobyink/p5-exporter-tiny/issues> Maintainer: Toby Inkster (TOBYINK) <toby...@cpan.org> +1.006000 2022-11-21 + + [ Packaging ] + - Stable version number. + +1.005_000 2022-10-17 + + - Introduced lexical exporter support on Perl 5.11.2+ using the + Lexical::Var module. + - Refactored the Perl 5.37.2+ lexical exporter support. + 1.004004 2022-10-15 [ Documentation ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/META.json new/Exporter-Tiny-1.006000/META.json --- old/Exporter-Tiny-1.004004/META.json 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/META.json 2022-11-21 11:50:58.000000000 +0100 @@ -48,11 +48,11 @@ "provides" : { "Exporter::Shiny" : { "file" : "lib/Exporter/Shiny.pm", - "version" : "1.004004" + "version" : "1.006000" }, "Exporter::Tiny" : { "file" : "lib/Exporter/Tiny.pm", - "version" : "1.004004" + "version" : "1.006000" } }, "release_status" : "stable", @@ -72,6 +72,6 @@ "x_IRC" : "irc://irc.perl.org/#moops", "x_identifier" : "http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/project" }, - "version" : "1.004004", + "version" : "1.006000", "x_serialization_backend" : "JSON::PP version 4.09" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/META.yml new/Exporter-Tiny-1.006000/META.yml --- old/Exporter-Tiny-1.004004/META.yml 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/META.yml 2022-11-21 11:50:58.000000000 +0100 @@ -25,10 +25,10 @@ provides: Exporter::Shiny: file: lib/Exporter/Shiny.pm - version: '1.004004' + version: '1.006000' Exporter::Tiny: file: lib/Exporter/Tiny.pm - version: '1.004004' + version: '1.006000' requires: perl: '5.006001' resources: @@ -38,5 +38,5 @@ homepage: https://metacpan.org/release/Exporter-Tiny license: http://dev.perl.org/licenses/ repository: git://github.com/tobyink/p5-exporter-tiny.git -version: '1.004004' +version: '1.006000' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/Makefile.PL new/Exporter-Tiny-1.006000/Makefile.PL --- old/Exporter-Tiny-1.004004/Makefile.PL 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/Makefile.PL 2022-11-21 11:50:58.000000000 +0100 @@ -25,8 +25,8 @@ }, }, "provides" => { - "Exporter::Shiny" => { file => "lib/Exporter/Shiny.pm", version => 1.004004 }, - "Exporter::Tiny" => { file => "lib/Exporter/Tiny.pm", version => 1.004004 }, + "Exporter::Shiny" => { file => "lib/Exporter/Shiny.pm", version => "1.006000" }, + "Exporter::Tiny" => { file => "lib/Exporter/Tiny.pm", version => "1.006000" }, }, "release_status" => "stable", "resources" => { @@ -41,14 +41,29 @@ x_identifier => "http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/project", x_IRC => "irc://irc.perl.org/#moops", }, - "version" => 1.004004, + "version" => "1.006000", }; my %dynamic_config; do { -# idk, this should be automatic or summint? put it in explicitly. -$meta->{prereqs}{runtime}{requires}{'Test::More'} = '0.47' - if $] < 5.006002; + my $prereq_type = 'recommends'; + + if ( $ENV{CI} + and defined $ENV{GITHUB_REPOSITORY} + and $ENV{GITHUB_REPOSITORY} eq 'tobyink/p5-exporter-tiny' ) { + $prereq_type = 'requires'; + } + + if ( $] ge 5.011002 and $] lt 5.021007 ) { + $meta->{prereqs}{runtime}{$prereq_type}{'Lexical::Var'} = '0'; + } + elsif ( $] ge 5.018000 and $] lt 5.037002 ) { + $meta->{prereqs}{runtime}{$prereq_type}{'Alt::Lexical::Var::ButSupportModernPerl'} = '0.001'; + } + + # idk, this should be automatic or summint? put it in explicitly. + $meta->{prereqs}{runtime}{requires}{'Test::More'} = '0.47' + if $] lt 5.006002; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/SIGNATURE new/Exporter-Tiny-1.006000/SIGNATURE --- old/Exporter-Tiny-1.004004/SIGNATURE 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/SIGNATURE 2022-11-21 11:50:58.000000000 +0100 @@ -14,20 +14,20 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: RIPEMD160 -SHA256 62fe07b4cdd6d54664663e0d02654ff9c1d5e0e66c3a8780db17af4be6dfa48e COPYRIGHT +SHA256 5b2e7652175d557f7b138a7f28a43858f728f83d24ca4a090f2a1841a7e1d1b4 COPYRIGHT SHA256 5124359bbc1eb6fbc98496e82c9ebd0db246aaa07059f4cd28bd3174f6352b6d CREDITS -SHA256 6a4fe8d19c3fe4ad2594711453c4812c03b104ed16e863241a521d964558aabf Changes +SHA256 8e76e52edfc623597cb6cfa33e30da04afce9a5489951340e4267c99372af30d Changes SHA256 2f314c303b24f03c1ffbc54001a90eb7d50ebe724a60b2fe4f2f6e42e5170c1d INSTALL SHA256 a4f85c6f4d6e8bdd37b7ab08013e3e3bee1fe8e910e20f8f54d5025ffe40f384 LICENSE SHA256 db033ca38e844b9406a63a6c90e7e4df7c0f11fefc9fe42ff52ef5ee761eccab MANIFEST -SHA256 312cd4bdfbfc50901264a0f9ddc062f4de61ebd2d3ef4bf57490d266f6ee4b12 META.json -SHA256 6242cacb84ae39c8bbbab38aef9d7661972baf3d07c0f9ebb930d4ea5b8f37e5 META.yml -SHA256 982104c46fcdc4fd019b5dae31843ffae87e614e93e7fcc1aa74c1de07fa41c9 Makefile.PL +SHA256 0ff65bb71ae9c4b2d5c2ab850ed377e97541c2bb8b5bdc6a92424f5aeb59e40f META.json +SHA256 58c31ce2398ba9ea195e7de9eed2893076b93929cf1653bf46ea7ca23be809a8 META.yml +SHA256 46aaf6be998a5d65bbdda2a766c2de479bfe9437d56e668c6609bf6533d59a7d Makefile.PL SHA256 47b10ed37d8da7c65245ffe5773cf59654f1545cc0e2fbbfa4f1e25f67bb0ff3 NEWS SHA256 0d2ea0e8456261f541cb039ee38d7994b28c989f2284a7fbb714bf7bf7952536 README SHA256 846fcc88a04c5b7cd65ec32c5f842f8b339d8fc28c1cc75f36fa10af809353e2 TODO SHA256 43562b3806635eddcf6e7ea7cf6edc690a7f52cca15e4fc76593d144fd450aa6 dist.ini -SHA256 36684fcd38826de692133fa98115f79895d4a845285da13531fc913ed4ede517 doap.ttl +SHA256 9974faba5e187957bb68211aea9e31bfce176772ce3d0406b810b0ecfd26d9d9 doap.ttl SHA256 bbe194f6f9a9832847d82b7cb8b5d5f16c4af255bcef0d25f90992ff268462ea examples/Example/Exporter.pm SHA256 c361b86d13c8fdfbe75840d11dbe6af488e44af27b0edb80fd1eea28c8e935d4 inc/Test/Fatal.pm SHA256 b8b2edfbb16b30d0e3b212a413c55a8de7ce929591d0a1029b70c47c8c0be11a inc/Test/Requires.pm @@ -39,11 +39,11 @@ SHA256 ae528d9fc2962793e98af13f4d4e802fbf8d78b17b1c27a860728a16e8bf4a3a inc/archaic/Test/Builder/Tester/Color.pm SHA256 764f3ed1e0a314e7e9f8d803dff3d894e8c572e2a128d7ce14f2a80268e50543 inc/archaic/Test/More.pm SHA256 c4fd1410a9bd85a0e7700de08c1614fc5928c0d02151ba1ec7d06bd56407e0d5 inc/archaic/Test/Simple.pm -SHA256 d534926eb57d285ce97b9620b42f48493830f0441b6323449859d9a552b645fc lib/Exporter/Shiny.pm -SHA256 ce602a38d855b81b1ded16d1d7199228894d5ecd114deb5f9012793af65ebcea lib/Exporter/Tiny.pm +SHA256 8579cdf8f8c9abea973c48ef2e3d9f85b0a04596455ffcc16c23146b9da511c2 lib/Exporter/Shiny.pm +SHA256 1b6aed8d6c2c37d242743bad0d078b1ebc7221e8e94379df4ea11395834ff142 lib/Exporter/Tiny.pm SHA256 3e080e8653b3b717c52dad07fcfc84c31766a9034c9c3b881ff41301a19b378a lib/Exporter/Tiny/Manual/Etc.pod SHA256 293f6a8c2d4dacb49b775b24547a2f4845487bd6549b08a82f06dd89281111c8 lib/Exporter/Tiny/Manual/Exporting.pod -SHA256 c187110096953b6629df1cc4aef1eae17625be5ca1dd75d388da1aea43c7fb4e lib/Exporter/Tiny/Manual/Importing.pod +SHA256 c76e40b4e8d3f5f87048e5c4b70da2acf121f8b05df761967a4f97d8da48e579 lib/Exporter/Tiny/Manual/Importing.pod SHA256 ce8c6c3a5843fe09ea48d3d236c92d9de9ebb1e1c5f0f84d63f712008ba4e205 lib/Exporter/Tiny/Manual/QuickStart.pod SHA256 4d3896ea5efe37ef1d7ed52c4da53c49fcf00cf504d3db1d69cbd1f2755dbee2 t/01basic.t SHA256 1e979b56fb80efb07094f1172b63e35a90fd1c8291ee0e374d619a4d75465d24 t/02renaming.t @@ -58,13 +58,13 @@ SHA256 b0fcc16f86d948934caf5edf9fe09360a5eb8e60dd15d79b3b31d7f259d1edef t/11noncode.t SHA256 2488f918037f954ecec64a28c8a9e2bcb3ea9a9a7fe092fdcfd1c3bdd11e3f51 t/12noncodegenerators.t SHA256 47728bc580e310a5c3c3c61fb6be7a450ebdf6aa420bbf7c5b1ae514223e533f t/13doesntexist.t -SHA256 82953c33b12d287478d5b5b120cdedb43b71d2eec311eef91ae0a77fc3451732 t/14lexical.t +SHA256 d816f8d6bf77e42f3f8e34a8f0b6c32bb585c12f66cb27c433c9a0393d64f7a9 t/14lexical.t SHA256 70029832b2fbebf24679c78fd2a8be2f993ecbfa6f8f86185d1fb6d7118ff1ed t/15nonhashvalue.t SHA256 e1a41fa7830088d375109ef40be52c3a17255f06e46e077a6c6a9276f47c6485 t/gh-8.t SHA256 59f9182ed1b30f84045947a2713328e62275e922d083933e2c72fb381d710306 t/gh-9.t -----BEGIN PGP SIGNATURE----- -iF0EAREDAB0WIQRVJKj/4+s6z4WzNujOv4Eoaip9OQUCY0qdUgAKCRDOv4Eoaip9 -OQxDAJsFMB1eXxAZmr2mL35prya/DzSsPQCfVhiMoRPSq7UqUxzLSalbLqT5b7o= -=9WV0 +iF0EAREDAB0WIQRVJKj/4+s6z4WzNujOv4Eoaip9OQUCY3tYEgAKCRDOv4Eoaip9 +OQlNAJ42t4sMzfORbQGKd8btQzpa54YroQCfWM7h+AD6Xi/RbKznAeMLSzNagoU= +=UR39 -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/doap.ttl new/Exporter-Tiny-1.006000/doap.ttl --- old/Exporter-Tiny-1.004004/doap.ttl 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/doap.ttl 2022-11-21 11:50:58.000000000 +0100 @@ -27,7 +27,7 @@ doap:maintainer <http://purl.org/NET/cpan-uri/person/tobyink>; doap:name "Exporter-Tiny"; doap:programming-language "Perl"; - doap:release <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-026>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-029_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-030>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-031_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-032>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-033_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-034>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-036>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_03>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-038>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-039_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-040>, <htt p://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-042>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-044>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-000000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004000>, <http://pu rl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004003>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004004>; + doap:release <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-026>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-029_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-030>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-031_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-032>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-033_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-034>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-035_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-036>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-037_03>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-038>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-039_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-040>, <htt p://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-041_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-042>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_01>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-043_02>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_0-044>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-000000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-001_001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-002002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-003_002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004000>, <http://pu rl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004001>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004002>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004003>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004004>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-005_000>, <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-006000>; doap:repository [ a doap:GitRepository; doap:browse <https://github.com/tobyink/p5-exporter-tiny>; @@ -599,6 +599,39 @@ doap:file-release <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.004004.tar.gz>; doap:revision "1.004004"^^xsd:string. +<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-005_000> + a cpan-uri:DeveloperRelease, doap:Version; + dc:identifier "Exporter-Tiny-1.005_000"^^xsd:string; + dc:issued "2022-10-17"^^xsd:date; + doap-changeset:changeset [ + doap-changeset:item [ + a doap-changeset:Change; + rdfs:label "Refactored the Perl 5.37.2+ lexical exporter support."; + ], [ + a doap-changeset:Change; + rdfs:label "Introduced lexical exporter support on Perl 5.11.2+ using the Lexical::Var module."; + ]; + doap-changeset:versus <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-004004>; + ]; + doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/tobyink>; + doap:file-release <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.005_000.tar.gz>; + doap:revision "1.005_000"^^xsd:string. + +<http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-006000> + a doap:Version; + dc:identifier "Exporter-Tiny-1.006000"^^xsd:string; + dc:issued "2022-11-21"^^xsd:date; + doap-changeset:changeset [ + doap-changeset:item [ + a doap-changeset:Packaging; + rdfs:label "Stable version number."; + ]; + doap-changeset:versus <http://purl.org/NET/cpan-uri/dist/Exporter-Tiny/v_1-005_000>; + ]; + doap-changeset:released-by <http://purl.org/NET/cpan-uri/person/tobyink>; + doap:file-release <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006000.tar.gz>; + doap:revision "1.006000"^^xsd:string. + <http://purl.org/NET/cpan-uri/dist/Type-Tiny/project> a doap:Project; dc:contributor <http://purl.org/NET/cpan-uri/person/tobyink>; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/lib/Exporter/Shiny.pm new/Exporter-Tiny-1.006000/lib/Exporter/Shiny.pm --- old/Exporter-Tiny-1.004004/lib/Exporter/Shiny.pm 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/lib/Exporter/Shiny.pm 2022-11-21 11:50:58.000000000 +0100 @@ -7,7 +7,7 @@ use Exporter::Tiny (); our $AUTHORITY = 'cpan:TOBYINK'; -our $VERSION = '1.004004'; +our $VERSION = '1.006000'; sub import { my $me = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/lib/Exporter/Tiny/Manual/Importing.pod new/Exporter-Tiny-1.006000/lib/Exporter/Tiny/Manual/Importing.pod --- old/Exporter-Tiny-1.004004/lib/Exporter/Tiny/Manual/Importing.pod 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/lib/Exporter/Tiny/Manual/Importing.pod 2022-11-21 11:50:58.000000000 +0100 @@ -157,35 +157,12 @@ =head2 Lexical subs on Perl older than 5.37.2 -There is this L<Sub::Exporter::Lexical> thing that was designed as a -plugin for L<Sub::Exporter>, but Exporter::Tiny's API is close enough -that it will work. Do you remember that global options hash? Just -use that to tell Exporter::Tiny to use an alternative sub installer. +If you install L<Lexical::Var>, then lexical imports should work on versions +of Perl as old as 5.12. - { - use Sub::Exporter::Lexical lexical_installer => { -as => "lex" }; - use MyUtils { installer => lex }, "frobnicate"; - - frobnicate(...); # ok - } - - frobnicate(...); # not ok - -Another way to do lexical functions is to import a function into a -scalar variable: - - my $func; - use MyUtils "frobnicate" => { -as => \$func }; - - $func->(...); - -You can even provide a hashref to put all imported functions into as -part of that global options hash I mentioned earlier. - - my %funcs; - use MyUtils { into => \%funcs }, "frobnicate"; - - $funcs{frobnicate}->(...); +That module does have issues that prevent it from being installed on Perl +5.22+. The L<Alt::Lexical::Var::ButSupportModernPerl> module includes patches +to fix it. =head2 Unimporting diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/lib/Exporter/Tiny.pm new/Exporter-Tiny-1.006000/lib/Exporter/Tiny.pm --- old/Exporter-Tiny-1.004004/lib/Exporter/Tiny.pm 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/lib/Exporter/Tiny.pm 2022-11-21 11:50:58.000000000 +0100 @@ -5,9 +5,18 @@ use warnings; no warnings qw(void once uninitialized numeric redefine); our $AUTHORITY = 'cpan:TOBYINK'; -our $VERSION = '1.004004'; +our $VERSION = '1.006000'; our @EXPORT_OK = qw< mkopt mkopt_hash _croak _carp >; +BEGIN { + *_HAS_NATIVE_LEXICAL_SUB = ( $] ge '5.037002' ) + ? sub () { !!1 } + : sub () { !!0 }; + *_HAS_MODULE_LEXICAL_SUB = ( $] ge '5.011002' and eval('require Lexical::Sub') ) + ? sub () { !!1 } + : sub () { !!0 }; +}; + sub _croak ($;@) { require Carp; my $fmt = shift; @_ = sprintf($fmt, @_); goto \&Carp::croak } sub _carp ($;@) { require Carp; my $fmt = shift; @_ = sprintf($fmt, @_); goto \&Carp::carp } @@ -46,7 +55,14 @@ { my $class = shift; my $global_opts = +{ @_ && ref($_[0]) eq q(HASH) ? %{+shift} : () }; - $global_opts->{into} = caller unless exists $global_opts->{into}; + + if ( defined $global_opts->{into} and $global_opts->{into} eq '-lexical' ) { + $global_opts->{lexical} = 1; + delete $global_opts->{into}; + } + if ( not defined $global_opts->{into} ) { + $global_opts->{into} = caller; + } my @want; my %not_want; $global_opts->{not} = \%not_want; @@ -54,11 +70,13 @@ my $opts = mkopt(\@args); $class->$_process_optlist($global_opts, $opts, \@want, \%not_want); + $global_opts->{installer} ||= $class->_exporter_lexical_installer( $global_opts ) + if $global_opts->{lexical}; + my $permitted = $class->_exporter_permitted_regexp($global_opts); $class->_exporter_validate_opts($global_opts); - for my $wanted (@want) - { + for my $wanted (@want) { next if $not_want{$wanted->[0]}; my %symbols = $class->_exporter_expand_sub(@$wanted, $global_opts, $permitted); @@ -71,9 +89,16 @@ { my $class = shift; my $global_opts = +{ @_ && ref($_[0]) eq q(HASH) ? %{+shift} : () }; - $global_opts->{into} = caller unless exists $global_opts->{into}; $global_opts->{is_unimport} = 1; + if ( defined $global_opts->{into} and $global_opts->{into} eq '-lexical' ) { + $global_opts->{lexical} = 1; + delete $global_opts->{into}; + } + if ( not defined $global_opts->{into} ) { + $global_opts->{into} = caller; + } + my @want; my %not_want; $global_opts->{not} = \%not_want; my @args = do { our %TRACKED; @_ ? @_ : keys(%{$TRACKED{$class}{$global_opts->{into}}}) }; @@ -104,6 +129,23 @@ } } +# Returns a coderef suitable to be used as a sub installer for lexical imports. +# +sub _exporter_lexical_installer { + _HAS_NATIVE_LEXICAL_SUB and return sub { + my ( $sigilname, $sym ) = @{ $_[1] }; + no warnings ( $] ge '5.037002' ? 'experimental::builtin' : () ); + builtin::export_lexically( $sigilname, $sym ); + }; + _HAS_MODULE_LEXICAL_SUB and return sub { + my ( $sigilname, $sym ) = @{ $_[1] }; + ( $sigilname =~ /^\w/ ) + ? 'Lexical::Sub'->import( $sigilname, $sym ) + : 'Lexical::Var'->import( $sigilname, $sym ); + }; + _croak( 'Lexical export requires Perl 5.37.2+ for native support, or Perl 5.11.2+ with the Lexical::Sub module' ); +} + # Called once per import/unimport, passed the "global" import options. # Expected to validate the options and carp or croak if there are problems. # Can also take the opportunity to do other stuff if needed. @@ -268,17 +310,7 @@ my $into = $globals->{into}; my $installer = $globals->{installer} || $globals->{exporter}; - - if ( $into eq '-lexical' or $globals->{lexical} ) { - $] ge '5.037002' - or _croak( 'Lexical export requires Perl 5.37.2 or above' ); - $installer ||= sub { - my ( $sigilname, $sym ) = @{ $_[1] }; - no warnings ( $] ge '5.037002' ? 'experimental::builtin' : () ); - builtin::export_lexically( $sigilname, $sym ); - }; - } - + $name = ref $globals->{as} ? $globals->{as}->($name) : ref $value_hash->{-as} ? $value_hash->{-as}->($name) : @@ -301,21 +333,23 @@ $name = "$prefix$name$suffix"; } - my $sigilname = $sigil eq '&' ? $name : "$sigil$name"; + my $sigilname = $sigil eq '&' ? $name : ( $sigil . $name ); # if ({qw/$ SCALAR @ ARRAY % HASH & CODE/}->{$sigil} ne ref($sym)) { # warn $sym; # warn $sigilname; # _croak("Reference type %s does not match sigil %s", ref($sym), $sigil); # } - + return ($$name = $sym) if ref($name) eq q(SCALAR); return ($into->{$sigilname} = $sym) if ref($into) eq q(HASH); no strict qw(refs); our %TRACKED; - if (ref($sym) eq 'CODE' and exists &{"$into\::$name"} and \&{"$into\::$name"} != $sym) + if ( ref($sym) eq 'CODE' + and ref($into) ? exists($into->{$name}) : exists(&{"$into\::$name"}) + and $sym != ( ref($into) ? $into->{$name} : \&{"$into\::$name"} ) ) { my ($level) = grep defined, $value_hash->{-replace}, $globals->{replace}, q(0); my $action = { @@ -335,10 +369,9 @@ $action->( $action == \&_croak - ? "Refusing to overwrite existing sub '%s::%s' with sub '%s' exported by %s" - : "Overwriting existing sub '%s::%s' with sub '%s' exported by %s", - $into, - $name, + ? "Refusing to overwrite existing sub '%s' with sub '%s' exported by %s" + : "Overwriting existing sub '%s' with sub '%s' exported by %s", + ref($into) ? $name : "$into\::$name", $_[0], $class, ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Exporter-Tiny-1.004004/t/14lexical.t new/Exporter-Tiny-1.006000/t/14lexical.t --- old/Exporter-Tiny-1.004004/t/14lexical.t 2022-10-15 13:45:22.000000000 +0200 +++ new/Exporter-Tiny-1.006000/t/14lexical.t 2022-11-21 11:50:58.000000000 +0100 @@ -22,7 +22,13 @@ use strict; use warnings; use Test::More; -use Test::Requires '5.037002'; +use Exporter::Tiny (); + +BEGIN { + Exporter::Tiny::_HAS_NATIVE_LEXICAL_SUB or + Exporter::Tiny::_HAS_MODULE_LEXICAL_SUB or + plan skip_all => "This version of Perl does not support lexical imports"; +}; BEGIN { package My::Utils;