@@ -1,4 +1,141 @@
-# This Build.PL for MooseX-Storage was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.006.
-use 5.008;
-use Module::Build::Tiny 0.035;
-Build_PL();
+# This Build.PL for MooseX-Storage was generated by
+# Dist::Zilla::Plugin::ModuleBuildTiny::Fallback 0.005
+if (eval 'use Module::Build::Tiny 0.037; 1')
+{
+ print "Congratulations, your toolchain understands 'configure_requires'!\n\n";
+
+ # This section for MooseX-Storage was generated by Dist::Zilla::Plugin::ModuleBuildTiny 0.006.
+ use 5.008;
+ # use Module::Build::Tiny 0.037;
+ Build_PL();
+}
+else
+{
+ $ENV{PERL_MB_FALLBACK_SILENCE_WARNING} or warn <<'EOW';
+*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
+
+If you're seeing this warning, your toolchain is really, really old* and you'll
+almost certainly have problems installing CPAN modules from this century. But
+never fear, dear user, for we have the technology to fix this!
+
+If you're using CPAN.pm to install things, then you can upgrade it using:
+
+ cpan CPAN
+
+If you're using CPANPLUS to install things, then you can upgrade it using:
+
+ cpanp CPANPLUS
+
+If you're using cpanminus, you shouldn't be seeing this message in the first
+place, so please file an issue on github.
+
+This public service announcement was brought to you by the Perl Toolchain
+Gang, the irc.perl.org #toolchain IRC channel, and the number 42.
+
+----
+
+* Alternatively, you are running this file manually, in which case you need
+to learn to first fulfill all configure requires prerequisites listed in
+META.yml or META.json -- or use a cpan client to install this distribution.
+
+You can also silence this warning for future installations by setting the
+PERL_MB_FALLBACK_SILENCE_WARNING environment variable, but please don't do
+that until you fix your toolchain as described above.
+
+EOW
+ sleep 10 if -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT));
+
+
+ # This section was automatically generated by Dist::Zilla::Plugin::ModuleBuild v5.020.
+ use strict;
+ use warnings;
+
+ require Module::Build; Module::Build->VERSION(0.28);
+
+
+ my %module_build_args = (
+ "build_requires" => {},
+ "configure_requires" => {
+ "ExtUtils::MakeMaker" => 0,
+ "Module::Build::Tiny" => "0.037"
+ },
+ "dist_abstract" => "A serialization framework for Moose classes",
+ "dist_author" => [
+ "Chris Prather <chris.prather\@iinteractive.com>",
+ "Stevan Little <stevan.little\@iinteractive.com>",
+ "\x{5d9}\x{5d5}\x{5d1}\x{5dc} \x{5e7}\x{5d5}\x{5d2}'\x{5de}\x{5df} (Yuval Kogman) <nothingmuch\@woobling.org>"
+ ],
+ "dist_name" => "MooseX-Storage",
+ "dist_version" => "0.47",
+ "license" => "perl",
+ "module_name" => "MooseX::Storage",
+ "recommends" => {
+ "IO::AtomicFile" => 0,
+ "IO::File" => 0,
+ "JSON::Any" => "1.15",
+ "MooseX::Storage::Format::JSONpm" => 0,
+ "Storable" => 0,
+ "YAML" => 0,
+ "YAML::Any" => 0,
+ "YAML::Syck" => 0,
+ "YAML::XS" => 0
+ },
+ "recursive_test_files" => 1,
+ "requires" => {
+ "Carp" => 0,
+ "Data::Dumper" => 0,
+ "Digest" => 0,
+ "Module::Runtime" => 0,
+ "Moose" => "0.99",
+ "Moose::Meta::Attribute" => 0,
+ "Moose::Role" => 0,
+ "Scalar::Util" => 0,
+ "String::RewritePrefix" => 0,
+ "namespace::autoclean" => 0,
+ "perl" => "5.008"
+ },
+ "script_files" => [],
+ "test_requires" => {
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "File::Spec::Functions" => 0,
+ "File::Temp" => 0,
+ "Moose::Util::TypeConstraints" => 0,
+ "Test::Deep" => 0,
+ "Test::Fatal" => 0,
+ "Test::More" => 0,
+ "Test::Requires" => 0,
+ "overload" => 0,
+ "strict" => 0,
+ "utf8" => 0,
+ "warnings" => 0
+ }
+ );
+
+
+ my %fallback_build_requires = (
+ "ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
+ "File::Spec::Functions" => 0,
+ "File::Temp" => 0,
+ "Moose::Util::TypeConstraints" => 0,
+ "Test::Deep" => 0,
+ "Test::Fatal" => 0,
+ "Test::More" => 0,
+ "Test::Requires" => 0,
+ "overload" => 0,
+ "strict" => 0,
+ "utf8" => 0,
+ "warnings" => 0
+ );
+
+
+ unless ( eval { Module::Build->VERSION(0.4004) } ) {
+ delete $module_build_args{test_requires};
+ $module_build_args{build_requires} = \%fallback_build_requires;
+ }
+
+ my $build = Module::Build->new(%module_build_args);
+
+ $build->create_build_script;
+}
@@ -4,9 +4,14 @@ CONTRIBUTING
Thank you for considering contributing to this distribution. This file
contains instructions that will help you work with the source code.
-The distribution is managed with Dist::Zilla. This means than many of the
-usual files you might expect are not in the repository, but are generated
-at release time (e.g. Makefile.PL).
+PLEASE NOTE that if you have any questions or difficulties, you can reach me
+through the bug queue described later in this document, or by emailing me
+directly. You are not required to follow any of the steps in this document to
+submit a patch or bug report; these are just guidelines, intended to help you.
+
+The distribution is managed with Dist::Zilla (https://metacpan.org/release/Dist-Zilla).
+This means than many of the usual files you might expect are not in the
+repository, but are generated at release time (e.g. Makefile.PL).
However, you can run tests directly using the 'prove' tool:
@@ -31,14 +36,24 @@ install it from CPAN, then run one of the following commands, depending on
your CPAN client:
$ cpan `dzil authordeps --missing`
+or
$ dzil authordeps --missing | cpanm
You should then also install any additional requirements not needed by the
dzil build but may be needed by tests or other development:
- # cpan `dzil listdeps --author --missing`
+ $ cpan `dzil listdeps --author --missing`
+or
$ dzil listdeps --author --missing | cpanm
+Or, you can use the 'dzil stale' command to install all requirements at once:
+
+ $ cpan Dist::Zilla::App::Command::stale
+ $ cpan `dzil stale --all`
+or
+ $ cpanm Dist::Zilla::App::Command::stale
+ $ dzil stale --all | cpanm
+
You can also do this via cpanm directly:
$ cpanm --reinstall --installdeps --with-develop --with-recommends MooseX::Storage
@@ -73,6 +88,12 @@ http://lists.perl.org/list/moose.html.
There is also an irc channel available for users of this distribution, at
irc://irc.perl.org/#moose.
+If you send me a patch or pull request, your name and email address will be
+included in the documentation as a contributor, unless you specifically
+request for it not to be (using the attribution on the commit or patch).
+If you wish to be listed under a different name, you should submit a pull
+request to the .mailmap file to contain the correct mapping.
+
This file was generated via Dist::Zilla::Plugin::GenerateFile::ShareDir 0.005 from a
-template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.054.
+template file originating in Dist-Zilla-PluginBundle-Author-ETHER-0.072.
@@ -1,5 +1,14 @@
Revision history for MooseX-Storage
+0.47 2014-08-23 22:34:21Z
+ - report the versions of all JSON and YAML backends during tests, in an
+ attempt to track down an elusive bug
+ - now properly serializing attributes that are set to the undefined value
+ (github #6, thanks, Jason Pope!)
+ - fix compatibility problem with MooseX::Role::Parameterized 1.03+ and
+ MooseX::Storage::Format::JSONpm (some internal details changed that we
+ were relying on)
+
0.46 2014-03-23 18:26:44Z
- numerous small documentation clarifications and fixes
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.014.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.020.
Build.PL
CONTRIBUTING
Changes
@@ -9,8 +9,6 @@ META.json
META.yml
Makefile.PL
README
-README.md
-TODO
dist.ini
lib/MooseX/Storage.pm
lib/MooseX/Storage/Base/WithChecksum.pm
@@ -32,6 +30,7 @@ lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm
lib/MooseX/Storage/Traits/DisableCycleDetection.pm
lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm
lib/MooseX/Storage/Util.pm
+t/00-report-prereqs.dd
t/00-report-prereqs.t
t/000_load.t
t/001_basic.t
@@ -67,6 +66,7 @@ t/300_overloaded.t
t/zzz-check-breaks.t
weaver.ini
xt/author/00-compile.t
+xt/author/no-tabs.t
xt/author/pod-spell.t
xt/release/changes_has_content.t
xt/release/clean-namespaces.t
@@ -76,10 +76,7 @@ xt/release/eol.t
xt/release/kwalitee.t
xt/release/minimum-version.t
xt/release/mojibake.t
-xt/release/no-tabs.t
xt/release/pod-coverage.t
xt/release/pod-no404s.t
xt/release/pod-syntax.t
xt/release/portability.t
-xt/release/test-version.t
-xt/release/unused-vars.t
@@ -6,7 +6,19 @@
"יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640",
+ "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
+ "keywords" : [
+ "moose",
+ "extension",
+ "serial",
+ "serialization",
+ "class",
+ "object",
+ "store",
+ "storage",
+ "types",
+ "strings"
+ ],
"license" : [
"perl_5"
],
@@ -89,28 +101,89 @@
"prereqs" : {
"configure" : {
"requires" : {
- "ExtUtils::MakeMaker" : "6.30",
- "Module::Build::Tiny" : "0.035"
+ "ExtUtils::MakeMaker" : "0",
+ "Module::Build::Tiny" : "0.037"
}
},
"develop" : {
"recommends" : {
- "Dist::Zilla::PluginBundle::Author::ETHER" : "0.054"
+ "Dist::Zilla::PluginBundle::Author::ETHER" : "0.072"
},
"requires" : {
"Digest::HMAC_SHA1" : "0",
- "Dist::Zilla" : "5.014",
- "Dist::Zilla::Plugin::ContributorsFromGit" : "0",
+ "Dist::Zilla" : "5",
+ "Dist::Zilla::Plugin::Authority" : "0",
+ "Dist::Zilla::Plugin::AutoMetaResources" : "0",
+ "Dist::Zilla::Plugin::AutoPrereqs" : "0",
+ "Dist::Zilla::Plugin::CheckIssues" : "0",
+ "Dist::Zilla::Plugin::CheckPrereqsIndexed" : "0",
+ "Dist::Zilla::Plugin::CheckSelfDependency" : "0",
+ "Dist::Zilla::Plugin::CheckStrictVersion" : "0",
+ "Dist::Zilla::Plugin::ConfirmRelease" : "0",
+ "Dist::Zilla::Plugin::CopyFilesFromRelease" : "0",
+ "Dist::Zilla::Plugin::EOLTests" : "0",
+ "Dist::Zilla::Plugin::ExecDir" : "0",
+ "Dist::Zilla::Plugin::FileFinder::ByName" : "0",
+ "Dist::Zilla::Plugin::GenerateFile::ShareDir" : "0",
+ "Dist::Zilla::Plugin::Git::Check" : "0",
+ "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch" : "0.004",
+ "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts" : "0",
+ "Dist::Zilla::Plugin::Git::Commit" : "2.020",
+ "Dist::Zilla::Plugin::Git::Contributors" : "0.004",
+ "Dist::Zilla::Plugin::Git::Describe" : "0",
+ "Dist::Zilla::Plugin::Git::GatherDir" : "2.016",
+ "Dist::Zilla::Plugin::Git::NextVersion" : "0",
+ "Dist::Zilla::Plugin::Git::Push" : "0",
+ "Dist::Zilla::Plugin::Git::Remote::Check" : "0",
+ "Dist::Zilla::Plugin::Git::Tag" : "0",
"Dist::Zilla::Plugin::GitHub::Update" : "0",
"Dist::Zilla::Plugin::GithubMeta" : "0",
- "Dist::Zilla::Plugin::MakeMaker::Fallback" : "0.008",
+ "Dist::Zilla::Plugin::InstallGuide" : "0",
+ "Dist::Zilla::Plugin::Keywords" : "0.004",
+ "Dist::Zilla::Plugin::License" : "0",
+ "Dist::Zilla::Plugin::MakeMaker::Fallback" : "0.012",
+ "Dist::Zilla::Plugin::Manifest" : "0",
+ "Dist::Zilla::Plugin::MetaConfig" : "0",
+ "Dist::Zilla::Plugin::MetaJSON" : "0",
+ "Dist::Zilla::Plugin::MetaNoIndex" : "0",
+ "Dist::Zilla::Plugin::MetaProvides::Package" : "1.15000002",
"Dist::Zilla::Plugin::MetaResources" : "0",
- "Dist::Zilla::Plugin::ModuleBuildTiny" : "0.004",
+ "Dist::Zilla::Plugin::MetaTests" : "0",
+ "Dist::Zilla::Plugin::MetaYAML" : "0",
+ "Dist::Zilla::Plugin::MinimumPerl" : "0",
+ "Dist::Zilla::Plugin::ModuleBuildTiny::Fallback" : "0.005",
+ "Dist::Zilla::Plugin::MojibakeTests" : "0",
+ "Dist::Zilla::Plugin::NextRelease" : "4.300018",
"Dist::Zilla::Plugin::OptionalFeature" : "0",
+ "Dist::Zilla::Plugin::PkgVersion" : "5.010",
+ "Dist::Zilla::Plugin::PodCoverageTests" : "0",
+ "Dist::Zilla::Plugin::PodSyntaxTests" : "0",
+ "Dist::Zilla::Plugin::PodWeaver" : "0",
+ "Dist::Zilla::Plugin::Prereqs" : "0",
+ "Dist::Zilla::Plugin::Prereqs::AuthorDeps" : "0",
"Dist::Zilla::Plugin::Prereqs::Soften" : "0.004000",
+ "Dist::Zilla::Plugin::PromptIfStale" : "0",
+ "Dist::Zilla::Plugin::Readme" : "0",
+ "Dist::Zilla::Plugin::ReadmeAnyFromPod" : "0.142180",
+ "Dist::Zilla::Plugin::Run::AfterBuild" : "0",
+ "Dist::Zilla::Plugin::Run::AfterRelease" : "0",
+ "Dist::Zilla::Plugin::RunExtraTests" : "0.019",
+ "Dist::Zilla::Plugin::ShareDir" : "0",
+ "Dist::Zilla::Plugin::Test::CPAN::Changes" : "0.008",
+ "Dist::Zilla::Plugin::Test::ChangesHasContent" : "0",
"Dist::Zilla::Plugin::Test::CheckBreaks" : "0",
"Dist::Zilla::Plugin::Test::CleanNamespaces" : "0",
- "Dist::Zilla::PluginBundle::Author::ETHER" : "0.019",
+ "Dist::Zilla::Plugin::Test::Compile" : "2.039",
+ "Dist::Zilla::Plugin::Test::Kwalitee" : "0",
+ "Dist::Zilla::Plugin::Test::MinimumVersion" : "2.000003",
+ "Dist::Zilla::Plugin::Test::NoTabs" : "0",
+ "Dist::Zilla::Plugin::Test::Pod::No404s" : "0",
+ "Dist::Zilla::Plugin::Test::PodSpelling" : "0",
+ "Dist::Zilla::Plugin::Test::Portability" : "0",
+ "Dist::Zilla::Plugin::Test::ReportPrereqs" : "0",
+ "Dist::Zilla::Plugin::TestRelease" : "0",
+ "Dist::Zilla::Plugin::UploadToCPAN" : "0",
+ "Dist::Zilla::PluginBundle::Author::ETHER" : "0.068",
"File::Spec" : "0",
"IO::AtomicFile" : "0",
"IO::File" : "0",
@@ -124,13 +197,14 @@
"Storable" : "0",
"Test::CPAN::Changes" : "0.19",
"Test::CPAN::Meta" : "0",
- "Test::CleanNamespaces" : ">= 0.04, != 0.06",
+ "Test::CleanNamespaces" : "0.15",
"Test::Deep::JSON" : "0",
- "Test::Kwalitee" : "1.12",
+ "Test::Kwalitee" : "1.21",
"Test::More" : "0.94",
"Test::NoTabs" : "0",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08",
+ "Test::Spelling" : "0.12",
"Test::Without::Module" : "0",
"YAML" : "0",
"YAML::Any" : "0",
@@ -166,17 +240,16 @@
},
"test" : {
"recommends" : {
- "CPAN::Meta" : "0",
- "CPAN::Meta::Requirements" : "2.120900",
+ "CPAN::Meta" : "2.120900",
"Digest::HMAC_SHA1" : "0",
"Test::Deep::JSON" : "0",
"Test::Without::Module" : "0"
},
"requires" : {
"ExtUtils::MakeMaker" : "0",
+ "File::Spec" : "0",
"File::Spec::Functions" : "0",
"File::Temp" : "0",
- "List::Util" : "0",
"Moose::Util::TypeConstraints" : "0",
"Test::Deep" : "0",
"Test::Fatal" : "0",
@@ -185,7 +258,6 @@
"overload" : "0",
"strict" : "0",
"utf8" : "0",
- "version" : "0",
"warnings" : "0"
}
}
@@ -193,91 +265,91 @@
"provides" : {
"Moose::Meta::Attribute::Custom::DoNotSerialize" : {
"file" : "lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"Moose::Meta::Attribute::Custom::Trait::DoNotSerialize" : {
"file" : "lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage" : {
"file" : "lib/MooseX/Storage.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Base::WithChecksum" : {
"file" : "lib/MooseX/Storage/Base/WithChecksum.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Basic" : {
"file" : "lib/MooseX/Storage/Basic.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Deferred" : {
"file" : "lib/MooseX/Storage/Deferred.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Engine" : {
"file" : "lib/MooseX/Storage/Engine.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Engine::IO::AtomicFile" : {
"file" : "lib/MooseX/Storage/Engine/IO/AtomicFile.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Engine::IO::File" : {
"file" : "lib/MooseX/Storage/Engine/IO/File.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Engine::Trait::DisableCycleDetection" : {
"file" : "lib/MooseX/Storage/Engine/Trait/DisableCycleDetection.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Engine::Trait::OnlyWhenBuilt" : {
"file" : "lib/MooseX/Storage/Engine/Trait/OnlyWhenBuilt.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Format::JSON" : {
"file" : "lib/MooseX/Storage/Format/JSON.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Format::Storable" : {
"file" : "lib/MooseX/Storage/Format/Storable.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Format::YAML" : {
"file" : "lib/MooseX/Storage/Format/YAML.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::IO::AtomicFile" : {
"file" : "lib/MooseX/Storage/IO/AtomicFile.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::IO::File" : {
"file" : "lib/MooseX/Storage/IO/File.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::IO::StorableFile" : {
"file" : "lib/MooseX/Storage/IO/StorableFile.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Meta::Attribute::DoNotSerialize" : {
"file" : "lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize" : {
"file" : "lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Traits::DisableCycleDetection" : {
"file" : "lib/MooseX/Storage/Traits/DisableCycleDetection.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Traits::OnlyWhenBuilt" : {
"file" : "lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm",
- "version" : "0.46"
+ "version" : "0.47"
},
"MooseX::Storage::Util" : {
"file" : "lib/MooseX/Storage/Util.pm",
- "version" : "0.46"
+ "version" : "0.47"
}
},
"release_status" : "stable",
@@ -295,16 +367,37 @@
"x_IRC" : "irc://irc.perl.org/#moose",
"x_MailingList" : "http://lists.perl.org/list/moose.html"
},
- "version" : "0.46",
+ "version" : "0.47",
"x_Dist_Zilla" : {
"perl" : {
- "version" : "5.019009"
+ "version" : "5.021003"
},
"plugins" : [
{
+ "class" : "Dist::Zilla::Plugin::Prereqs",
+ "config" : {
+ "Dist::Zilla::Plugin::Prereqs" : {
+ "phase" : "develop",
+ "type" : "requires"
+ }
+ },
+ "name" : "@Author::ETHER/bundle_plugins",
+ "version" : "5.020"
+ },
+ {
"class" : "Dist::Zilla::Plugin::Git::NextVersion",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::NextVersion" : {
+ "first_version" : "0.001",
+ "version_by_branch" : "0",
+ "version_regexp" : "(?^:^v([\\d._]+)(-TRIAL)?$)"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::NextVersion",
- "version" : "2.020"
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
@@ -319,8 +412,8 @@
"skip" : []
}
},
- "name" : "@Author::ETHER/build",
- "version" : "0.021"
+ "name" : "@Author::ETHER/stale modules, build",
+ "version" : "0.024"
},
{
"class" : "Dist::Zilla::Plugin::PromptIfStale",
@@ -333,53 +426,66 @@
"skip" : []
}
},
- "name" : "@Author::ETHER/release",
- "version" : "0.021"
+ "name" : "@Author::ETHER/stale modules, release",
+ "version" : "0.024"
},
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "@Author::ETHER/ExecDir",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::ShareDir",
"name" : "@Author::ETHER/ShareDir",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FileFinder::ByName",
"name" : "@Author::ETHER/Examples",
- "version" : "5.014"
+ "version" : "5.020"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::FileFinder::ByName",
+ "name" : "@Author::ETHER/ExtraTestFiles",
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::GatherDir",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::GatherDir" : {
+ "include_untracked" : "0"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::GatherDir",
- "version" : "2.020"
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "@Author::ETHER/MetaYAML",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "@Author::ETHER/MetaJSON",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "@Author::ETHER/License",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Readme",
"name" : "@Author::ETHER/Readme",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "@Author::ETHER/Manifest",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::GenerateFile::ShareDir",
@@ -388,6 +494,7 @@
"destination_filename" : "CONTRIBUTING",
"dist" : "Dist-Zilla-PluginBundle-Author-ETHER",
"encoding" : "UTF-8",
+ "has_xs" : 0,
"source_filename" : "CONTRIBUTING"
}
},
@@ -398,34 +505,43 @@
"class" : "Dist::Zilla::Plugin::Test::Compile",
"config" : {
"Dist::Zilla::Plugin::Test::Compile" : {
+ "bail_out_on_fail" : "1",
+ "fail_on_warning" : "author",
+ "fake_home" : "0",
"filename" : "xt/author/00-compile.t",
"module_finder" : [
":InstallModules"
],
+ "needs_display" : "0",
+ "phase" : "develop",
"script_finder" : [
":ExecFiles",
"@Author::ETHER/Examples"
+ ],
+ "skips" : [
+ "^MooseX::Storage::((Engine::)?IO::|Format::)"
]
}
},
"name" : "@Author::ETHER/Test::Compile",
- "version" : "2.039"
+ "version" : "2.046"
},
{
"class" : "Dist::Zilla::Plugin::Test::NoTabs",
"config" : {
"Dist::Zilla::Plugin::Test::NoTabs" : {
- "module_finder" : [
- ":InstallModules"
- ],
- "script_finder" : [
+ "filename" : "xt/author/no-tabs.t",
+ "finder" : [
+ ":InstallModules",
":ExecFiles",
- "@Author::ETHER/Examples"
+ "@Author::ETHER/Examples",
+ ":TestFiles",
+ "@Author::ETHER/ExtraTestFiles"
]
}
},
"name" : "@Author::ETHER/Test::NoTabs",
- "version" : "0.06"
+ "version" : "0.09"
},
{
"class" : "Dist::Zilla::Plugin::EOLTests",
@@ -435,12 +551,7 @@
{
"class" : "Dist::Zilla::Plugin::MetaTests",
"name" : "@Author::ETHER/MetaTests",
- "version" : "5.014"
- },
- {
- "class" : "Dist::Zilla::Plugin::Test::Version",
- "name" : "@Author::ETHER/Test::Version",
- "version" : "0.002004"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Test::CPAN::Changes",
@@ -453,11 +564,6 @@
"version" : "0.006"
},
{
- "class" : "Dist::Zilla::Plugin::Test::UnusedVars",
- "name" : "@Author::ETHER/Test::UnusedVars",
- "version" : "2.000005"
- },
- {
"class" : "Dist::Zilla::Plugin::Test::MinimumVersion",
"name" : "@Author::ETHER/Test::MinimumVersion",
"version" : "2.000005"
@@ -465,17 +571,17 @@
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "@Author::ETHER/PodSyntaxTests",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::PodCoverageTests",
"name" : "@Author::ETHER/PodCoverageTests",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Test::PodSpelling",
"name" : "@Author::ETHER/Test::PodSpelling",
- "version" : "2.006007"
+ "version" : "2.006008"
},
{
"class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
@@ -484,18 +590,24 @@
},
{
"class" : "Dist::Zilla::Plugin::Test::Kwalitee",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::Kwalitee" : {
+ "filename" : "xt/release/kwalitee.t",
+ "skiptest" : []
+ }
+ },
"name" : "@Author::ETHER/Test::Kwalitee",
- "version" : "2.07"
+ "version" : "2.10"
},
{
"class" : "Dist::Zilla::Plugin::MojibakeTests",
"name" : "@Author::ETHER/MojibakeTests",
- "version" : "0.5"
+ "version" : "0.7"
},
{
"class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
"name" : "@Author::ETHER/Test::ReportPrereqs",
- "version" : "0.013"
+ "version" : "0.019"
},
{
"class" : "Dist::Zilla::Plugin::Test::Portability",
@@ -510,7 +622,7 @@
{
"class" : "Dist::Zilla::Plugin::PkgVersion",
"name" : "@Author::ETHER/PkgVersion",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Authority",
@@ -612,35 +724,30 @@
"version" : "4.006"
},
{
- "class" : "Pod::Weaver::Plugin::StopWords",
- "name" : "-StopWords",
- "version" : "1.008"
- },
- {
"class" : "Pod::Weaver::Section::Contributors",
"name" : "Contributors",
- "version" : "0.007"
+ "version" : "0.008"
}
]
}
},
"name" : "@Author::ETHER/PodWeaver",
- "version" : "4.005"
+ "version" : "4.006"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@Author::ETHER/NextRelease",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"name" : "@Author::ETHER/ReadmeAnyFromPod",
- "version" : "0.133360"
+ "version" : "0.142250"
},
{
"class" : "Dist::Zilla::Plugin::GithubMeta",
"name" : "@Author::ETHER/GithubMeta",
- "version" : "0.42"
+ "version" : "0.46"
},
{
"class" : "Dist::Zilla::Plugin::AutoMetaResources",
@@ -650,7 +757,7 @@
{
"class" : "Dist::Zilla::Plugin::MetaNoIndex",
"name" : "@Author::ETHER/MetaNoIndex",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Package",
@@ -663,7 +770,7 @@
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "5.014"
+ "version" : "5.020"
}
]
},
@@ -674,22 +781,56 @@
}
},
"name" : "@Author::ETHER/MetaProvides::Package",
- "version" : "2.000001"
+ "version" : "2.000004"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "@Author::ETHER/MetaConfig",
- "version" : "5.014"
+ "version" : "5.020"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Keywords",
+ "config" : {
+ "Dist::Zilla::Plugin::Keywords" : {
+ "keywords" : [
+ "moose",
+ "extension",
+ "serial",
+ "serialization",
+ "class",
+ "object",
+ "store",
+ "storage",
+ "types",
+ "strings"
+ ]
+ }
+ },
+ "name" : "@Author::ETHER/Keywords",
+ "version" : "0.006"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Contributors",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Contributors" : {
+ "include_authors" : "0",
+ "include_releaser" : "1",
+ "order_by" : "commits",
+ "paths" : []
+ }
+ },
+ "name" : "@Author::ETHER/Git::Contributors",
+ "version" : "0.007"
},
{
"class" : "Dist::Zilla::Plugin::AutoPrereqs",
"name" : "@Author::ETHER/AutoPrereqs",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs::AuthorDeps",
"name" : "@Author::ETHER/Prereqs::AuthorDeps",
- "version" : "0.002"
+ "version" : "0.003"
},
{
"class" : "Dist::Zilla::Plugin::MinimumPerl",
@@ -701,57 +842,46 @@
"config" : {
"Dist::Zilla::Plugin::Prereqs" : {
"phase" : "develop",
- "type" : "requires"
- }
- },
- "name" : "@Author::ETHER/installer_requirements",
- "version" : "5.014"
- },
- {
- "class" : "Dist::Zilla::Plugin::Prereqs",
- "config" : {
- "Dist::Zilla::Plugin::Prereqs" : {
- "phase" : "develop",
"type" : "recommends"
}
},
"name" : "@Author::ETHER/pluginbundle_version",
- "version" : "5.014"
+ "version" : "5.020"
},
{
- "class" : "Dist::Zilla::Plugin::RunExtraTests",
+ "class" : "Dist::Zilla::Plugin::MakeMaker::Fallback",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
- "name" : "@Author::ETHER/RunExtraTests",
- "version" : "0.020"
+ "name" : "@Author::ETHER/MakeMaker::Fallback",
+ "version" : "0.013"
},
{
- "class" : "Dist::Zilla::Plugin::MakeMaker::Fallback",
+ "class" : "Dist::Zilla::Plugin::ModuleBuildTiny::Fallback",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
- "name" : "@Author::ETHER/MakeMaker::Fallback",
- "version" : "0.008"
+ "name" : "@Author::ETHER/ModuleBuildTiny::Fallback",
+ "version" : "0.005"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::InstallGuide",
+ "name" : "@Author::ETHER/InstallGuide",
+ "version" : "1.200003"
},
{
- "class" : "Dist::Zilla::Plugin::ModuleBuildTiny",
+ "class" : "Dist::Zilla::Plugin::RunExtraTests",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
"default_jobs" : 9
}
},
- "name" : "@Author::ETHER/ModuleBuildTiny",
- "version" : "0.006"
- },
- {
- "class" : "Dist::Zilla::Plugin::InstallGuide",
- "name" : "@Author::ETHER/InstallGuide",
- "version" : "1.200002"
+ "name" : "@Author::ETHER/RunExtraTests",
+ "version" : "0.022"
},
{
"class" : "Dist::Zilla::Plugin::CheckSelfDependency",
@@ -767,23 +897,58 @@
},
{
"class" : "Dist::Zilla::Plugin::Run::AfterBuild",
+ "config" : {
+ "Dist::Zilla::Plugin::Run::Role::Runner" : {
+ "run" : [
+ "bash -c \"if [[ `dirname %d` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi; if [[ %d =~ ^%n-[.[:xdigit:]]+$ ]]; then rm -f .latest; ln -s %d .latest; fi\""
+ ]
+ }
+ },
"name" : "@Author::ETHER/Run::AfterBuild",
- "version" : "0.021"
+ "version" : "0.023"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CheckStrictVersion",
+ "name" : "@Author::ETHER/CheckStrictVersion",
+ "version" : "0.001"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Check" : {
+ "untracked_files" : "die"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/initial check",
- "version" : "2.020"
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::CheckFor::MergeConflicts",
- "version" : "0.009"
+ "version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch",
+ "config" : {
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::CheckFor::CorrectBranch",
- "version" : "0.009"
+ "version" : "0.011"
},
{
"class" : "Dist::Zilla::Plugin::Git::Remote::Check",
@@ -793,83 +958,155 @@
{
"class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
"name" : "@Author::ETHER/CheckPrereqsIndexed",
- "version" : "0.010"
+ "version" : "0.012"
},
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "@Author::ETHER/TestRelease",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Git::Check",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Check" : {
+ "untracked_files" : "die"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/after tests",
- "version" : "2.020"
+ "version" : "2.023"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::CheckIssues",
+ "name" : "@Author::ETHER/CheckIssues",
+ "version" : "0.002"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "@Author::ETHER/UploadToCPAN",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::CopyFilesFromRelease",
"name" : "@Author::ETHER/CopyFilesFromRelease",
- "version" : "0.001"
+ "version" : "0.002"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Run::AfterRelease",
+ "config" : {
+ "Dist::Zilla::Plugin::Run::Role::Runner" : {
+ "run" : [
+ "rm -f README.md"
+ ]
+ }
+ },
+ "name" : "@Author::ETHER/remove old READMEs",
+ "version" : "0.023"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [
+ "."
+ ],
+ "commit_msg" : "%N-%v%t%n%n%c",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "Changes",
+ "README.md",
+ "README.pod",
+ "LICENSE",
+ "CONTRIBUTING"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::Commit",
- "version" : "2.020"
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Tag" : {
+ "branch" : null,
+ "signed" : 0,
+ "tag" : "v0.47",
+ "tag_format" : "v%v%t",
+ "tag_message" : "v%v%t",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::Tag",
- "version" : "2.020"
+ "version" : "2.023"
},
{
"class" : "Dist::Zilla::Plugin::GitHub::Update",
"name" : "@Author::ETHER/GitHub::Update",
- "version" : "0.36"
+ "version" : "0.38"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Push" : {
+ "push_to" : [
+ "origin"
+ ],
+ "remotes_must_exist" : 1
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
"name" : "@Author::ETHER/Git::Push",
- "version" : "2.020"
- },
- {
- "class" : "Dist::Zilla::Plugin::InstallRelease",
- "name" : "@Author::ETHER/InstallRelease",
- "version" : "0.008"
+ "version" : "2.023"
},
{
- "class" : "Dist::Zilla::Plugin::Prereqs",
+ "class" : "Dist::Zilla::Plugin::Run::AfterRelease",
"config" : {
- "Dist::Zilla::Plugin::Prereqs" : {
- "phase" : "develop",
- "type" : "requires"
+ "Dist::Zilla::Plugin::Run::Role::Runner" : {
+ "run" : "REDACTED"
}
},
- "name" : "@Author::ETHER/via_options",
- "version" : "5.014"
+ "name" : "@Author::ETHER/install release",
+ "version" : "0.023"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "@Author::ETHER/ConfirmRelease",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "MetaResources",
- "version" : "5.014"
- },
- {
- "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
- "name" : "ContributorsFromGit",
- "version" : "0.006"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::Test::CleanNamespaces",
+ "config" : {
+ "Dist::Zilla::Plugin::Test::CleanNamespaces" : {
+ "filename" : "xt/release/clean-namespaces.t",
+ "skips" : []
+ }
+ },
"name" : "Test::CleanNamespaces",
- "version" : "0.003"
+ "version" : "0.005"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs::Soften",
@@ -886,7 +1123,7 @@
}
},
"name" : "Prereqs::Soften",
- "version" : "0.004000"
+ "version" : "0.004002"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -905,7 +1142,7 @@
}
},
"name" : "JSON-Runtime",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -924,7 +1161,7 @@
}
},
"name" : "JSON-RuntimeRecommends",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -943,7 +1180,7 @@
}
},
"name" : "JSON-Test",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -962,7 +1199,7 @@
}
},
"name" : "YAML-Runtime",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -983,7 +1220,7 @@
}
},
"name" : "YAML-RuntimeRecommends",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -1002,7 +1239,7 @@
}
},
"name" : "YAML-Test",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -1021,7 +1258,7 @@
}
},
"name" : "Storable",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::OptionalFeature",
@@ -1041,57 +1278,57 @@
}
},
"name" : "File",
- "version" : "0.013"
+ "version" : "0.014"
},
{
"class" : "Dist::Zilla::Plugin::Test::CheckBreaks",
"name" : "Test::CheckBreaks",
- "version" : "0.007"
+ "version" : "0.009"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":AllFiles",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":NoFiles",
- "version" : "5.014"
+ "version" : "5.020"
},
{
"class" : "Dist::Zilla::Plugin::VerifyPhases",
"name" : "@Author::ETHER/PHASE VERIFICATION",
- "version" : "0.002"
+ "version" : "0.003"
}
],
"zilla" : {
@@ -1099,28 +1336,29 @@
"config" : {
"is_trial" : "0"
},
- "version" : "5.014"
+ "version" : "5.020"
}
},
"x_authority" : "cpan:STEVAN",
"x_contributors" : [
+ "Karen Etheridge <ether@cpan.org>",
+ "Tomas Doran <bobtfish@bobtfish.net>",
+ "Ricardo Signes <rjbs@cpan.org>",
"Chris Prather <chris@prather.org>",
- "Cory Watson <gphat@Crankwizzah.local>",
+ "Yuval Kogman <nothingmuch@woobling.org>",
+ "Jos Boumans <jos@dwim.org>",
+ "Shawn M Moore <sartak@gmail.com>",
+ "Jonathan Yu <frequency@cpan.org>",
+ "Robert Boone <robo4288@gmail.com>",
"Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>",
+ "Cory Watson <gphat@Crankwizzah.local>",
"Dan Brook <dan@broquaint.com>",
- "David Golden <dagolden@cpan.org>",
"David Steinbrunner <dsteinbrunner@pobox.com>",
- "Florian Ragwitz <rafl@debian.org>",
+ "Jason Pope <cowholio4@gmail.com>",
"Johannes Plunien <plu@pqpq.de>",
"Jonathan Rockway <jon@jrock.us>",
- "Jonathan Yu <frequency@cpan.org>",
- "Jos Boumans <jos@dwim.org>",
- "Karen Etheridge <ether@cpan.org>",
- "Ricardo Signes <rjbs@cpan.org>",
- "Robert Boone <robo4288@gmail.com>",
- "Shawn M Moore <sartak@gmail.com>",
- "Tomas Doran <bobtfish@bobtfish.net>",
- "Yuval Kogman <nothingmuch@woobling.org>"
+ "Florian Ragwitz <rafl@debian.org>",
+ "David Golden <dagolden@cpan.org>"
]
}
@@ -6,9 +6,9 @@ author:
- "יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>"
build_requires:
ExtUtils::MakeMaker: '0'
+ File::Spec: '0'
File::Spec::Functions: '0'
File::Temp: '0'
- List::Util: '0'
Moose::Util::TypeConstraints: '0'
Test::Deep: '0'
Test::Fatal: '0'
@@ -17,13 +17,23 @@ build_requires:
overload: '0'
strict: '0'
utf8: '0'
- version: '0'
warnings: '0'
configure_requires:
- ExtUtils::MakeMaker: '6.30'
- Module::Build::Tiny: '0.035'
+ ExtUtils::MakeMaker: '0'
+ Module::Build::Tiny: '0.037'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.014, CPAN::Meta::Converter version 2.140640'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
+keywords:
+ - moose
+ - extension
+ - serial
+ - serialization
+ - class
+ - object
+ - store
+ - storage
+ - types
+ - strings
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -60,70 +70,70 @@ optional_features:
provides:
Moose::Meta::Attribute::Custom::DoNotSerialize:
file: lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm
- version: '0.46'
+ version: '0.47'
Moose::Meta::Attribute::Custom::Trait::DoNotSerialize:
file: lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage:
file: lib/MooseX/Storage.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Base::WithChecksum:
file: lib/MooseX/Storage/Base/WithChecksum.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Basic:
file: lib/MooseX/Storage/Basic.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Deferred:
file: lib/MooseX/Storage/Deferred.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Engine:
file: lib/MooseX/Storage/Engine.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Engine::IO::AtomicFile:
file: lib/MooseX/Storage/Engine/IO/AtomicFile.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Engine::IO::File:
file: lib/MooseX/Storage/Engine/IO/File.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Engine::Trait::DisableCycleDetection:
file: lib/MooseX/Storage/Engine/Trait/DisableCycleDetection.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Engine::Trait::OnlyWhenBuilt:
file: lib/MooseX/Storage/Engine/Trait/OnlyWhenBuilt.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Format::JSON:
file: lib/MooseX/Storage/Format/JSON.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Format::Storable:
file: lib/MooseX/Storage/Format/Storable.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Format::YAML:
file: lib/MooseX/Storage/Format/YAML.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::IO::AtomicFile:
file: lib/MooseX/Storage/IO/AtomicFile.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::IO::File:
file: lib/MooseX/Storage/IO/File.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::IO::StorableFile:
file: lib/MooseX/Storage/IO/StorableFile.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Meta::Attribute::DoNotSerialize:
file: lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize:
file: lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Traits::DisableCycleDetection:
file: lib/MooseX/Storage/Traits/DisableCycleDetection.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Traits::OnlyWhenBuilt:
file: lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm
- version: '0.46'
+ version: '0.47'
MooseX::Storage::Util:
file: lib/MooseX/Storage/Util.pm
- version: '0.46'
+ version: '0.47'
recommends:
IO::AtomicFile: '0'
IO::File: '0'
@@ -152,15 +162,30 @@ resources:
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=MooseX-Storage
homepage: https://github.com/moose/MooseX-Storage
repository: https://github.com/moose/MooseX-Storage.git
-version: '0.46'
+version: '0.47'
x_Dist_Zilla:
perl:
- version: '5.019009'
+ version: '5.021003'
plugins:
-
+ class: Dist::Zilla::Plugin::Prereqs
+ config:
+ Dist::Zilla::Plugin::Prereqs:
+ phase: develop
+ type: requires
+ name: '@Author::ETHER/bundle_plugins'
+ version: '5.020'
+ -
class: Dist::Zilla::Plugin::Git::NextVersion
+ config:
+ Dist::Zilla::Plugin::Git::NextVersion:
+ first_version: '0.001'
+ version_by_branch: '0'
+ version_regexp: (?^:^v([\d._]+)(-TRIAL)?$)
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::NextVersion'
- version: '2.020'
+ version: '2.023'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
@@ -171,8 +196,8 @@ x_Dist_Zilla:
- Dist::Zilla::PluginBundle::Author::ETHER
phase: build
skip: []
- name: '@Author::ETHER/build'
- version: '0.021'
+ name: '@Author::ETHER/stale modules, build'
+ version: '0.024'
-
class: Dist::Zilla::Plugin::PromptIfStale
config:
@@ -182,44 +207,53 @@ x_Dist_Zilla:
modules: []
phase: release
skip: []
- name: '@Author::ETHER/release'
- version: '0.021'
+ name: '@Author::ETHER/stale modules, release'
+ version: '0.024'
-
class: Dist::Zilla::Plugin::ExecDir
name: '@Author::ETHER/ExecDir'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::ShareDir
name: '@Author::ETHER/ShareDir'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FileFinder::ByName
name: '@Author::ETHER/Examples'
- version: '5.014'
+ version: '5.020'
+ -
+ class: Dist::Zilla::Plugin::FileFinder::ByName
+ name: '@Author::ETHER/ExtraTestFiles'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Git::GatherDir
+ config:
+ Dist::Zilla::Plugin::Git::GatherDir:
+ include_untracked: '0'
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::GatherDir'
- version: '2.020'
+ version: '2.023'
-
class: Dist::Zilla::Plugin::MetaYAML
name: '@Author::ETHER/MetaYAML'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::MetaJSON
name: '@Author::ETHER/MetaJSON'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::License
name: '@Author::ETHER/License'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Readme
name: '@Author::ETHER/Readme'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Manifest
name: '@Author::ETHER/Manifest'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::GenerateFile::ShareDir
config:
@@ -227,6 +261,7 @@ x_Dist_Zilla:
destination_filename: CONTRIBUTING
dist: Dist-Zilla-PluginBundle-Author-ETHER
encoding: UTF-8
+ has_xs: 0
source_filename: CONTRIBUTING
name: '@Author::ETHER/generate CONTRIBUTING'
version: '0.005'
@@ -234,25 +269,34 @@ x_Dist_Zilla:
class: Dist::Zilla::Plugin::Test::Compile
config:
Dist::Zilla::Plugin::Test::Compile:
+ bail_out_on_fail: '1'
+ fail_on_warning: author
+ fake_home: '0'
filename: xt/author/00-compile.t
module_finder:
- ':InstallModules'
+ needs_display: '0'
+ phase: develop
script_finder:
- ':ExecFiles'
- '@Author::ETHER/Examples'
+ skips:
+ - ^MooseX::Storage::((Engine::)?IO::|Format::)
name: '@Author::ETHER/Test::Compile'
- version: '2.039'
+ version: '2.046'
-
class: Dist::Zilla::Plugin::Test::NoTabs
config:
Dist::Zilla::Plugin::Test::NoTabs:
- module_finder:
+ filename: xt/author/no-tabs.t
+ finder:
- ':InstallModules'
- script_finder:
- ':ExecFiles'
- '@Author::ETHER/Examples'
+ - ':TestFiles'
+ - '@Author::ETHER/ExtraTestFiles'
name: '@Author::ETHER/Test::NoTabs'
- version: '0.06'
+ version: '0.09'
-
class: Dist::Zilla::Plugin::EOLTests
name: '@Author::ETHER/EOLTests'
@@ -260,11 +304,7 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::MetaTests
name: '@Author::ETHER/MetaTests'
- version: '5.014'
- -
- class: Dist::Zilla::Plugin::Test::Version
- name: '@Author::ETHER/Test::Version'
- version: '0.002004'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Test::CPAN::Changes
name: '@Author::ETHER/Test::CPAN::Changes'
@@ -274,41 +314,41 @@ x_Dist_Zilla:
name: '@Author::ETHER/Test::ChangesHasContent'
version: '0.006'
-
- class: Dist::Zilla::Plugin::Test::UnusedVars
- name: '@Author::ETHER/Test::UnusedVars'
- version: '2.000005'
- -
class: Dist::Zilla::Plugin::Test::MinimumVersion
name: '@Author::ETHER/Test::MinimumVersion'
version: '2.000005'
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: '@Author::ETHER/PodSyntaxTests'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::PodCoverageTests
name: '@Author::ETHER/PodCoverageTests'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Test::PodSpelling
name: '@Author::ETHER/Test::PodSpelling'
- version: '2.006007'
+ version: '2.006008'
-
class: Dist::Zilla::Plugin::Test::Pod::No404s
name: '@Author::ETHER/Test::Pod::No404s'
version: '1.001'
-
class: Dist::Zilla::Plugin::Test::Kwalitee
+ config:
+ Dist::Zilla::Plugin::Test::Kwalitee:
+ filename: xt/release/kwalitee.t
+ skiptest: []
name: '@Author::ETHER/Test::Kwalitee'
- version: '2.07'
+ version: '2.10'
-
class: Dist::Zilla::Plugin::MojibakeTests
name: '@Author::ETHER/MojibakeTests'
- version: '0.5'
+ version: '0.7'
-
class: Dist::Zilla::Plugin::Test::ReportPrereqs
name: '@Author::ETHER/Test::ReportPrereqs'
- version: '0.013'
+ version: '0.019'
-
class: Dist::Zilla::Plugin::Test::Portability
name: '@Author::ETHER/Test::Portability'
@@ -320,7 +360,7 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::PkgVersion
name: '@Author::ETHER/PkgVersion'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Authority
name: '@Author::ETHER/Authority'
@@ -402,27 +442,23 @@ x_Dist_Zilla:
name: -Transformer
version: '4.006'
-
- class: Pod::Weaver::Plugin::StopWords
- name: -StopWords
- version: '1.008'
- -
class: Pod::Weaver::Section::Contributors
name: Contributors
- version: '0.007'
+ version: '0.008'
name: '@Author::ETHER/PodWeaver'
- version: '4.005'
+ version: '4.006'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@Author::ETHER/NextRelease'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
name: '@Author::ETHER/ReadmeAnyFromPod'
- version: '0.133360'
+ version: '0.142250'
-
class: Dist::Zilla::Plugin::GithubMeta
name: '@Author::ETHER/GithubMeta'
- version: '0.42'
+ version: '0.46'
-
class: Dist::Zilla::Plugin::AutoMetaResources
name: '@Author::ETHER/AutoMetaResources'
@@ -430,7 +466,7 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::MetaNoIndex
name: '@Author::ETHER/MetaNoIndex'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::MetaProvides::Package
config:
@@ -441,25 +477,52 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: '5.014'
+ version: '5.020'
Dist::Zilla::Role::MetaProvider::Provider:
inherit_missing: '1'
inherit_version: '1'
meta_noindex: '1'
name: '@Author::ETHER/MetaProvides::Package'
- version: '2.000001'
+ version: '2.000004'
-
class: Dist::Zilla::Plugin::MetaConfig
name: '@Author::ETHER/MetaConfig'
- version: '5.014'
+ version: '5.020'
+ -
+ class: Dist::Zilla::Plugin::Keywords
+ config:
+ Dist::Zilla::Plugin::Keywords:
+ keywords:
+ - moose
+ - extension
+ - serial
+ - serialization
+ - class
+ - object
+ - store
+ - storage
+ - types
+ - strings
+ name: '@Author::ETHER/Keywords'
+ version: '0.006'
+ -
+ class: Dist::Zilla::Plugin::Git::Contributors
+ config:
+ Dist::Zilla::Plugin::Git::Contributors:
+ include_authors: '0'
+ include_releaser: '1'
+ order_by: commits
+ paths: []
+ name: '@Author::ETHER/Git::Contributors'
+ version: '0.007'
-
class: Dist::Zilla::Plugin::AutoPrereqs
name: '@Author::ETHER/AutoPrereqs'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Prereqs::AuthorDeps
name: '@Author::ETHER/Prereqs::AuthorDeps'
- version: '0.002'
+ version: '0.003'
-
class: Dist::Zilla::Plugin::MinimumPerl
name: '@Author::ETHER/MinimumPerl'
@@ -469,42 +532,34 @@ x_Dist_Zilla:
config:
Dist::Zilla::Plugin::Prereqs:
phase: develop
- type: requires
- name: '@Author::ETHER/installer_requirements'
- version: '5.014'
- -
- class: Dist::Zilla::Plugin::Prereqs
- config:
- Dist::Zilla::Plugin::Prereqs:
- phase: develop
type: recommends
name: '@Author::ETHER/pluginbundle_version'
- version: '5.014'
- -
- class: Dist::Zilla::Plugin::RunExtraTests
- config:
- Dist::Zilla::Role::TestRunner:
- default_jobs: 9
- name: '@Author::ETHER/RunExtraTests'
- version: '0.020'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::MakeMaker::Fallback
config:
Dist::Zilla::Role::TestRunner:
default_jobs: 9
name: '@Author::ETHER/MakeMaker::Fallback'
- version: '0.008'
+ version: '0.013'
-
- class: Dist::Zilla::Plugin::ModuleBuildTiny
+ class: Dist::Zilla::Plugin::ModuleBuildTiny::Fallback
config:
Dist::Zilla::Role::TestRunner:
default_jobs: 9
- name: '@Author::ETHER/ModuleBuildTiny'
- version: '0.006'
+ name: '@Author::ETHER/ModuleBuildTiny::Fallback'
+ version: '0.005'
-
class: Dist::Zilla::Plugin::InstallGuide
name: '@Author::ETHER/InstallGuide'
- version: '1.200002'
+ version: '1.200003'
+ -
+ class: Dist::Zilla::Plugin::RunExtraTests
+ config:
+ Dist::Zilla::Role::TestRunner:
+ default_jobs: 9
+ name: '@Author::ETHER/RunExtraTests'
+ version: '0.022'
-
class: Dist::Zilla::Plugin::CheckSelfDependency
config:
@@ -515,20 +570,43 @@ x_Dist_Zilla:
version: '0.007'
-
class: Dist::Zilla::Plugin::Run::AfterBuild
+ config:
+ Dist::Zilla::Plugin::Run::Role::Runner:
+ run:
+ - "bash -c \"if [[ `dirname %d` != .build ]]; then test -e .ackrc && grep -q -- '--ignore-dir=%d' .ackrc || echo '--ignore-dir=%d' >> .ackrc; fi; if [[ %d =~ ^%n-[.[:xdigit:]]+$ ]]; then rm -f .latest; ln -s %d .latest; fi\""
name: '@Author::ETHER/Run::AfterBuild'
- version: '0.021'
+ version: '0.023'
+ -
+ class: Dist::Zilla::Plugin::CheckStrictVersion
+ name: '@Author::ETHER/CheckStrictVersion'
+ version: '0.001'
-
class: Dist::Zilla::Plugin::Git::Check
+ config:
+ Dist::Zilla::Plugin::Git::Check:
+ untracked_files: die
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty: []
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/initial check'
- version: '2.020'
+ version: '2.023'
-
class: Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::CheckFor::MergeConflicts'
- version: '0.009'
+ version: '0.011'
-
class: Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch
+ config:
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::CheckFor::CorrectBranch'
- version: '0.009'
+ version: '0.011'
-
class: Dist::Zilla::Plugin::Git::Remote::Check
name: '@Author::ETHER/Git::Remote::Check'
@@ -536,67 +614,117 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::CheckPrereqsIndexed
name: '@Author::ETHER/CheckPrereqsIndexed'
- version: '0.010'
+ version: '0.012'
-
class: Dist::Zilla::Plugin::TestRelease
name: '@Author::ETHER/TestRelease'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Git::Check
+ config:
+ Dist::Zilla::Plugin::Git::Check:
+ untracked_files: die
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty: []
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/after tests'
- version: '2.020'
+ version: '2.023'
+ -
+ class: Dist::Zilla::Plugin::CheckIssues
+ name: '@Author::ETHER/CheckIssues'
+ version: '0.002'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: '@Author::ETHER/UploadToCPAN'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::CopyFilesFromRelease
name: '@Author::ETHER/CopyFilesFromRelease'
- version: '0.001'
+ version: '0.002'
+ -
+ class: Dist::Zilla::Plugin::Run::AfterRelease
+ config:
+ Dist::Zilla::Plugin::Run::Role::Runner:
+ run:
+ - 'rm -f README.md'
+ name: '@Author::ETHER/remove old READMEs'
+ version: '0.023'
-
class: Dist::Zilla::Plugin::Git::Commit
+ config:
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in:
+ - .
+ commit_msg: '%N-%v%t%n%n%c'
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - Changes
+ - README.md
+ - README.pod
+ - LICENSE
+ - CONTRIBUTING
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::Commit'
- version: '2.020'
+ version: '2.023'
-
class: Dist::Zilla::Plugin::Git::Tag
+ config:
+ Dist::Zilla::Plugin::Git::Tag:
+ branch: ~
+ signed: 0
+ tag: v0.47
+ tag_format: v%v%t
+ tag_message: v%v%t
+ time_zone: local
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::Tag'
- version: '2.020'
+ version: '2.023'
-
class: Dist::Zilla::Plugin::GitHub::Update
name: '@Author::ETHER/GitHub::Update'
- version: '0.36'
+ version: '0.38'
-
class: Dist::Zilla::Plugin::Git::Push
+ config:
+ Dist::Zilla::Plugin::Git::Push:
+ push_to:
+ - origin
+ remotes_must_exist: 1
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
name: '@Author::ETHER/Git::Push'
- version: '2.020'
+ version: '2.023'
-
- class: Dist::Zilla::Plugin::InstallRelease
- name: '@Author::ETHER/InstallRelease'
- version: '0.008'
- -
- class: Dist::Zilla::Plugin::Prereqs
+ class: Dist::Zilla::Plugin::Run::AfterRelease
config:
- Dist::Zilla::Plugin::Prereqs:
- phase: develop
- type: requires
- name: '@Author::ETHER/via_options'
- version: '5.014'
+ Dist::Zilla::Plugin::Run::Role::Runner:
+ run: REDACTED
+ name: '@Author::ETHER/install release'
+ version: '0.023'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: '@Author::ETHER/ConfirmRelease'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::MetaResources
name: MetaResources
- version: '5.014'
- -
- class: Dist::Zilla::Plugin::ContributorsFromGit
- name: ContributorsFromGit
- version: '0.006'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::Test::CleanNamespaces
+ config:
+ Dist::Zilla::Plugin::Test::CleanNamespaces:
+ filename: xt/release/clean-namespaces.t
+ skips: []
name: Test::CleanNamespaces
- version: '0.003'
+ version: '0.005'
-
class: Dist::Zilla::Plugin::Prereqs::Soften
config:
@@ -608,7 +736,7 @@ x_Dist_Zilla:
modules_from_features: '1'
to_relationship: recommends
name: Prereqs::Soften
- version: '0.004000'
+ version: '0.004002'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -623,7 +751,7 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: JSON-Runtime
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -638,7 +766,7 @@ x_Dist_Zilla:
require_develop: '1'
type: recommends
name: JSON-RuntimeRecommends
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -653,7 +781,7 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: JSON-Test
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -668,7 +796,7 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: YAML-Runtime
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -685,7 +813,7 @@ x_Dist_Zilla:
require_develop: '1'
type: recommends
name: YAML-RuntimeRecommends
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -700,7 +828,7 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: YAML-Test
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -715,7 +843,7 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: Storable
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::OptionalFeature
config:
@@ -731,68 +859,69 @@ x_Dist_Zilla:
require_develop: '1'
type: requires
name: File
- version: '0.013'
+ version: '0.014'
-
class: Dist::Zilla::Plugin::Test::CheckBreaks
name: Test::CheckBreaks
- version: '0.007'
+ version: '0.009'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':AllFiles'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':NoFiles'
- version: '5.014'
+ version: '5.020'
-
class: Dist::Zilla::Plugin::VerifyPhases
name: '@Author::ETHER/PHASE VERIFICATION'
- version: '0.002'
+ version: '0.003'
zilla:
class: Dist::Zilla::Dist::Builder
config:
is_trial: '0'
- version: '5.014'
+ version: '5.020'
x_authority: cpan:STEVAN
x_contributors:
+ - 'Karen Etheridge <ether@cpan.org>'
+ - 'Tomas Doran <bobtfish@bobtfish.net>'
+ - 'Ricardo Signes <rjbs@cpan.org>'
- 'Chris Prather <chris@prather.org>'
- - 'Cory Watson <gphat@Crankwizzah.local>'
+ - 'Yuval Kogman <nothingmuch@woobling.org>'
+ - 'Jos Boumans <jos@dwim.org>'
+ - 'Shawn M Moore <sartak@gmail.com>'
+ - 'Jonathan Yu <frequency@cpan.org>'
+ - 'Robert Boone <robo4288@gmail.com>'
- 'Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>'
+ - 'Cory Watson <gphat@Crankwizzah.local>'
- 'Dan Brook <dan@broquaint.com>'
- - 'David Golden <dagolden@cpan.org>'
- 'David Steinbrunner <dsteinbrunner@pobox.com>'
- - 'Florian Ragwitz <rafl@debian.org>'
+ - 'Jason Pope <cowholio4@gmail.com>'
- 'Johannes Plunien <plu@pqpq.de>'
- 'Jonathan Rockway <jon@jrock.us>'
- - 'Jonathan Yu <frequency@cpan.org>'
- - 'Jos Boumans <jos@dwim.org>'
- - 'Karen Etheridge <ether@cpan.org>'
- - 'Ricardo Signes <rjbs@cpan.org>'
- - 'Robert Boone <robo4288@gmail.com>'
- - 'Shawn M Moore <sartak@gmail.com>'
- - 'Tomas Doran <bobtfish@bobtfish.net>'
- - 'Yuval Kogman <nothingmuch@woobling.org>'
+ - 'Florian Ragwitz <rafl@debian.org>'
+ - 'David Golden <dagolden@cpan.org>'
@@ -1,6 +1,6 @@
# This Makefile.PL for MooseX-Storage was generated by
-# Dist::Zilla::Plugin::MakeMaker::Fallback 0.008
-# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.20.
+# Dist::Zilla::Plugin::MakeMaker::Fallback 0.013
+# and Dist::Zilla::Plugin::MakeMaker::Awesome 0.24.
# Don't edit it but the dist.ini and plugins used to construct it.
use strict;
@@ -8,8 +8,8 @@ use warnings;
BEGIN {
my %configure_requires = (
- 'ExtUtils::MakeMaker' => '6.30',
- 'Module::Build::Tiny' => '0.035',
+ 'ExtUtils::MakeMaker' => '0',
+ 'Module::Build::Tiny' => '0.037',
);
my @missing = grep {
@@ -63,17 +63,16 @@ EOW
use 5.008;
-use ExtUtils::MakeMaker 6.30;
+use ExtUtils::MakeMaker;
my %WriteMakefileArgs = (
"ABSTRACT" => "A serialization framework for Moose classes",
"AUTHOR" => "Chris Prather <chris.prather\@iinteractive.com>, Stevan Little <stevan.little\@iinteractive.com>, \x{5d9}\x{5d5}\x{5d1}\x{5dc} \x{5e7}\x{5d5}\x{5d2}'\x{5de}\x{5df} (Yuval Kogman) <nothingmuch\@woobling.org>",
- "BUILD_REQUIRES" => {},
"CONFIGURE_REQUIRES" => {
- "ExtUtils::MakeMaker" => "6.30",
- "Module::Build::Tiny" => "0.035"
+ "ExtUtils::MakeMaker" => 0,
+ "Module::Build::Tiny" => "0.037"
},
"DISTNAME" => "MooseX-Storage",
"EXE_FILES" => [],
@@ -93,9 +92,9 @@ my %WriteMakefileArgs = (
},
"TEST_REQUIRES" => {
"ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
"File::Spec::Functions" => 0,
"File::Temp" => 0,
- "List::Util" => 0,
"Moose::Util::TypeConstraints" => 0,
"Test::Deep" => 0,
"Test::Fatal" => 0,
@@ -104,10 +103,9 @@ my %WriteMakefileArgs = (
"overload" => 0,
"strict" => 0,
"utf8" => 0,
- "version" => 0,
"warnings" => 0
},
- "VERSION" => "0.46",
+ "VERSION" => "0.47",
"test" => {
"TESTS" => "t/*.t"
}
@@ -119,9 +117,9 @@ my %FallbackPrereqs = (
"Data::Dumper" => 0,
"Digest" => 0,
"ExtUtils::MakeMaker" => 0,
+ "File::Spec" => 0,
"File::Spec::Functions" => 0,
"File::Temp" => 0,
- "List::Util" => 0,
"Module::Runtime" => 0,
"Moose" => "0.99",
"Moose::Meta::Attribute" => 0,
@@ -137,7 +135,6 @@ my %FallbackPrereqs = (
"overload" => 0,
"strict" => 0,
"utf8" => 0,
- "version" => 0,
"warnings" => 0
);
@@ -1,7 +1,7 @@
This archive contains the distribution MooseX-Storage,
-version 0.46:
+version 0.47:
A serialization framework for Moose classes
@@ -11,5 +11,5 @@ This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
-This README file was generated by Dist::Zilla::Plugin::Readme v5.014.
+This README file was generated by Dist::Zilla::Plugin::Readme v5.020.
@@ -1,257 +0,0 @@
-# NAME
-
-MooseX::Storage - A serialization framework for Moose classes
-
-# VERSION
-
-version 0.46
-
-# SYNOPSIS
-
- package Point;
- use Moose;
- use MooseX::Storage;
-
- with Storage('format' => 'JSON', 'io' => 'File');
-
- has 'x' => (is => 'rw', isa => 'Int');
- has 'y' => (is => 'rw', isa => 'Int');
-
- 1;
-
- my $p = Point->new(x => 10, y => 10);
-
- ## methods to pack/unpack an
- ## object in perl data structures
-
- # pack the class into a hash
- $p->pack(); # { __CLASS__ => 'Point-0.01', x => 10, y => 10 }
-
- # unpack the hash into a class
- my $p2 = Point->unpack({ __CLASS__ => 'Point-0.01', x => 10, y => 10 });
-
- ## methods to freeze/thaw into
- ## a specified serialization format
- ## (in this case JSON)
-
- # pack the class into a JSON string
- $p->freeze(); # { "__CLASS__" : "Point-0.01", "x" : 10, "y" : 10 }
-
- # unpack the JSON string into a class
- my $p2 = Point->thaw('{ "__CLASS__" : "Point-0.01", "x" : 10, "y" : 10 }');
-
- ## methods to load/store a class
- ## on the file system
-
- $p->store('my_point.json');
-
- my $p2 = Point->load('my_point.json');
-
-# DESCRIPTION
-
-MooseX::Storage is a serialization framework for Moose, it provides
-a very flexible and highly pluggable way to serialize Moose classes
-to a number of different formats and styles.
-
-## Levels of Serialization
-
-There are 3 levels to the serialization, each of which builds upon
-the other and each of which can be customized to the specific needs
-of your class.
-
-- __base__
-
- The first (base) level is `pack` and `unpack`. In this level the
- class is serialized into a Perl HASH reference, it is tagged with the
- class name and each instance attribute is stored. Very simple.
-
- This level is not optional, it is the bare minimum that
- MooseX::Storage provides and all other levels build on top of this.
-
- See [MooseX::Storage::Basic](https://metacpan.org/pod/MooseX::Storage::Basic) for the fundamental implementation and
- options to `pack` and `unpack`
-
-- __format__
-
- The second (format) level is `freeze` and `thaw`. In this level the
- output of `pack` is sent to `freeze` or the output of `thaw` is sent
- to `unpack`. This levels primary role is to convert to and from the
- specific serialization format and Perl land.
-
- This level is optional, if you don't want/need it, you don't have to
- have it. You can just use `pack`/`unpack` instead.
-
-- __io__
-
- The third (io) level is `load` and `store`. In this level we are reading
- and writing data to file/network/database/etc.
-
- This level is also optional, in most cases it does require a `format` role
- to also be used, the exception being the `StorableFile` role.
-
-## Behaviour modifiers
-
-The serialization behaviour can be changed by supplying `traits` to either
-the class or an individual attribute.
-
-This can be done as follows:
-
- use MooseX::Storage;
-
- # adjust behaviour for the entire class
- with Storage( traits => [Trait1, Trait2,...] );
-
- # adjust behaviour for an attribute
- has my_attr => (
- traits => [Trait1, Trait2, ...],
- ...
- );
-
-The following __class traits__ are currently bundled with [MooseX::Storage](https://metacpan.org/pod/MooseX::Storage):
-
-- OnlyWhenBuilt
-
- Only attributes that have been built (i.e., where the predicate returns
- 'true') will be serialized. This avoids any potentially expensive computations.
-
- See [MooseX::Storage::Traits::OnlyWhenBuilt](https://metacpan.org/pod/MooseX::Storage::Traits::OnlyWhenBuilt) for details.
-
-- DisableCycleDetection
-
- Disables the default checks for circular references, which is necessary if you
- use such references in your serialisable objects.
-
- See [MooseX::Storage::Traits::DisableCycleDetection](https://metacpan.org/pod/MooseX::Storage::Traits::DisableCycleDetection) for details.
-
-The following __attribute traits__ are currently bundled with [MooseX::Storage](https://metacpan.org/pod/MooseX::Storage):
-
-- DoNotSerialize
-
- Skip serialization entirely for this attribute.
-
- See [MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize](https://metacpan.org/pod/MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize) for details.
-
-## How we serialize
-
-There are always limits to any serialization framework, there are just
-some things which are really difficult to serialize properly and some
-things which cannot be serialized at all.
-
-## What can be serialized?
-
-Currently only numbers, string, ARRAY refs, HASH refs and other
-MooseX::Storage enabled objects are supported.
-
-With Array and Hash references the first level down is inspected and
-any objects found are serialized/deserialized for you. We do not do
-this recursively by default, however this feature may become an
-option eventually.
-
-The specific serialize/deserialize routine is determined by the
-Moose type constraint a specific attribute has. In most cases subtypes
-of the supported types are handled correctly, and there is a facility
-for adding handlers for custom types as well. This will get documented
-eventually, but it is currently still in development.
-
-## What can not be serialized?
-
-We do not support CODE references yet, but this support might be added
-in using B::Deparse or some other deep magic.
-
-Scalar refs are not supported, mostly because there is no way to know
-if the value being referenced will be there when the object is inflated.
-I highly doubt will be ever support this in a general sense, but it
-would be possible to add this yourself for a small specific case.
-
-Circular references are specifically disallowed, however if you break
-the cycles yourself then re-assemble them later you can get around this.
-The reason we disallow circular refs is because they are not always supported
-in all formats we use, and they tend to be very tricky to do for all
-possible cases. It is almost always something you want to have tight control
-over anyway.
-
-# CAVEAT
-
-This is __not__ a persistence framework; changes to your object after
-you load or store it will not be reflected in the stored class.
-
-# EXPORTS
-
-- __Storage (%options)__
-
- This module will export the `Storage` method and can be used to
- load a specific set of MooseX::Storage roles to implement a specific
- combination of features. It is meant to make things easier, but it
- is by no means the only way. You can still compose your roles by
- hand if you like.
-
- By default, options are assumed to be short forms. For example, this:
-
- Storage(format => 'JSON');
-
- ...will result in looking for MooseX::Storage::Format::JSON. To use a role
- that is not under the default namespace prefix, start with an equal sign:
-
- Storage(format => '=My::Private::JSONFormat');
-
- To use a parameterized role (for which, see [MooseX::Role::Parameterized](https://metacpan.org/pod/MooseX::Role::Parameterized)) you
- can pass an arrayref of the role name (in short or long form, as above) and its
- parameters:
-
- Storage(format => [ JSONpm => { json_opts => { pretty => 1 } } ]);
-
-# METHODS
-
-- __import__
-
-## Introspection
-
-- __meta__
-
-# TODO
-
-This module needs docs and probably a Cookbook of some kind as well.
-This is an early release, so that is my excuse for now :)
-
-For the time being, please read the tests and feel free to email me
-if you have any questions. This module can also be discussed on IRC
-in the #moose channel on irc.perl.org.
-
-# BUGS
-
-All complex software has bugs lurking in it, and this module is no
-exception. If you find a bug please either email me, or add the bug
-to cpan-RT.
-
-# AUTHORS
-
-- Chris Prather <chris.prather@iinteractive.com>
-- Stevan Little <stevan.little@iinteractive.com>
-- יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org>
-
-# COPYRIGHT AND LICENSE
-
-This software is copyright (c) 2007 by Infinity Interactive, Inc..
-
-This is free software; you can redistribute it and/or modify it under
-the same terms as the Perl 5 programming language system itself.
-
-# CONTRIBUTORS
-
-- Chris Prather <chris@prather.org>
-- Cory Watson <gphat@Crankwizzah.local>
-- Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
-- Dan Brook <dan@broquaint.com>
-- David Golden <dagolden@cpan.org>
-- David Steinbrunner <dsteinbrunner@pobox.com>
-- Florian Ragwitz <rafl@debian.org>
-- Johannes Plunien <plu@pqpq.de>
-- Jonathan Rockway <jon@jrock.us>
-- Jonathan Yu <frequency@cpan.org>
-- Jos Boumans <jos@dwim.org>
-- Karen Etheridge <ether@cpan.org>
-- Ricardo Signes <rjbs@cpan.org>
-- Robert Boone <robo4288@gmail.com>
-- Shawn M Moore <sartak@gmail.com>
-- Tomas Doran <bobtfish@bobtfish.net>
-- Yuval Kogman <nothingmuch@woobling.org>
@@ -1,9 +0,0 @@
----------------------------------------------------------------------
-:NOTES:
----------------------------------------------------------------------
-
-
-
-
-
-
@@ -9,7 +9,7 @@ license = Perl_5
:version = 5
[@Author::ETHER]
-:version = 0.019
+:version = 0.068
server = github
Authority.authority = cpan:STEVAN
Test::MinimumVersion.max_target_perl = 5.008003
@@ -19,6 +19,20 @@ Test::PodSpelling.stopwords = cpan
; cpantesters to barf in the compile tests
Test::Compile.skip[] = ^MooseX::Storage::((Engine::)?IO::|Format::)
AutoPrereqs.skip[0] = ^Class(One|Two)$
+Test::ReportPrereqs.include[0] = Dist::CheckConflicts
+Test::ReportPrereqs.include[1] = JSON
+Test::ReportPrereqs.include[2] = JSON::PP
+Test::ReportPrereqs.include[3] = JSON::DWIW
+Test::ReportPrereqs.include[4] = JSON::Syck
+Test::ReportPrereqs.include[5] = JSON::XS
+Test::ReportPrereqs.include[6] = Cpanel::JSON::XS
+Test::ReportPrereqs.include[7] = JSON::MaybeXS
+Test::ReportPrereqs.include[8] = YAML::XS
+Test::ReportPrereqs.include[9] = YAML::Syck
+Test::ReportPrereqs.include[10] = YAML::Old
+Test::ReportPrereqs.include[11] = YAML
+Test::ReportPrereqs.include[12] = YAML::Tiny
+Test::ReportPrereqs.include[13] = MooseX::Role::Parameterized
[MetaResources]
x_IRC = irc://irc.perl.org/#moose
@@ -27,8 +41,6 @@ x_MailingList = http://lists.perl.org/list/moose.html
; authordep Pod::Weaver = 4
; authordep Pod::Weaver::Section::Contributors
-[ContributorsFromGit]
-
[Test::CleanNamespaces]
[Prereqs::Soften]
@@ -1,9 +1,6 @@
package MooseX::Storage::Base::WithChecksum;
-BEGIN {
- $MooseX::Storage::Base::WithChecksum::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A more secure serialization role
-$MooseX::Storage::Base::WithChecksum::VERSION = '0.46';
+$MooseX::Storage::Base::WithChecksum::VERSION = '0.47';
use Moose::Role;
with 'MooseX::Storage::Basic';
@@ -102,19 +99,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Base::WithChecksum - A more secure serialization role
=head1 VERSION
-version 0.46
+version 0.47
=head1 DESCRIPTION
@@ -1,9 +1,6 @@
package MooseX::Storage::Basic;
-BEGIN {
- $MooseX::Storage::Basic::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: The simplest level of serialization
-$MooseX::Storage::Basic::VERSION = '0.46';
+$MooseX::Storage::Basic::VERSION = '0.47';
use Moose::Role;
use MooseX::Storage::Engine;
use String::RewritePrefix;
@@ -67,19 +64,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Basic - The simplest level of serialization
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::Deferred;
-BEGIN {
- $MooseX::Storage::Deferred::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A role for indecisive programmers
-$MooseX::Storage::Deferred::VERSION = '0.46';
+$MooseX::Storage::Deferred::VERSION = '0.47';
use Moose::Role;
with 'MooseX::Storage::Basic';
use Carp 'confess';
@@ -70,19 +67,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David JSONpm
-
=head1 NAME
MooseX::Storage::Deferred - A role for indecisive programmers
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -130,6 +121,8 @@ SYNOPSIS for more info)
=item I<JSON>
+=for stopwords JSONpm
+
=item I<JSONpm>
=item I<YAML>
@@ -1,9 +1,6 @@
package MooseX::Storage::Engine::IO::AtomicFile;
-BEGIN {
- $MooseX::Storage::Engine::IO::AtomicFile::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: The actual atomic file storage mechanism.
-$MooseX::Storage::Engine::IO::AtomicFile::VERSION = '0.46';
+$MooseX::Storage::Engine::IO::AtomicFile::VERSION = '0.47';
use Moose;
use IO::AtomicFile;
use Carp 'confess';
@@ -29,19 +26,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Engine::IO::AtomicFile - The actual atomic file storage mechanism.
=head1 VERSION
-version 0.46
+version 0.47
=head1 DESCRIPTION
@@ -1,9 +1,6 @@
package MooseX::Storage::Engine::IO::File;
-BEGIN {
- $MooseX::Storage::Engine::IO::File::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: The actual file storage mechanism.
-$MooseX::Storage::Engine::IO::File::VERSION = '0.46';
+$MooseX::Storage::Engine::IO::File::VERSION = '0.47';
use Moose;
use IO::File;
use Carp 'confess';
@@ -38,16 +35,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc.
-
=head1 NAME
MooseX::Storage::Engine::IO::File - The actual file storage mechanism.
=head1 VERSION
-version 0.46
+version 0.47
=head1 DESCRIPTION
@@ -1,9 +1,6 @@
package MooseX::Storage::Engine::Trait::DisableCycleDetection;
-BEGIN {
- $MooseX::Storage::Engine::Trait::DisableCycleDetection::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A custom trait to bypass cycle detection
-$MooseX::Storage::Engine::Trait::DisableCycleDetection::VERSION = '0.46';
+$MooseX::Storage::Engine::Trait::DisableCycleDetection::VERSION = '0.47';
use Moose::Role;
use namespace::autoclean;
@@ -21,19 +18,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Engine::Trait::DisableCycleDetection - A custom trait to bypass cycle detection
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::Engine::Trait::OnlyWhenBuilt;
-BEGIN {
- $MooseX::Storage::Engine::Trait::OnlyWhenBuilt::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: An engine trait to bypass serialization
-$MooseX::Storage::Engine::Trait::OnlyWhenBuilt::VERSION = '0.46';
+$MooseX::Storage::Engine::Trait::OnlyWhenBuilt::VERSION = '0.47';
use Moose::Role;
use namespace::autoclean;
@@ -30,19 +27,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Engine::Trait::OnlyWhenBuilt - An engine trait to bypass serialization
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::Engine;
-BEGIN {
- $MooseX::Storage::Engine::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: The meta-engine to handle collapsing and expanding objects
-$MooseX::Storage::Engine::VERSION = '0.46';
+$MooseX::Storage::Engine::VERSION = '0.47';
use Moose;
use Scalar::Util qw(refaddr blessed);
use Carp 'confess';
@@ -61,14 +58,16 @@ sub expand_object {
sub collapse_attribute {
my ($self, $attr, $options) = @_;
my $value = $self->collapse_attribute_value($attr, $options);
- return if !defined($value);
+
+ return unless $attr->has_value($self->object);
$self->storage->{$attr->name} = $value;
}
sub expand_attribute {
my ($self, $attr, $data, $options) = @_;
+ return unless exists $data->{$attr->name};
my $value = $self->expand_attribute_value($attr, $data->{$attr->name}, $options);
- $self->storage->{$attr->name} = defined $value ? $value : return;
+ $self->storage->{$attr->name} = $value;
}
sub collapse_attribute_value {
@@ -377,19 +376,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Engine - The meta-engine to handle collapsing and expanding objects
=head1 VERSION
-version 0.46
+version 0.47
=head1 DESCRIPTION
@@ -1,9 +1,6 @@
package MooseX::Storage::Format::JSON;
-BEGIN {
- $MooseX::Storage::Format::JSON::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A JSON serialization role
-$MooseX::Storage::Format::JSON::VERSION = '0.46';
+$MooseX::Storage::Format::JSON::VERSION = '0.47';
use Moose::Role;
use JSON::Any;
use namespace::autoclean;
@@ -34,19 +31,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::Format::JSON - A JSON serialization role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::Format::Storable;
-BEGIN {
- $MooseX::Storage::Format::Storable::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A Storable serialization role
-$MooseX::Storage::Format::Storable::VERSION = '0.46';
+$MooseX::Storage::Format::Storable::VERSION = '0.47';
use Moose::Role;
use Storable ();
use namespace::autoclean;
@@ -31,16 +28,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. IPC Storable's
-
=head1 NAME
MooseX::Storage::Format::Storable - A Storable serialization role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -68,10 +62,14 @@ version 0.46
=head1 DESCRIPTION
+=for stopwords IPC
+
This module will C<thaw> and C<freeze> Moose classes using Storable. It
uses C<Storable::nfreeze> by default so that it can be easily used
in IPC scenarios across machines or just locally.
+=for stopwords Storable's
+
One important thing to note is that this module does not mix well
with the IO modules. The structures that C<freeze> and C<thaw> deal with
are Storable's memory representation, and (as far as I know) that
@@ -1,9 +1,6 @@
package MooseX::Storage::Format::YAML;
-BEGIN {
- $MooseX::Storage::Format::YAML::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A YAML serialization role
-$MooseX::Storage::Format::YAML::VERSION = '0.46';
+$MooseX::Storage::Format::YAML::VERSION = '0.47';
use Moose::Role;
# When I add YAML::LibYAML
@@ -36,16 +33,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc.
-
=head1 NAME
MooseX::Storage::Format::YAML - A YAML serialization role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::IO::AtomicFile;
-BEGIN {
- $MooseX::Storage::IO::AtomicFile::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: An Atomic File I/O role
-$MooseX::Storage::IO::AtomicFile::VERSION = '0.46';
+$MooseX::Storage::IO::AtomicFile::VERSION = '0.47';
use Moose::Role;
use MooseX::Storage::Engine::IO::AtomicFile;
use namespace::autoclean;
@@ -25,19 +22,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::IO::AtomicFile - An Atomic File I/O role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::IO::File;
-BEGIN {
- $MooseX::Storage::IO::File::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A basic File I/O role
-$MooseX::Storage::IO::File::VERSION = '0.46';
+$MooseX::Storage::IO::File::VERSION = '0.47';
use Moose::Role;
use MooseX::Storage::Engine::IO::File;
use namespace::autoclean;
@@ -31,19 +28,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::IO::File - A basic File I/O role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::IO::StorableFile;
-BEGIN {
- $MooseX::Storage::IO::StorableFile::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: An Storable File I/O role
-$MooseX::Storage::IO::StorableFile::VERSION = '0.46';
+$MooseX::Storage::IO::StorableFile::VERSION = '0.47';
use Moose::Role;
use Storable ();
use namespace::autoclean;
@@ -39,19 +36,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David
-
=head1 NAME
MooseX::Storage::IO::StorableFile - An Storable File I/O role
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -1,9 +1,6 @@
package MooseX::Storage::Meta::Attribute::DoNotSerialize;
-BEGIN {
- $MooseX::Storage::Meta::Attribute::DoNotSerialize::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A custom meta-attribute to bypass serialization
-$MooseX::Storage::Meta::Attribute::DoNotSerialize::VERSION = '0.46';
+$MooseX::Storage::Meta::Attribute::DoNotSerialize::VERSION = '0.47';
use Moose;
use namespace::autoclean;
extends 'Moose::Meta::Attribute';
@@ -11,10 +8,7 @@ extends 'Moose::Meta::Attribute';
# register this alias ...
package Moose::Meta::Attribute::Custom::DoNotSerialize;
-BEGIN {
- $Moose::Meta::Attribute::Custom::DoNotSerialize::AUTHORITY = 'cpan:STEVAN';
-}
-$Moose::Meta::Attribute::Custom::DoNotSerialize::VERSION = '0.46';
+$Moose::Meta::Attribute::Custom::DoNotSerialize::VERSION = '0.47';
sub register_implementation { 'MooseX::Storage::Meta::Attribute::DoNotSerialize' }
1;
@@ -25,19 +19,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David culted
-
=head1 NAME
MooseX::Storage::Meta::Attribute::DoNotSerialize - A custom meta-attribute to bypass serialization
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -60,6 +48,8 @@ version 0.46
=head1 DESCRIPTION
+=for stopwords culted
+
Sometimes you don't want a particular attribute to be part of the
serialization, in this case, you want to make sure that attribute
uses this custom meta-attribute. See the SYNOPSIS for a nice example
@@ -1,18 +1,12 @@
package MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize;
-BEGIN {
- $MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A custom meta-attribute-trait to bypass serialization
-$MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize::VERSION = '0.46';
+$MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize::VERSION = '0.47';
use Moose::Role;
use namespace::autoclean;
# register this alias ...
package Moose::Meta::Attribute::Custom::Trait::DoNotSerialize;
-BEGIN {
- $Moose::Meta::Attribute::Custom::Trait::DoNotSerialize::AUTHORITY = 'cpan:STEVAN';
-}
-$Moose::Meta::Attribute::Custom::Trait::DoNotSerialize::VERSION = '0.46';
+$Moose::Meta::Attribute::Custom::Trait::DoNotSerialize::VERSION = '0.47';
sub register_implementation { 'MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize' }
1;
@@ -23,19 +17,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David culted
-
=head1 NAME
MooseX::Storage::Meta::Attribute::Trait::DoNotSerialize - A custom meta-attribute-trait to bypass serialization
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -58,6 +46,8 @@ version 0.46
=head1 DESCRIPTION
+=for stopwords culted
+
Sometimes you don't want a particular attribute to be part of the
serialization, in this case, you want to make sure that attribute
uses this custom meta-attribute-trait. See the SYNOPSIS for a nice
@@ -1,9 +1,6 @@
package MooseX::Storage::Traits::DisableCycleDetection;
-BEGIN {
- $MooseX::Storage::Traits::DisableCycleDetection::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A custom trait to bypass cycle detection
-$MooseX::Storage::Traits::DisableCycleDetection::VERSION = '0.46';
+$MooseX::Storage::Traits::DisableCycleDetection::VERSION = '0.47';
use Moose::Role;
use namespace::autoclean;
@@ -34,19 +31,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David culted
-
=head1 NAME
MooseX::Storage::Traits::DisableCycleDetection - A custom trait to bypass cycle detection
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -74,6 +65,8 @@ references, so if you know what you are doing, you can bypass this check.
This trait is applied to all objects that inherit from it. To use this
on a per-case basis, see C<disable_cycle_check> in L<MooseX::Storage::Basic>.
+=for stopwords culted
+
See the SYNOPSIS for a nice example that can be easily cargo-culted.
=head1 METHODS
@@ -1,9 +1,6 @@
package MooseX::Storage::Traits::OnlyWhenBuilt;
-BEGIN {
- $MooseX::Storage::Traits::OnlyWhenBuilt::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A custom trait to bypass serialization
-$MooseX::Storage::Traits::OnlyWhenBuilt::VERSION = '0.46';
+$MooseX::Storage::Traits::OnlyWhenBuilt::VERSION = '0.47';
use Moose::Role;
use namespace::autoclean;
@@ -34,19 +31,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David culted
-
=head1 NAME
MooseX::Storage::Traits::OnlyWhenBuilt - A custom trait to bypass serialization
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -80,6 +71,8 @@ as outlined in the C<Synopsis>, only attributes that have been built
(i.e., where the predicate returns 'true') will be serialized.
This avoids any potentially expensive computations.
+=for stopwords culted
+
See the SYNOPSIS for a nice example that can be easily cargo-culted.
=head1 METHODS
@@ -1,9 +1,6 @@
package MooseX::Storage::Util;
-BEGIN {
- $MooseX::Storage::Util::AUTHORITY = 'cpan:STEVAN';
-}
# ABSTRACT: A MooseX::Storage Swiss Army chainsaw
-$MooseX::Storage::Util::VERSION = '0.46';
+$MooseX::Storage::Util::VERSION = '0.47';
use Moose;
use MooseX::Storage::Engine ();
use Scalar::Util 'blessed';
@@ -71,19 +68,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David TODO
-
=head1 NAME
MooseX::Storage::Util - A MooseX::Storage Swiss Army chainsaw
=head1 VERSION
-version 0.46
+version 0.47
=head1 DESCRIPTION
@@ -136,6 +127,8 @@ found in the key for you.
=back
+=for stopwords TODO
+
=head1 TODO
Add more stuff to this module :)
@@ -1,10 +1,8 @@
package MooseX::Storage;
-BEGIN {
- $MooseX::Storage::AUTHORITY = 'cpan:STEVAN';
-}
-# git description: v0.45-17-g4a1dd0b
-$MooseX::Storage::VERSION = '0.46';
+# git description: v0.46-17-g342ddd4
+$MooseX::Storage::VERSION = '0.47';
# ABSTRACT: A serialization framework for Moose classes
+# KEYWORDS: moose extension serial serialization class object store storage types strings
use Moose 0.99;
use MooseX::Storage::Meta::Attribute::DoNotSerialize;
@@ -58,12 +56,11 @@ sub _expand_role {
my $class = $self->_rewrite_role_name($base, $value);
use_module($class);
- my $role = $class;
-
- if ($class->meta->isa(
- 'MooseX::Role::Parameterized::Meta::Role::Parameterizable'
- )) {
- $role = $class->meta->generate_role(parameters => undef);
+ if ($class->meta->isa('MooseX::Role::Parameterized::Meta::Role::Parameterizable')
+ or ($class->meta->meta->can('does_role')
+ && $class->meta->meta->does_role('MooseX::Role::Parameterized::Meta::Trait::Parameterizable'))
+ ) {
+ my $role = $class->meta->generate_role(parameters => undef);
$HORRIBLE_GC_AVOIDANCE_HACK{ $role->name } = $role;
return $role->name;
}
@@ -116,19 +113,13 @@ __END__
=encoding UTF-8
-=for :stopwords Chris Prather Stevan Little יובל קוג'מן (Yuval Kogman) Infinity
-Interactive, Inc. Golden Steinbrunner Florian Ragwitz Johannes Plunien
-Jonathan Rockway Yu Jos Boumans Karen Etheridge Ricardo Signes Robert Boone
-Shawn M Moore Cory Tomas Doran Yuval Kogman Watson Dagfinn Ilmari Mannsåker
-Dan Brook David io serialisable subtypes parameterized TODO
-
=head1 NAME
MooseX::Storage - A serialization framework for Moose classes
=head1 VERSION
-version 0.46
+version 0.47
=head1 SYNOPSIS
@@ -207,6 +198,8 @@ specific serialization format and Perl land.
This level is optional, if you don't want/need it, you don't have to
have it. You can just use C<pack>/C<unpack> instead.
+=for stopwords io
+
=item B<io>
The third (io) level is C<load> and C<store>. In this level we are reading
@@ -248,6 +241,8 @@ See L<MooseX::Storage::Traits::OnlyWhenBuilt> for details.
=item DisableCycleDetection
+=for stopwords serialisable
+
Disables the default checks for circular references, which is necessary if you
use such references in your serialisable objects.
@@ -283,6 +278,8 @@ any objects found are serialized/deserialized for you. We do not do
this recursively by default, however this feature may become an
option eventually.
+=for stopwords subtypes
+
The specific serialize/deserialize routine is determined by the
Moose type constraint a specific attribute has. In most cases subtypes
of the supported types are handled correctly, and there is a facility
@@ -332,6 +329,8 @@ that is not under the default namespace prefix, start with an equal sign:
Storage(format => '=My::Private::JSONFormat');
+=for stopwords parameterized
+
To use a parameterized role (for which, see L<MooseX::Role::Parameterized>) you
can pass an arrayref of the role name (in short or long form, as above) and its
parameters:
@@ -356,6 +355,8 @@ parameters:
=back
+=for stopwords TODO
+
=head1 TODO
This module needs docs and probably a Cookbook of some kind as well.
@@ -398,75 +399,81 @@ the same terms as the Perl 5 programming language system itself.
=head1 CONTRIBUTORS
+=for stopwords Karen Etheridge Tomas Doran Ricardo Signes Chris Prather Yuval Kogman Jos Boumans Shawn M Moore Jonathan Yu Robert Boone Dagfinn Ilmari Mannsåker Cory Watson Dan Brook David Steinbrunner Jason Pope Johannes Plunien Rockway Florian Ragwitz Golden
+
=over 4
=item *
-Chris Prather <chris@prather.org>
+Karen Etheridge <ether@cpan.org>
=item *
-Cory Watson <gphat@Crankwizzah.local>
+Tomas Doran <bobtfish@bobtfish.net>
=item *
-Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
+Ricardo Signes <rjbs@cpan.org>
=item *
-Dan Brook <dan@broquaint.com>
+Chris Prather <chris@prather.org>
=item *
-David Golden <dagolden@cpan.org>
+Yuval Kogman <nothingmuch@woobling.org>
=item *
-David Steinbrunner <dsteinbrunner@pobox.com>
+Jos Boumans <jos@dwim.org>
=item *
-Florian Ragwitz <rafl@debian.org>
+Shawn M Moore <sartak@gmail.com>
=item *
-Johannes Plunien <plu@pqpq.de>
+Jonathan Yu <frequency@cpan.org>
=item *
-Jonathan Rockway <jon@jrock.us>
+Robert Boone <robo4288@gmail.com>
=item *
-Jonathan Yu <frequency@cpan.org>
+Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
=item *
-Jos Boumans <jos@dwim.org>
+Cory Watson <gphat@Crankwizzah.local>
=item *
-Karen Etheridge <ether@cpan.org>
+Dan Brook <dan@broquaint.com>
=item *
-Ricardo Signes <rjbs@cpan.org>
+David Steinbrunner <dsteinbrunner@pobox.com>
=item *
-Robert Boone <robo4288@gmail.com>
+Jason Pope <cowholio4@gmail.com>
=item *
-Shawn M Moore <sartak@gmail.com>
+Johannes Plunien <plu@pqpq.de>
=item *
-Tomas Doran <bobtfish@bobtfish.net>
+Jonathan Rockway <jon@jrock.us>
=item *
-Yuval Kogman <nothingmuch@woobling.org>
+Florian Ragwitz <rafl@debian.org>
+
+=item *
+
+David Golden <dagolden@cpan.org>
=back
@@ -0,0 +1,166 @@
+do { my $x = {
+ 'configure' => {
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0',
+ 'Module::Build::Tiny' => '0.037'
+ }
+ },
+ 'develop' => {
+ 'recommends' => {
+ 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.072'
+ },
+ 'requires' => {
+ 'Digest::HMAC_SHA1' => '0',
+ 'Dist::Zilla' => '5',
+ 'Dist::Zilla::Plugin::Authority' => '0',
+ 'Dist::Zilla::Plugin::AutoMetaResources' => '0',
+ 'Dist::Zilla::Plugin::AutoPrereqs' => '0',
+ 'Dist::Zilla::Plugin::CheckIssues' => '0',
+ 'Dist::Zilla::Plugin::CheckPrereqsIndexed' => '0',
+ 'Dist::Zilla::Plugin::CheckSelfDependency' => '0',
+ 'Dist::Zilla::Plugin::CheckStrictVersion' => '0',
+ 'Dist::Zilla::Plugin::ConfirmRelease' => '0',
+ 'Dist::Zilla::Plugin::CopyFilesFromRelease' => '0',
+ 'Dist::Zilla::Plugin::EOLTests' => '0',
+ 'Dist::Zilla::Plugin::ExecDir' => '0',
+ 'Dist::Zilla::Plugin::FileFinder::ByName' => '0',
+ 'Dist::Zilla::Plugin::GenerateFile::ShareDir' => '0',
+ 'Dist::Zilla::Plugin::Git::Check' => '0',
+ 'Dist::Zilla::Plugin::Git::CheckFor::CorrectBranch' => '0.004',
+ 'Dist::Zilla::Plugin::Git::CheckFor::MergeConflicts' => '0',
+ 'Dist::Zilla::Plugin::Git::Commit' => '2.020',
+ 'Dist::Zilla::Plugin::Git::Contributors' => '0.004',
+ 'Dist::Zilla::Plugin::Git::Describe' => '0',
+ 'Dist::Zilla::Plugin::Git::GatherDir' => '2.016',
+ 'Dist::Zilla::Plugin::Git::NextVersion' => '0',
+ 'Dist::Zilla::Plugin::Git::Push' => '0',
+ 'Dist::Zilla::Plugin::Git::Remote::Check' => '0',
+ 'Dist::Zilla::Plugin::Git::Tag' => '0',
+ 'Dist::Zilla::Plugin::GitHub::Update' => '0',
+ 'Dist::Zilla::Plugin::GithubMeta' => '0',
+ 'Dist::Zilla::Plugin::InstallGuide' => '0',
+ 'Dist::Zilla::Plugin::Keywords' => '0.004',
+ 'Dist::Zilla::Plugin::License' => '0',
+ 'Dist::Zilla::Plugin::MakeMaker::Fallback' => '0.012',
+ 'Dist::Zilla::Plugin::Manifest' => '0',
+ 'Dist::Zilla::Plugin::MetaConfig' => '0',
+ 'Dist::Zilla::Plugin::MetaJSON' => '0',
+ 'Dist::Zilla::Plugin::MetaNoIndex' => '0',
+ 'Dist::Zilla::Plugin::MetaProvides::Package' => '1.15000002',
+ 'Dist::Zilla::Plugin::MetaResources' => '0',
+ 'Dist::Zilla::Plugin::MetaTests' => '0',
+ 'Dist::Zilla::Plugin::MetaYAML' => '0',
+ 'Dist::Zilla::Plugin::MinimumPerl' => '0',
+ 'Dist::Zilla::Plugin::ModuleBuildTiny::Fallback' => '0.005',
+ 'Dist::Zilla::Plugin::MojibakeTests' => '0',
+ 'Dist::Zilla::Plugin::NextRelease' => '4.300018',
+ 'Dist::Zilla::Plugin::OptionalFeature' => '0',
+ 'Dist::Zilla::Plugin::PkgVersion' => '5.010',
+ 'Dist::Zilla::Plugin::PodCoverageTests' => '0',
+ 'Dist::Zilla::Plugin::PodSyntaxTests' => '0',
+ 'Dist::Zilla::Plugin::PodWeaver' => '0',
+ 'Dist::Zilla::Plugin::Prereqs' => '0',
+ 'Dist::Zilla::Plugin::Prereqs::AuthorDeps' => '0',
+ 'Dist::Zilla::Plugin::Prereqs::Soften' => '0.004000',
+ 'Dist::Zilla::Plugin::PromptIfStale' => '0',
+ 'Dist::Zilla::Plugin::Readme' => '0',
+ 'Dist::Zilla::Plugin::ReadmeAnyFromPod' => '0.142180',
+ 'Dist::Zilla::Plugin::Run::AfterBuild' => '0',
+ 'Dist::Zilla::Plugin::Run::AfterRelease' => '0',
+ 'Dist::Zilla::Plugin::RunExtraTests' => '0.019',
+ 'Dist::Zilla::Plugin::ShareDir' => '0',
+ 'Dist::Zilla::Plugin::Test::CPAN::Changes' => '0.008',
+ 'Dist::Zilla::Plugin::Test::ChangesHasContent' => '0',
+ 'Dist::Zilla::Plugin::Test::CheckBreaks' => '0',
+ 'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0',
+ 'Dist::Zilla::Plugin::Test::Compile' => '2.039',
+ 'Dist::Zilla::Plugin::Test::Kwalitee' => '0',
+ 'Dist::Zilla::Plugin::Test::MinimumVersion' => '2.000003',
+ 'Dist::Zilla::Plugin::Test::NoTabs' => '0',
+ 'Dist::Zilla::Plugin::Test::Pod::No404s' => '0',
+ 'Dist::Zilla::Plugin::Test::PodSpelling' => '0',
+ 'Dist::Zilla::Plugin::Test::Portability' => '0',
+ 'Dist::Zilla::Plugin::Test::ReportPrereqs' => '0',
+ 'Dist::Zilla::Plugin::TestRelease' => '0',
+ 'Dist::Zilla::Plugin::UploadToCPAN' => '0',
+ 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.068',
+ 'File::Spec' => '0',
+ 'IO::AtomicFile' => '0',
+ 'IO::File' => '0',
+ 'IO::Handle' => '0',
+ 'IPC::Open3' => '0',
+ 'JSON::Any' => '1.15',
+ 'MooseX::Storage::Format::JSONpm' => '0',
+ 'Pod::Coverage::TrustPod' => '0',
+ 'Pod::Weaver' => '4',
+ 'Pod::Weaver::Section::Contributors' => '0',
+ 'Storable' => '0',
+ 'Test::CPAN::Changes' => '0.19',
+ 'Test::CPAN::Meta' => '0',
+ 'Test::CleanNamespaces' => '0.15',
+ 'Test::Deep::JSON' => '0',
+ 'Test::Kwalitee' => '1.21',
+ 'Test::More' => '0.94',
+ 'Test::NoTabs' => '0',
+ 'Test::Pod' => '1.41',
+ 'Test::Pod::Coverage' => '1.08',
+ 'Test::Spelling' => '0.12',
+ 'Test::Without::Module' => '0',
+ 'YAML' => '0',
+ 'YAML::Any' => '0',
+ 'YAML::Syck' => '0',
+ 'YAML::XS' => '0'
+ }
+ },
+ 'runtime' => {
+ 'recommends' => {
+ 'IO::AtomicFile' => '0',
+ 'IO::File' => '0',
+ 'JSON::Any' => '1.15',
+ 'MooseX::Storage::Format::JSONpm' => '0',
+ 'Storable' => '0',
+ 'YAML' => '0',
+ 'YAML::Any' => '0',
+ 'YAML::Syck' => '0',
+ 'YAML::XS' => '0'
+ },
+ 'requires' => {
+ 'Carp' => '0',
+ 'Data::Dumper' => '0',
+ 'Digest' => '0',
+ 'Module::Runtime' => '0',
+ 'Moose' => '0.99',
+ 'Moose::Meta::Attribute' => '0',
+ 'Moose::Role' => '0',
+ 'Scalar::Util' => '0',
+ 'String::RewritePrefix' => '0',
+ 'namespace::autoclean' => '0',
+ 'perl' => '5.008'
+ }
+ },
+ 'test' => {
+ 'recommends' => {
+ 'CPAN::Meta' => '2.120900',
+ 'Digest::HMAC_SHA1' => '0',
+ 'Test::Deep::JSON' => '0',
+ 'Test::Without::Module' => '0'
+ },
+ 'requires' => {
+ 'ExtUtils::MakeMaker' => '0',
+ 'File::Spec' => '0',
+ 'File::Spec::Functions' => '0',
+ 'File::Temp' => '0',
+ 'Moose::Util::TypeConstraints' => '0',
+ 'Test::Deep' => '0',
+ 'Test::Fatal' => '0',
+ 'Test::More' => '0',
+ 'Test::Requires' => '0',
+ 'overload' => '0',
+ 'strict' => '0',
+ 'utf8' => '0',
+ 'warnings' => '0'
+ }
+ }
+ };
+ $x;
+ }
\ No newline at end of file
@@ -3,236 +3,185 @@
use strict;
use warnings;
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.013
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
use Test::More tests => 1;
use ExtUtils::MakeMaker;
-use File::Spec::Functions;
-use List::Util qw/max/;
-use version;
+use File::Spec;
+
+# from $version::LAX
+my $lax_version_re =
+ qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
+ |
+ (?:\.[0-9]+) (?:_[0-9]+)?
+ ) | (?:
+ v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
+ |
+ (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
+ )
+ )/x;
# hide optional CPAN::Meta modules from prereq scanner
# and check if they are available
my $cpan_meta = "CPAN::Meta";
-my $cpan_meta_req = "CPAN::Meta::Requirements";
-my $HAS_CPAN_META = eval "require $cpan_meta"; ## no critic
-my $HAS_CPAN_META_REQ = eval "require $cpan_meta_req; $cpan_meta_req->VERSION('2.120900')";
+my $cpan_meta_pre = "CPAN::Meta::Prereqs";
+my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
# Verify requirements?
my $DO_VERIFY_PREREQS = 1;
-sub _merge_requires {
+sub _max {
+ my $max = shift;
+ $max = ( $_ > $max ) ? $_ : $max for @_;
+ return $max;
+}
+
+sub _merge_prereqs {
my ($collector, $prereqs) = @_;
- for my $phase ( qw/configure build test runtime develop/ ) {
- next unless exists $prereqs->{$phase};
- if ( my $req = $prereqs->{$phase}{'requires'} ) {
- my $cmr = CPAN::Meta::Requirements->from_string_hash( $req );
- $collector->add_requirements( $cmr );
+
+ # CPAN::Meta::Prereqs object
+ if (ref $collector eq $cpan_meta_pre) {
+ return $collector->with_merged_prereqs(
+ CPAN::Meta::Prereqs->new( $prereqs )
+ );
+ }
+
+ # Raw hashrefs
+ for my $phase ( keys %$prereqs ) {
+ for my $type ( keys %{ $prereqs->{$phase} } ) {
+ for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
+ $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
+ }
}
}
-}
-my %include = map {; $_ => 1 } qw(
+ return $collector;
+}
+my @include = qw(
+ Dist::CheckConflicts
+ YAML::Old
+ YAML
+ YAML::Tiny
+ MooseX::Role::Parameterized
+ JSON
+ JSON::PP
+ JSON::DWIW
+ JSON::Syck
+ JSON::XS
+ Cpanel::JSON::XS
+ JSON::MaybeXS
+ YAML::XS
+ YAML::Syck
);
-my %exclude = map {; $_ => 1 } qw(
+my @exclude = qw(
);
# Add static prereqs to the included modules list
-my $static_prereqs = do { my $x = {
- 'configure' => {
- 'requires' => {
- 'ExtUtils::MakeMaker' => '6.30',
- 'Module::Build::Tiny' => '0.035'
- }
- },
- 'develop' => {
- 'recommends' => {
- 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.054'
- },
- 'requires' => {
- 'Digest::HMAC_SHA1' => '0',
- 'Dist::Zilla' => '5.014',
- 'Dist::Zilla::Plugin::ContributorsFromGit' => '0',
- 'Dist::Zilla::Plugin::GitHub::Update' => '0',
- 'Dist::Zilla::Plugin::GithubMeta' => '0',
- 'Dist::Zilla::Plugin::MakeMaker::Fallback' => '0.008',
- 'Dist::Zilla::Plugin::MetaResources' => '0',
- 'Dist::Zilla::Plugin::ModuleBuildTiny' => '0.004',
- 'Dist::Zilla::Plugin::OptionalFeature' => '0',
- 'Dist::Zilla::Plugin::Prereqs::Soften' => '0.004000',
- 'Dist::Zilla::Plugin::Test::CheckBreaks' => '0',
- 'Dist::Zilla::Plugin::Test::CleanNamespaces' => '0',
- 'Dist::Zilla::PluginBundle::Author::ETHER' => '0.019',
- 'File::Spec' => '0',
- 'IO::AtomicFile' => '0',
- 'IO::File' => '0',
- 'IO::Handle' => '0',
- 'IPC::Open3' => '0',
- 'JSON::Any' => '1.15',
- 'MooseX::Storage::Format::JSONpm' => '0',
- 'Pod::Coverage::TrustPod' => '0',
- 'Pod::Weaver' => '4',
- 'Pod::Weaver::Section::Contributors' => '0',
- 'Storable' => '0',
- 'Test::CPAN::Changes' => '0.19',
- 'Test::CPAN::Meta' => '0',
- 'Test::CleanNamespaces' => '>= 0.04, != 0.06',
- 'Test::Deep::JSON' => '0',
- 'Test::Kwalitee' => '1.12',
- 'Test::More' => '0.94',
- 'Test::NoTabs' => '0',
- 'Test::Pod' => '1.41',
- 'Test::Pod::Coverage' => '1.08',
- 'Test::Without::Module' => '0',
- 'YAML' => '0',
- 'YAML::Any' => '0',
- 'YAML::Syck' => '0',
- 'YAML::XS' => '0'
- }
- },
- 'runtime' => {
- 'recommends' => {
- 'IO::AtomicFile' => '0',
- 'IO::File' => '0',
- 'JSON::Any' => '1.15',
- 'MooseX::Storage::Format::JSONpm' => '0',
- 'Storable' => '0',
- 'YAML' => '0',
- 'YAML::Any' => '0',
- 'YAML::Syck' => '0',
- 'YAML::XS' => '0'
- },
- 'requires' => {
- 'Carp' => '0',
- 'Data::Dumper' => '0',
- 'Digest' => '0',
- 'Module::Runtime' => '0',
- 'Moose' => '0.99',
- 'Moose::Meta::Attribute' => '0',
- 'Moose::Role' => '0',
- 'Scalar::Util' => '0',
- 'String::RewritePrefix' => '0',
- 'namespace::autoclean' => '0',
- 'perl' => '5.008'
- }
- },
- 'test' => {
- 'recommends' => {
- 'CPAN::Meta' => '0',
- 'CPAN::Meta::Requirements' => '2.120900',
- 'Digest::HMAC_SHA1' => '0',
- 'Test::Deep::JSON' => '0',
- 'Test::Without::Module' => '0'
- },
- 'requires' => {
- 'ExtUtils::MakeMaker' => '0',
- 'File::Spec::Functions' => '0',
- 'File::Temp' => '0',
- 'List::Util' => '0',
- 'Moose::Util::TypeConstraints' => '0',
- 'Test::Deep' => '0',
- 'Test::Fatal' => '0',
- 'Test::More' => '0',
- 'Test::Requires' => '0',
- 'overload' => '0',
- 'strict' => '0',
- 'utf8' => '0',
- 'version' => '0',
- 'warnings' => '0'
- }
- }
- };
- $x;
- };
-
-delete $static_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
-$include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$static_prereqs;
-
-# Merge requirements for major phases (if we can)
-my $all_requires;
-if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
- $all_requires = $cpan_meta_req->new;
- _merge_requires($all_requires, $static_prereqs);
-}
+my $static_prereqs = do 't/00-report-prereqs.dd';
+# Merge all prereqs (either with ::Prereqs or a hashref)
+my $full_prereqs = _merge_prereqs(
+ ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
+ $static_prereqs
+);
# Add dynamic prereqs to the included modules list (if we can)
my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
if ( $source && $HAS_CPAN_META ) {
- if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
- my $dynamic_prereqs = $meta->prereqs;
- delete $dynamic_prereqs->{develop} if not $ENV{AUTHOR_TESTING};
- $include{$_} = 1 for map { keys %$_ } map { values %$_ } values %$dynamic_prereqs;
-
- if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META_REQ ) {
- _merge_requires($all_requires, $dynamic_prereqs);
+ if ( my $meta = eval { CPAN::Meta->load_file($source) } ) {
+ $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
}
- }
}
else {
- $source = 'static metadata';
+ $source = 'static metadata';
}
-my @modules = sort grep { ! $exclude{$_} } keys %include;
-my @reports = [qw/Version Module/];
+my @full_reports;
my @dep_errors;
-my $req_hash = defined($all_requires) ? $all_requires->as_string_hash : {};
-
-for my $mod ( @modules ) {
- next if $mod eq 'perl';
- my $file = $mod;
- $file =~ s{::}{/}g;
- $file .= ".pm";
- my ($prefix) = grep { -e catfile($_, $file) } @INC;
- if ( $prefix ) {
- my $ver = MM->parse_version( catfile($prefix, $file) );
- $ver = "undef" unless defined $ver; # Newer MM should do this anyway
- push @reports, [$ver, $mod];
-
- if ( $DO_VERIFY_PREREQS && $all_requires ) {
- my $req = $req_hash->{$mod};
- if ( defined $req && length $req ) {
- if ( ! defined eval { version->parse($ver) } ) {
- push @dep_errors, "$mod version '$ver' cannot be parsed (version '$req' required)";
- }
- elsif ( ! $all_requires->accepts_module( $mod => $ver ) ) {
- push @dep_errors, "$mod version '$ver' is not in required range '$req'";
+my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
+
+# Add static includes into a fake section
+for my $mod (@include) {
+ $req_hash->{other}{modules}{$mod} = 0;
+}
+
+for my $phase ( qw(configure build test runtime develop other) ) {
+ next unless $req_hash->{$phase};
+ next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
+
+ for my $type ( qw(requires recommends suggests conflicts modules) ) {
+ next unless $req_hash->{$phase}{$type};
+
+ my $title = ucfirst($phase).' '.ucfirst($type);
+ my @reports = [qw/Module Want Have/];
+
+ for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
+ next if $mod eq 'perl';
+ next if grep { $_ eq $mod } @exclude;
+
+ my $file = $mod;
+ $file =~ s{::}{/}g;
+ $file .= ".pm";
+ my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
+
+ my $want = $req_hash->{$phase}{$type}{$mod};
+ $want = "undef" unless defined $want;
+ $want = "any" if !$want && $want == 0;
+
+ my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
+
+ if ($prefix) {
+ my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
+ $have = "undef" unless defined $have;
+ push @reports, [$mod, $want, $have];
+
+ if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
+ if ( $have !~ /\A$lax_version_re\z/ ) {
+ push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
+ }
+ elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
+ push @dep_errors, "$mod version '$have' is not in required range '$want'";
+ }
+ }
+ }
+ else {
+ push @reports, [$mod, $want, "missing"];
+
+ if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
+ push @dep_errors, "$mod is not installed ($req_string)";
+ }
+ }
}
- }
- }
- }
- else {
- push @reports, ["missing", $mod];
+ if ( @reports ) {
+ push @full_reports, "=== $title ===\n\n";
- if ( $DO_VERIFY_PREREQS && $all_requires ) {
- my $req = $req_hash->{$mod};
- if ( defined $req && length $req ) {
- push @dep_errors, "$mod is not installed (version '$req' required)";
- }
+ my $ml = _max( map { length $_->[0] } @reports );
+ my $wl = _max( map { length $_->[1] } @reports );
+ my $hl = _max( map { length $_->[2] } @reports );
+ splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
+
+ push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
+ push @full_reports, "\n";
+ }
}
- }
}
-if ( @reports ) {
- my $vl = max map { length $_->[0] } @reports;
- my $ml = max map { length $_->[1] } @reports;
- splice @reports, 1, 0, ["-" x $vl, "-" x $ml];
- diag "\nVersions for all modules listed in $source (including optional ones):\n",
- map {sprintf(" %*s %*s\n",$vl,$_->[0],-$ml,$_->[1])} @reports;
+if ( @full_reports ) {
+ diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
}
if ( @dep_errors ) {
- diag join("\n",
- "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
- "The following REQUIRED prerequisites were not satisfied:\n",
- @dep_errors,
- "\n"
- );
+ diag join("\n",
+ "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
+ "The following REQUIRED prerequisites were not satisfied:\n",
+ @dep_errors,
+ "\n"
+ );
}
pass;
@@ -9,7 +9,6 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
@@ -10,6 +10,7 @@ use File::Spec::Functions;
my $dir = tempdir;
use Test::Requires 'JSON::Any';
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
plan tests => 10;
@@ -63,4 +64,3 @@ my $file = catfile($dir, 'temp.json');
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
@@ -17,7 +17,6 @@ cases.
=cut
{
-
package Foo;
use Moose;
use Moose::Util::TypeConstraints;
@@ -93,7 +93,6 @@ ArrayRef and HashRef type handlers.
}
}
-
{
my $baz = Baz->new(
bars => { map { ($_ => Bar->new(number => $_)) } (1 .. 10) }
@@ -15,7 +15,6 @@ BEGIN {
# - you can use a special metaclass to tell MooseX::Storage to skip an attribute
{
-
package Circular;
use Moose;
use MooseX::Storage;
@@ -48,7 +47,6 @@ BEGIN {
}
{
-
package Tree;
use Moose;
use MooseX::Storage;
@@ -153,7 +151,6 @@ BEGIN {
ok( $pack, " Object packs when cycle check is disabled");
ok( Double->unpack( $pack ),
" And unpacked again" );
-
}
### the same as above, but now done with a trait
@@ -86,8 +86,3 @@ $foo->pack,
is($foo->bar->baz, 'BAZ', '... got the right stuff');
is($foo->bar->boo, 'BOO', '... got the right stuff');
}
-
-
-
-
-
@@ -9,7 +9,6 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
@@ -94,8 +94,3 @@ BEGIN {
my $bar2 = Bar->unpack( $bpack, inject => { foo => bless {} } );
ok( $bar2, " Unpacked correctly with foo => Object");
}
-
-
-
-
-
@@ -8,6 +8,7 @@ use Test::Requires qw(
JSON::Any
Test::Deep::JSON
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
plan tests => 11;
@@ -15,7 +16,6 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
@@ -82,4 +82,3 @@ BEGIN {
is( $foo->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -16,6 +16,11 @@ use Test::Requires qw(
Encode
JSON::Any
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
+
+binmode $_, ':utf8' foreach map { Test::Builder->new->$_ } qw(output failure_output todo_output);
+binmode STDOUT, ':utf8';
+binmode STDERR, ':utf8';
plan tests => 16;
use_ok('MooseX::Storage');
@@ -36,7 +36,6 @@ BEGIN {
-1,
"there are newlines in our JSON, because it is pretty",
) or diag $json;
-
}
{
@@ -10,6 +10,7 @@ use Test::Requires qw(
YAML
Test::Without::Module
);
+diag 'using YAML backend: ', YAML::Any->implementation;
BEGIN {
Test::Without::Module->import(YAML::Any->order);
@@ -19,7 +20,6 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
@@ -64,4 +64,3 @@ BEGIN {
is( $bar->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -10,6 +10,7 @@ use Test::Requires qw(
YAML::Syck
Test::Without::Module
);
+diag 'using YAML backend: ', YAML::Any->implementation;
BEGIN {
Test::Without::Module->import(YAML::Any->order);
@@ -63,4 +64,3 @@ BEGIN {
is( $bar->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -10,6 +10,7 @@ use Test::Requires qw(
YAML::XS
Test::Without::Module
);
+diag 'using YAML backend: ', YAML::Any->implementation;
BEGIN {
Test::Without::Module->import(YAML::Any->order);
@@ -63,4 +64,3 @@ BEGIN {
is( $bar->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -9,6 +9,7 @@ use Test::Requires qw(
Digest::HMAC_SHA1
JSON::Any
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
plan tests => 26;
@@ -82,5 +82,3 @@ SKIP: {
is('Foo', $classname,
'... got the right class name from the yaml item');
}
-
-
@@ -2,7 +2,7 @@ $|++;
use strict;
use warnings;
-use Test::More tests => 11;
+use Test::More tests => 15;
use Test::Deep;
use Storable;
@@ -11,13 +11,14 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
with Storage( 'format' => 'Storable' );
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => ( is => 'ro', isa => 'Int' );
has 'string' => ( is => 'ro', isa => 'Str' );
has 'float' => ( is => 'ro', isa => 'Num' );
@@ -28,6 +29,7 @@ BEGIN {
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -44,9 +46,10 @@ BEGIN {
$struct,
{
'__CLASS__' => 'Foo',
- 'float' => 10.5,
+ 'undef' => undef,
'number' => 10,
'string' => 'foo',
+ 'float' => 10.5,
'array' => [ 1 .. 10],
'hash' => { map { $_ => undef } 1 .. 10 },
'object' => {
@@ -61,9 +64,10 @@ BEGIN {
{
my $stored = Storable::nfreeze({
'__CLASS__' => 'Foo',
- 'float' => 10.5,
+ 'undef' => undef,
'number' => 10,
'string' => 'foo',
+ 'float' => 10.5,
'array' => [ 1 .. 10],
'hash' => { map { $_ => undef } 1 .. 10 },
'object' => {
@@ -75,6 +79,10 @@ BEGIN {
my $foo = Foo->thaw($stored);
isa_ok( $foo, 'Foo' );
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is( $foo->number, 10, '... got the right number' );
is( $foo->string, 'foo', '... got the right string' );
is( $foo->float, 10.5, '... got the right float' );
@@ -89,4 +97,3 @@ BEGIN {
is( $foo->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -11,14 +11,14 @@ use Test::Requires qw(
JSON::Any
YAML::Any
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
+diag 'using YAML backend: ', YAML::Any->implementation;
BEGIN {
- plan tests => 30;
+ plan tests => 34;
use_ok('MooseX::Storage');
}
-diag('Using implementation: ', YAML::Any->implementation);
-
{
package Foo;
use Moose;
@@ -26,6 +26,8 @@ diag('Using implementation: ', YAML::Any->implementation);
with 'MooseX::Storage::Deferred';
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => ( is => 'ro', isa => 'Int' );
has 'string' => ( is => 'ro', isa => 'Str' );
has 'float' => ( is => 'ro', isa => 'Num' );
@@ -36,6 +38,7 @@ diag('Using implementation: ', YAML::Any->implementation);
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -50,6 +53,7 @@ diag('Using implementation: ', YAML::Any->implementation);
cmp_deeply(
$json,
json({
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -89,6 +93,7 @@ diag('Using implementation: ', YAML::Any->implementation);
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -105,8 +110,9 @@ diag('Using implementation: ', YAML::Any->implementation);
$struct,
{
'__CLASS__' => 'Foo',
- 'float' => 10.5,
+ 'undef' => undef,
'number' => 10,
+ 'float' => 10.5,
'string' => 'foo',
'array' => [ 1 .. 10],
'hash' => { map { $_ => undef } 1 .. 10 },
@@ -122,9 +128,10 @@ diag('Using implementation: ', YAML::Any->implementation);
{
my $stored = Storable::nfreeze({
'__CLASS__' => 'Foo',
- 'float' => 10.5,
+ 'undef' => undef,
'number' => 10,
'string' => 'foo',
+ 'float' => 10.5,
'array' => [ 1 .. 10],
'hash' => { map { $_ => undef } 1 .. 10 },
'object' => {
@@ -153,6 +160,7 @@ diag('Using implementation: ', YAML::Any->implementation);
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -167,6 +175,10 @@ diag('Using implementation: ', YAML::Any->implementation);
my $bar = Foo->thaw( $yaml, { 'format' => 'YAML' } );
isa_ok( $bar, 'Foo' );
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is( $bar->number, 10, '... got the right number' );
is( $bar->string, 'foo', '... got the right string' );
is( $bar->float, 10.5, '... got the right float' );
@@ -181,4 +193,3 @@ diag('Using implementation: ', YAML::Any->implementation);
is( $bar->object->number, 2,
'... got the right number (in the embedded object)' );
}
-
@@ -12,9 +12,10 @@ use Test::Requires qw(
IO::AtomicFile
JSON::Any
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
- plan tests => 20;
+ plan tests => 24;
use_ok('MooseX::Storage');
}
@@ -25,6 +26,8 @@ BEGIN {
with 'MooseX::Storage::Deferred';
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'ro', isa => 'Str');
has 'float' => (is => 'ro', isa => 'Num');
@@ -37,6 +40,7 @@ my $file = catfile($dir, 'temp.json');
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -68,6 +72,7 @@ ok(!(-e $file), '... the file has been deleted');
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -84,6 +89,10 @@ ok(!(-e $file), '... the file has been deleted');
my $foo = Foo->load($file, { format => 'JSON', io => 'AtomicFile' });
isa_ok($foo, 'Foo');
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is($foo->number, 10, '... got the right number');
is($foo->string, 'foo', '... got the right string');
is($foo->float, 10.5, '... got the right float');
@@ -93,5 +102,3 @@ ok(!(-e $file), '... the file has been deleted');
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
-
@@ -1,7 +1,7 @@
use strict;
use warnings;
-use Test::More tests => 22;
+use Test::More tests => 30;
use Test::Deep;
BEGIN {
@@ -9,13 +9,14 @@ BEGIN {
}
{
-
package Foo;
use Moose;
use MooseX::Storage;
with Storage;
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => ( is => 'ro', isa => 'Maybe[Int]' );
has 'string' => ( is => 'ro', isa => 'Maybe[Str]' );
has 'boolean' => ( is => 'ro', isa => 'Maybe[Bool]' );
@@ -27,6 +28,7 @@ BEGIN {
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
boolean => 1,
@@ -41,6 +43,7 @@ BEGIN {
$foo->pack,
{
__CLASS__ => 'Foo',
+ undef => undef,
number => 10,
string => 'foo',
boolean => 1,
@@ -60,6 +63,7 @@ BEGIN {
my $foo = Foo->unpack(
{
__CLASS__ => 'Foo',
+ undef => undef,
number => 10,
string => 'foo',
boolean => 1,
@@ -74,6 +78,10 @@ BEGIN {
);
isa_ok( $foo, 'Foo' );
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is( $foo->number, 10, '... got the right number' );
is( $foo->string, 'foo', '... got the right string' );
ok( $foo->boolean, '... got the right boolean' );
@@ -90,7 +98,6 @@ BEGIN {
'... got the right number (in the embedded object)' );
}
-
{
package Foo;
@@ -122,6 +129,8 @@ BEGIN {
=> as 'HashRef'
=> where { scalar grep { !defined($_) } values %{$_} };
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => ( is => 'ro', isa => 'Maybe[Natural]' );
has 'string' => ( is => 'ro', isa => 'Maybe[FooString]' );
has 'float' => ( is => 'ro', isa => 'Maybe[HalfNum]' );
@@ -132,6 +141,7 @@ BEGIN {
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -145,6 +155,7 @@ BEGIN {
$foo->pack,
{
__CLASS__ => 'Foo',
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -163,6 +174,7 @@ BEGIN {
my $foo = Foo->unpack(
{
__CLASS__ => 'Foo',
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -176,6 +188,10 @@ BEGIN {
);
isa_ok( $foo, 'Foo' );
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is( $foo->number, 10, '... got the right number' );
is( $foo->string, 'foo', '... got the right string' );
is( $foo->float, 10.5, '... got the right float' );
@@ -8,9 +8,10 @@ use File::Spec::Functions;
my $dir = tempdir;
use Test::Requires 'JSON::Any';
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
- plan tests => 10;
+ plan tests => 14;
use_ok('MooseX::Storage');
}
@@ -21,6 +22,8 @@ BEGIN {
with Storage(format => 'JSON', io => 'File');
+ has 'unset' => (is => 'ro', isa => 'Any');
+ has 'undef' => (is => 'ro', isa => 'Any');
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'ro', isa => 'Str');
has 'float' => (is => 'ro', isa => 'Num');
@@ -33,6 +36,7 @@ my $file = catfile( $dir, 'temp.json' );
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -49,6 +53,10 @@ my $file = catfile( $dir, 'temp.json' );
my $foo = Foo->load($file);
isa_ok($foo, 'Foo');
+ is($foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is($foo->undef, undef, '... got the right undef value');
+ ok($foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is($foo->number, 10, '... got the right number');
is($foo->string, 'foo', '... got the right string');
is($foo->float, 10.5, '... got the right float');
@@ -58,4 +66,3 @@ my $file = catfile( $dir, 'temp.json' );
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
@@ -11,9 +11,10 @@ use Test::Requires qw(
JSON::Any
IO::AtomicFile
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
BEGIN {
- plan tests => 10;
+ plan tests => 14;
use_ok('MooseX::Storage');
}
@@ -24,6 +25,8 @@ BEGIN {
with Storage(format => 'JSON', io => 'AtomicFile');
+ has 'unset' => (is => 'ro', isa => 'Any');
+ has 'undef' => (is => 'ro', isa => 'Any');
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'ro', isa => 'Str');
has 'float' => (is => 'ro', isa => 'Num');
@@ -36,6 +39,7 @@ my $file = catfile($dir,'temp.json');
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -52,6 +56,10 @@ my $file = catfile($dir,'temp.json');
my $foo = Foo->load($file);
isa_ok($foo, 'Foo');
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is($foo->number, 10, '... got the right number');
is($foo->string, 'foo', '... got the right string');
is($foo->float, 10.5, '... got the right float');
@@ -61,4 +69,3 @@ my $file = catfile($dir,'temp.json');
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
@@ -1,7 +1,7 @@
use strict;
use warnings;
-use Test::More tests => 10;
+use Test::More tests => 14;
use Test::Deep;
use File::Temp qw(tempdir);
use File::Spec::Functions;
@@ -18,6 +18,8 @@ BEGIN {
with Storage(io => 'StorableFile');
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'ro', isa => 'Str');
has 'float' => (is => 'ro', isa => 'Num');
@@ -30,6 +32,7 @@ my $file = catfile($dir,'temp.storable');
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -46,6 +49,10 @@ my $file = catfile($dir,'temp.storable');
my $foo = Foo->load($file);
isa_ok($foo, 'Foo');
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is($foo->number, 10, '... got the right number');
is($foo->string, 'foo', '... got the right string');
is($foo->float, 10.5, '... got the right float');
@@ -55,4 +62,3 @@ my $file = catfile($dir,'temp.storable');
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
@@ -1,7 +1,7 @@
use strict;
use warnings;
-use Test::More tests => 11;
+use Test::More tests => 15;
use Test::Deep;
use Storable ();
use File::Temp qw(tempdir);
@@ -19,6 +19,8 @@ BEGIN {
with Storage(io => 'StorableFile');
+ has 'unset' => ( is => 'ro', isa => 'Any' );
+ has 'undef' => ( is => 'ro', isa => 'Any' );
has 'number' => (is => 'ro', isa => 'Int');
has 'string' => (is => 'rw', isa => 'Str');
has 'float' => (is => 'ro', isa => 'Num');
@@ -48,6 +50,7 @@ my $file = catfile($dir,'temp.storable');
{
my $foo = Foo->new(
+ undef => undef,
number => 10,
string => 'foo',
float => 10.5,
@@ -65,6 +68,7 @@ my $file = catfile($dir,'temp.storable');
$data,
{
'__CLASS__' => 'Foo',
+ 'undef' => undef,
'float' => 10.5,
'number' => 10,
'string' => 'HELLO WORLD',
@@ -87,6 +91,10 @@ my $file = catfile($dir,'temp.storable');
## check our custom thaw hook fired
is($foo->string, 'Hello World', '... got the right string');
+ is( $foo->unset, undef, '... got the right unset value');
+ ok(!$foo->meta->get_attribute('unset')->has_value($foo), 'unset attribute has no value');
+ is( $foo->undef, undef, '... got the right undef value');
+ ok( $foo->meta->get_attribute('undef')->has_value($foo), 'undef attribute has a value');
is($foo->number, 10, '... got the right number');
is($foo->float, 10.5, '... got the right float');
cmp_deeply($foo->array, [ 1 .. 10], '... got the right array');
@@ -95,4 +103,3 @@ my $file = catfile($dir,'temp.storable');
isa_ok($foo->object, 'Foo');
is($foo->object->number, 2, '... got the right number (in the embedded object)');
}
-
@@ -19,11 +19,15 @@ use Test::Requires qw(
JSON::Any
IO::AtomicFile
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
plan tests => 8;
use_ok('MooseX::Storage');
use utf8;
+binmode $_, ':utf8' foreach map { Test::Builder->new->$_ } qw(output failure_output todo_output);
+binmode STDOUT, ':utf8';
+binmode STDERR, ':utf8';
{
package Foo;
@@ -19,6 +19,11 @@ use Test::Requires qw(
JSON::Any
IO::AtomicFile
);
+diag 'using JSON backend: ', JSON::Any->handlerType;
+
+binmode $_, ':utf8' foreach map { Test::Builder->new->$_ } qw(output failure_output todo_output);
+binmode STDOUT, ':utf8';
+binmode STDERR, ':utf8';
plan tests => 8;
use_ok('MooseX::Storage');
@@ -4,6 +4,7 @@ use Test::More;
use Test::Fatal;
use Test::Requires 'JSON::Any';
+diag 'using JSON backend: ', JSON::Any->handlerType;
{
package Thing;
@@ -1,7 +1,7 @@
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::CheckBreaks 0.007
+# this test was generated with Dist::Zilla::Plugin::Test::CheckBreaks 0.009
use Test::More;
@@ -3,6 +3,4 @@
[-Transformer]
transformer = List
-[-StopWords]
-
[Contributors]
@@ -2,7 +2,7 @@ use 5.006;
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.039
+# this test was generated with Dist::Zilla::Plugin::Test::Compile 2.046
use Test::More 0.94 tests => 12 + ($ENV{AUTHOR_TESTING} ? 1 : 0);
@@ -56,6 +56,6 @@ for my $lib (@module_files)
-is(scalar(@warnings), 0, 'no warnings found') if $ENV{AUTHOR_TESTING};
+is(scalar(@warnings), 0, 'no warnings found') or diag 'got warnings: ', explain \@warnings if $ENV{AUTHOR_TESTING};
BAIL_OUT("Compilation problems") if !Test::More->builder->is_passing;
@@ -0,0 +1,82 @@
+use strict;
+use warnings;
+
+# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.09
+
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+ 'lib/MooseX/Storage.pm',
+ 'lib/MooseX/Storage/Base/WithChecksum.pm',
+ 'lib/MooseX/Storage/Basic.pm',
+ 'lib/MooseX/Storage/Deferred.pm',
+ 'lib/MooseX/Storage/Engine.pm',
+ 'lib/MooseX/Storage/Engine/IO/AtomicFile.pm',
+ 'lib/MooseX/Storage/Engine/IO/File.pm',
+ 'lib/MooseX/Storage/Engine/Trait/DisableCycleDetection.pm',
+ 'lib/MooseX/Storage/Engine/Trait/OnlyWhenBuilt.pm',
+ 'lib/MooseX/Storage/Format/JSON.pm',
+ 'lib/MooseX/Storage/Format/Storable.pm',
+ 'lib/MooseX/Storage/Format/YAML.pm',
+ 'lib/MooseX/Storage/IO/AtomicFile.pm',
+ 'lib/MooseX/Storage/IO/File.pm',
+ 'lib/MooseX/Storage/IO/StorableFile.pm',
+ 'lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm',
+ 'lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm',
+ 'lib/MooseX/Storage/Traits/DisableCycleDetection.pm',
+ 'lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm',
+ 'lib/MooseX/Storage/Util.pm',
+ 't/00-report-prereqs.dd',
+ 't/00-report-prereqs.t',
+ 't/000_load.t',
+ 't/001_basic.t',
+ 't/002_basic_io.t',
+ 't/002_basic_w_subtypes.t',
+ 't/003_basic_w_embedded_objects.t',
+ 't/004_w_cycles.t',
+ 't/005_w_versions_and_authority_check.t',
+ 't/006_w_custom_type_handlers.t',
+ 't/007_false.t',
+ 't/008_do_not_serialize.t',
+ 't/009_do_not_serialize_lazy.t',
+ 't/010_basic_json.t',
+ 't/011_basic_json_w_utf8.t',
+ 't/012_param_json.t',
+ 't/020_basic_yaml.t',
+ 't/020_basic_yaml_syck.t',
+ 't/020_basic_yaml_xs.t',
+ 't/030_with_checksum.t',
+ 't/040_basic_utils.t',
+ 't/050_basic_storable.t',
+ 't/060_basic_deferred.t',
+ 't/061_basic_deferred_w_io.t',
+ 't/070_basic_maybe.t',
+ 't/100_io.t',
+ 't/101_io_atomic.t',
+ 't/102_io_storable_file.t',
+ 't/103_io_storable_file_custom.t',
+ 't/104_io_w_utf8.t',
+ 't/105_io_atomic_w_utf8.t',
+ 't/200_combined_in_roles.t',
+ 't/300_overloaded.t',
+ 't/zzz-check-breaks.t',
+ 'xt/author/00-compile.t',
+ 'xt/author/no-tabs.t',
+ 'xt/author/pod-spell.t',
+ 'xt/release/changes_has_content.t',
+ 'xt/release/clean-namespaces.t',
+ 'xt/release/cpan-changes.t',
+ 'xt/release/distmeta.t',
+ 'xt/release/eol.t',
+ 'xt/release/kwalitee.t',
+ 'xt/release/minimum-version.t',
+ 'xt/release/mojibake.t',
+ 'xt/release/pod-coverage.t',
+ 'xt/release/pod-no404s.t',
+ 'xt/release/pod-syntax.t',
+ 'xt/release/portability.t'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -2,7 +2,7 @@ use strict;
use warnings;
use Test::More;
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006007
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006008
use Test::Spelling 0.12;
use Pod::Wordlist;
@@ -25,71 +25,74 @@ nothingmuch
Infinity
Interactive
Inc
-Cory
-Watson
-gphat
+Karen
+Etheridge
+ether
+Tomas
+Doran
+bobtfish
+Ricardo
+Signes
+rjbs
+Jos
+Boumans
+jos
+Shawn
+Moore
+sartak
+Jonathan
+Yu
+frequency
+Robert
+Boone
+robo4288
Dagfinn
Ilmari
Mannsåker
ilmari
+Cory
+Watson
+gphat
Dan
Brook
dan
David
-Golden
-dagolden
Steinbrunner
dsteinbrunner
-Florian
-Ragwitz
-rafl
+Jason
+Pope
+cowholio4
Johannes
Plunien
plu
-Jonathan
Rockway
jon
-Yu
-frequency
-Jos
-Boumans
-jos
-Karen
-Etheridge
-ether
-Ricardo
-Signes
-rjbs
-Robert
-Boone
-robo4288
-Shawn
-Moore
-sartak
-Tomas
-Doran
-bobtfish
+Florian
+Ragwitz
+rafl
+Golden
+dagolden
lib
MooseX
Storage
IO
AtomicFile
-StorableFile
-Traits
-DisableCycleDetection
-Meta
-Attribute
-Trait
-DoNotSerialize
Engine
+Trait
OnlyWhenBuilt
-File
-Basic
Deferred
-Base
-WithChecksum
Util
+File
Format
JSON
+Meta
+Attribute
+DoNotSerialize
Storable
+Basic
+Traits
+DisableCycleDetection
YAML
+Base
+WithChecksum
+StorableFile
@@ -4,7 +4,7 @@ use Test::More tests => 2;
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '0.46';
+my $newver = '0.47';
my $trial_token = '-TRIAL';
SKIP: {
@@ -1,10 +1,10 @@
use strict;
use warnings;
-# this test was generated with Dist::Zilla::Plugin::Test::CleanNamespaces 0.003
+# this test was generated with Dist::Zilla::Plugin::Test::CleanNamespaces 0.005
use Test::More 0.94;
-use Test::CleanNamespaces 0.04;
+use Test::CleanNamespaces 0.15;
subtest all_namespaces_clean => sub { all_namespaces_clean() };
@@ -1,4 +1,9 @@
-# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.07
+# this test was generated with Dist::Zilla::Plugin::Test::Kwalitee 2.10
use strict;
use warnings;
-use Test::Kwalitee;
+use Test::More 0.88;
+use Test::Kwalitee 1.21 'kwalitee_ok';
+
+kwalitee_ok();
+
+done_testing;
@@ -1,33 +0,0 @@
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.06
-
-use Test::More 0.88;
-use Test::NoTabs;
-
-my @files = (
- 'lib/MooseX/Storage.pm',
- 'lib/MooseX/Storage/Base/WithChecksum.pm',
- 'lib/MooseX/Storage/Basic.pm',
- 'lib/MooseX/Storage/Deferred.pm',
- 'lib/MooseX/Storage/Engine.pm',
- 'lib/MooseX/Storage/Engine/IO/AtomicFile.pm',
- 'lib/MooseX/Storage/Engine/IO/File.pm',
- 'lib/MooseX/Storage/Engine/Trait/DisableCycleDetection.pm',
- 'lib/MooseX/Storage/Engine/Trait/OnlyWhenBuilt.pm',
- 'lib/MooseX/Storage/Format/JSON.pm',
- 'lib/MooseX/Storage/Format/Storable.pm',
- 'lib/MooseX/Storage/Format/YAML.pm',
- 'lib/MooseX/Storage/IO/AtomicFile.pm',
- 'lib/MooseX/Storage/IO/File.pm',
- 'lib/MooseX/Storage/IO/StorableFile.pm',
- 'lib/MooseX/Storage/Meta/Attribute/DoNotSerialize.pm',
- 'lib/MooseX/Storage/Meta/Attribute/Trait/DoNotSerialize.pm',
- 'lib/MooseX/Storage/Traits/DisableCycleDetection.pm',
- 'lib/MooseX/Storage/Traits/OnlyWhenBuilt.pm',
- 'lib/MooseX/Storage/Util.pm'
-);
-
-notabs_ok($_) foreach @files;
-done_testing;
@@ -1,22 +0,0 @@
-use strict;
-use warnings;
-use Test::More;
-
-# generated by Dist::Zilla::Plugin::Test::Version 0.002004
-BEGIN { eval "use Test::Version; 1;" or die $@; }
-
-my @imports = ( 'version_all_ok' );
-
-my $params = {
- is_strict => 1,
- has_version => 1,
-};
-
-push @imports, $params
- if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
-
-
-Test::Version->import(@imports);
-
-version_all_ok;
-done_testing;
@@ -1,8 +0,0 @@
-#!perl
-
-use Test::More;
-
-eval "use Test::Vars";
-plan skip_all => "Test::Vars required for testing unused vars"
- if $@;
-all_vars_ok();