@@ -1,3 +1,28 @@
+2.44 2014-10-18
+
+- The fix for a buffered email output in the last release introduced a bug
+ with _non-buffered_ email outputs. This would cause a fatal error during
+ global destruction when the DESTROY method was called. Reported by Christ
+ Hutchinson. RT #99474.
+
+
+2.43 2014-10-05
+
+- Fixed the thread locking in Log::Dispatch::Syslog (I hope). The previous
+ version caused Perl to crash when per-thread locking was enabled. Note that
+ I don't use threads so I haven't tested this. Patch by Sergio Fernández
+ Muñoz. RT # 99208.
+
+- If a buffered email output is being destroyed during global destruction and
+ still has messages in the buffer, we warn and do not attempt to send the
+ messages. During global destruction, the package we use to send email may
+ already be destroyed, leading to weird errors when we try to use
+ it. Reported by Mark Overmeer. RT #97733.
+
+- In 2.42 I added the ability to pass a hashref for the socket parameter given
+ to Log::Dispatch::Syslog, but I forgot to mention this here. This is
+ necessary to support remote logging. Patch by David Coppit. RT #93045.
+
2.42 2014-08-12
- Added a Log::Dispatch->clone() method. This returns shallow clone. The
@@ -34,12 +34,12 @@ t/03-short-syntax.t
t/04-binmode.t
t/05-close-after-write.t
t/06-syslog.t
+t/author-no-tabs.t
t/author-pod-spell.t
t/email-exit-helper.pl
t/lib/Log/Dispatch/TestUtil.pm
t/release-cpan-changes.t
t/release-eol.t
-t/release-no-tabs.t
t/release-pod-coverage.t
t/release-pod-no404s.t
t/release-pod-syntax.t
@@ -4,7 +4,7 @@
"Dave Rolsky <autarch@urth.org>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060",
+ "generated_by" : "Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142690",
"license" : [
"artistic_2"
],
@@ -34,6 +34,7 @@
"runtime" : {
"requires" : {
"Carp" : "0",
+ "Devel::GlobalDestruction" : "0",
"Dist::CheckConflicts" : "0.02",
"Fcntl" : "0",
"Module::Runtime" : "0",
@@ -69,67 +70,67 @@
"provides" : {
"Log::Dispatch" : {
"file" : "lib/Log/Dispatch.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::ApacheLog" : {
"file" : "lib/Log/Dispatch/ApacheLog.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Base" : {
"file" : "lib/Log/Dispatch/Base.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Code" : {
"file" : "lib/Log/Dispatch/Code.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Email" : {
"file" : "lib/Log/Dispatch/Email.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Email::MIMELite" : {
"file" : "lib/Log/Dispatch/Email/MIMELite.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Email::MailSend" : {
"file" : "lib/Log/Dispatch/Email/MailSend.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Email::MailSender" : {
"file" : "lib/Log/Dispatch/Email/MailSender.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Email::MailSendmail" : {
"file" : "lib/Log/Dispatch/Email/MailSendmail.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::File" : {
"file" : "lib/Log/Dispatch/File.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::File::Locked" : {
"file" : "lib/Log/Dispatch/File/Locked.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Handle" : {
"file" : "lib/Log/Dispatch/Handle.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Null" : {
"file" : "lib/Log/Dispatch/Null.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Output" : {
"file" : "lib/Log/Dispatch/Output.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Screen" : {
"file" : "lib/Log/Dispatch/Screen.pm",
- "version" : "2.42"
+ "version" : "2.44"
},
"Log::Dispatch::Syslog" : {
"file" : "lib/Log/Dispatch/Syslog.pm",
- "version" : "2.42"
+ "version" : "2.44"
}
},
"release_status" : "stable",
@@ -145,7 +146,7 @@
"web" : "https://github.com/autarch/Log-Dispatch"
}
},
- "version" : "2.42",
+ "version" : "2.44",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.016003"
@@ -177,52 +178,6 @@
"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" : [
- "Changes",
- "CONTRIBUTING.md",
- "README.md"
- ],
- "allow_dirty_match" : [],
- "changelog" : "Changes"
- },
- "Dist::Zilla::Role::Git::Repo" : {
- "repo_root" : "."
- }
- },
- "name" : "@DROLSKY/Git::Check",
- "version" : "2.023"
- },
- {
- "class" : "Dist::Zilla::Plugin::Git::Commit",
- "config" : {
- "Dist::Zilla::Plugin::Git::Commit" : {
- "add_files_in" : [],
- "commit_msg" : "v%v%n%n%c",
- "time_zone" : "local"
- },
- "Dist::Zilla::Role::Git::DirtyFiles" : {
- "allow_dirty" : [
- "Changes",
- "CONTRIBUTING.md",
- "README.md"
- ],
- "allow_dirty_match" : [],
- "changelog" : "Changes"
- },
- "Dist::Zilla::Role::Git::Repo" : {
- "repo_root" : "."
- }
- },
- "name" : "@DROLSKY/Git::Commit",
- "version" : "2.023"
- },
- {
"class" : "Dist::Zilla::Plugin::GitHub::Meta",
"name" : "@DROLSKY/GitHub::Meta",
"version" : "0.38"
@@ -256,7 +211,7 @@
}
},
"name" : "@DROLSKY/MetaProvides::Package",
- "version" : "2.000003"
+ "version" : "2.001002"
},
{
"class" : "Dist::Zilla::Plugin::NextRelease",
@@ -264,11 +219,6 @@
"version" : "5.020"
},
{
- "class" : "Dist::Zilla::Plugin::PruneFiles",
- "name" : "@DROLSKY/PruneFiles",
- "version" : "5.020"
- },
- {
"class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
"name" : "@DROLSKY/Test::Pod::Coverage::Configurable",
"version" : "0.01"
@@ -281,7 +231,7 @@
{
"class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
"name" : "@DROLSKY/Test::ReportPrereqs",
- "version" : "0.018"
+ "version" : "0.019"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs",
@@ -306,17 +256,17 @@
}
},
"name" : "@DROLSKY/stale modules, release",
- "version" : "0.024"
+ "version" : "0.028"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"name" : "@DROLSKY/ReadmeMarkdownInBuild",
- "version" : "0.142180"
+ "version" : "0.142470"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
"name" : "@DROLSKY/ReadmeMarkdownInRoot",
- "version" : "0.142180"
+ "version" : "0.142470"
},
{
"class" : "Dist::Zilla::Plugin::PruneCruft",
@@ -379,11 +329,6 @@
"version" : "0.012"
},
{
- "class" : "Dist::Zilla::Plugin::ContributorsFromGit",
- "name" : "@DROLSKY/ContributorsFromGit",
- "version" : "0.014"
- },
- {
"class" : "Dist::Zilla::Plugin::CopyReadmeFromBuild",
"name" : "@DROLSKY/CopyReadmeFromBuild",
"version" : "0.0019"
@@ -414,6 +359,19 @@
"version" : "0.003"
},
{
+ "class" : "Dist::Zilla::Plugin::Git::Contributors",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Contributors" : {
+ "include_authors" : "0",
+ "include_releaser" : "1",
+ "order_by" : "name",
+ "paths" : []
+ }
+ },
+ "name" : "@DROLSKY/Git::Contributors",
+ "version" : "0.007"
+ },
+ {
"class" : "Dist::Zilla::Plugin::InstallGuide",
"name" : "@DROLSKY/InstallGuide",
"version" : "1.200003"
@@ -552,6 +510,7 @@
"class" : "Dist::Zilla::Plugin::Test::NoTabs",
"config" : {
"Dist::Zilla::Plugin::Test::NoTabs" : {
+ "filename" : "xt/author/no-tabs.t",
"finder" : [
":InstallModules",
":ExecFiles",
@@ -560,7 +519,7 @@
}
},
"name" : "@DROLSKY/Test::NoTabs",
- "version" : "0.08"
+ "version" : "0.09"
},
{
"class" : "Dist::Zilla::Plugin::Test::Pod::No404s",
@@ -573,12 +532,58 @@
"version" : "2.000005"
},
{
+ "class" : "Dist::Zilla::Plugin::Git::Check",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Check" : {
+ "untracked_files" : "die"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "Changes",
+ "CONTRIBUTING.md",
+ "README.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Check",
+ "version" : "2.025"
+ },
+ {
+ "class" : "Dist::Zilla::Plugin::Git::Commit",
+ "config" : {
+ "Dist::Zilla::Plugin::Git::Commit" : {
+ "add_files_in" : [],
+ "commit_msg" : "v%v%n%n%c",
+ "time_zone" : "local"
+ },
+ "Dist::Zilla::Role::Git::DirtyFiles" : {
+ "allow_dirty" : [
+ "Changes",
+ "CONTRIBUTING.md",
+ "README.md"
+ ],
+ "allow_dirty_match" : [],
+ "changelog" : "Changes"
+ },
+ "Dist::Zilla::Role::Git::Repo" : {
+ "repo_root" : "."
+ }
+ },
+ "name" : "@DROLSKY/Git::Commit",
+ "version" : "2.025"
+ },
+ {
"class" : "Dist::Zilla::Plugin::Git::Tag",
"config" : {
"Dist::Zilla::Plugin::Git::Tag" : {
"branch" : null,
"signed" : 0,
- "tag" : "v2.42",
+ "tag" : "v2.44",
"tag_format" : "v%v",
"tag_message" : "v%v",
"time_zone" : "local"
@@ -588,7 +593,7 @@
}
},
"name" : "@DROLSKY/Git::Tag",
- "version" : "2.023"
+ "version" : "2.025"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
@@ -604,12 +609,12 @@
}
},
"name" : "@DROLSKY/Git::Push",
- "version" : "2.023"
+ "version" : "2.025"
},
{
"class" : "Dist::Zilla::Plugin::Conflicts",
"name" : "Conflicts",
- "version" : "0.14"
+ "version" : "0.16"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
@@ -670,14 +675,14 @@
"Log::Dispatch::File::Stamped" : "<= 0.10"
},
"x_contributors" : [
+ "autarch <devnull@localhost>",
"Karen Etheridge <ether@cpan.org>",
"Olaf Alders <olaf@wundersolutions.com>",
"Ross Attrill <ross.attrill@gmail.com>",
- "Whitney Jackson <whitney.jackson@baml.com>",
- "autarch <devnull@localhost>",
"swartz@jonathan-swartzs-macbook-4.local <swartz@jonathan-swartzs-macbook-4.local>",
"swartz@pobox.com <swartz@pobox.com>",
- "unknown <devnull@localhost>"
+ "unknown <devnull@localhost>",
+ "Whitney Jackson <whitney.jackson@baml.com>"
]
}
@@ -17,7 +17,7 @@ configure_requires:
Dist::CheckConflicts: '0.02'
ExtUtils::MakeMaker: '0'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142060'
+generated_by: 'Dist::Zilla version 5.020, CPAN::Meta::Converter version 2.142690'
license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -26,54 +26,55 @@ name: Log-Dispatch
provides:
Log::Dispatch:
file: lib/Log/Dispatch.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::ApacheLog:
file: lib/Log/Dispatch/ApacheLog.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Base:
file: lib/Log/Dispatch/Base.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Code:
file: lib/Log/Dispatch/Code.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Email:
file: lib/Log/Dispatch/Email.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Email::MIMELite:
file: lib/Log/Dispatch/Email/MIMELite.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Email::MailSend:
file: lib/Log/Dispatch/Email/MailSend.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Email::MailSender:
file: lib/Log/Dispatch/Email/MailSender.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Email::MailSendmail:
file: lib/Log/Dispatch/Email/MailSendmail.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::File:
file: lib/Log/Dispatch/File.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::File::Locked:
file: lib/Log/Dispatch/File/Locked.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Handle:
file: lib/Log/Dispatch/Handle.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Null:
file: lib/Log/Dispatch/Null.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Output:
file: lib/Log/Dispatch/Output.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Screen:
file: lib/Log/Dispatch/Screen.pm
- version: '2.42'
+ version: '2.44'
Log::Dispatch::Syslog:
file: lib/Log/Dispatch/Syslog.pm
- version: '2.42'
+ version: '2.44'
requires:
Carp: '0'
+ Devel::GlobalDestruction: '0'
Dist::CheckConflicts: '0.02'
Fcntl: '0'
Module::Runtime: '0'
@@ -90,7 +91,7 @@ resources:
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Log-Dispatch
homepage: http://metacpan.org/release/Log-Dispatch
repository: git://github.com/autarch/Log-Dispatch.git
-version: '2.42'
+version: '2.44'
x_Dist_Zilla:
perl:
version: '5.016003'
@@ -115,40 +116,6 @@ x_Dist_Zilla:
name: '@DROLSKY/GatherDir'
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:
- - Changes
- - CONTRIBUTING.md
- - README.md
- allow_dirty_match: []
- changelog: Changes
- Dist::Zilla::Role::Git::Repo:
- repo_root: .
- name: '@DROLSKY/Git::Check'
- version: '2.023'
- -
- class: Dist::Zilla::Plugin::Git::Commit
- config:
- Dist::Zilla::Plugin::Git::Commit:
- add_files_in: []
- commit_msg: v%v%n%n%c
- time_zone: local
- Dist::Zilla::Role::Git::DirtyFiles:
- allow_dirty:
- - Changes
- - CONTRIBUTING.md
- - README.md
- allow_dirty_match: []
- changelog: Changes
- Dist::Zilla::Role::Git::Repo:
- repo_root: .
- name: '@DROLSKY/Git::Commit'
- version: '2.023'
- -
class: Dist::Zilla::Plugin::GitHub::Meta
name: '@DROLSKY/GitHub::Meta'
version: '0.38'
@@ -174,16 +141,12 @@ x_Dist_Zilla:
inherit_version: '1'
meta_noindex: '1'
name: '@DROLSKY/MetaProvides::Package'
- version: '2.000003'
+ version: '2.001002'
-
class: Dist::Zilla::Plugin::NextRelease
name: '@DROLSKY/NextRelease'
version: '5.020'
-
- class: Dist::Zilla::Plugin::PruneFiles
- name: '@DROLSKY/PruneFiles'
- version: '5.020'
- -
class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
name: '@DROLSKY/Test::Pod::Coverage::Configurable'
version: '0.01'
@@ -194,7 +157,7 @@ x_Dist_Zilla:
-
class: Dist::Zilla::Plugin::Test::ReportPrereqs
name: '@DROLSKY/Test::ReportPrereqs'
- version: '0.018'
+ version: '0.019'
-
class: Dist::Zilla::Plugin::Prereqs
config:
@@ -213,15 +176,15 @@ x_Dist_Zilla:
phase: release
skip: []
name: '@DROLSKY/stale modules, release'
- version: '0.024'
+ version: '0.028'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
name: '@DROLSKY/ReadmeMarkdownInBuild'
- version: '0.142180'
+ version: '0.142470'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
name: '@DROLSKY/ReadmeMarkdownInRoot'
- version: '0.142180'
+ version: '0.142470'
-
class: Dist::Zilla::Plugin::PruneCruft
name: '@DROLSKY/PruneCruft'
@@ -271,10 +234,6 @@ x_Dist_Zilla:
name: '@DROLSKY/CheckPrereqsIndexed'
version: '0.012'
-
- class: Dist::Zilla::Plugin::ContributorsFromGit
- name: '@DROLSKY/ContributorsFromGit'
- version: '0.014'
- -
class: Dist::Zilla::Plugin::CopyReadmeFromBuild
name: '@DROLSKY/CopyReadmeFromBuild'
version: '0.0019'
@@ -297,6 +256,16 @@ x_Dist_Zilla:
name: '@DROLSKY/Git::Describe'
version: '0.003'
-
+ class: Dist::Zilla::Plugin::Git::Contributors
+ config:
+ Dist::Zilla::Plugin::Git::Contributors:
+ include_authors: '0'
+ include_releaser: '1'
+ order_by: name
+ paths: []
+ name: '@DROLSKY/Git::Contributors'
+ version: '0.007'
+ -
class: Dist::Zilla::Plugin::InstallGuide
name: '@DROLSKY/InstallGuide'
version: '1.200003'
@@ -406,12 +375,13 @@ x_Dist_Zilla:
class: Dist::Zilla::Plugin::Test::NoTabs
config:
Dist::Zilla::Plugin::Test::NoTabs:
+ filename: xt/author/no-tabs.t
finder:
- ':InstallModules'
- ':ExecFiles'
- ':TestFiles'
name: '@DROLSKY/Test::NoTabs'
- version: '0.08'
+ version: '0.09'
-
class: Dist::Zilla::Plugin::Test::Pod::No404s
name: '@DROLSKY/Test::Pod::No404s'
@@ -421,19 +391,53 @@ x_Dist_Zilla:
name: '@DROLSKY/Test::Portability'
version: '2.000005'
-
+ class: Dist::Zilla::Plugin::Git::Check
+ config:
+ Dist::Zilla::Plugin::Git::Check:
+ untracked_files: die
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - Changes
+ - CONTRIBUTING.md
+ - README.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Check'
+ version: '2.025'
+ -
+ class: Dist::Zilla::Plugin::Git::Commit
+ config:
+ Dist::Zilla::Plugin::Git::Commit:
+ add_files_in: []
+ commit_msg: v%v%n%n%c
+ time_zone: local
+ Dist::Zilla::Role::Git::DirtyFiles:
+ allow_dirty:
+ - Changes
+ - CONTRIBUTING.md
+ - README.md
+ allow_dirty_match: []
+ changelog: Changes
+ Dist::Zilla::Role::Git::Repo:
+ repo_root: .
+ name: '@DROLSKY/Git::Commit'
+ version: '2.025'
+ -
class: Dist::Zilla::Plugin::Git::Tag
config:
Dist::Zilla::Plugin::Git::Tag:
branch: ~
signed: 0
- tag: v2.42
+ tag: v2.44
tag_format: v%v
tag_message: v%v
time_zone: local
Dist::Zilla::Role::Git::Repo:
repo_root: .
name: '@DROLSKY/Git::Tag'
- version: '2.023'
+ version: '2.025'
-
class: Dist::Zilla::Plugin::Git::Push
config:
@@ -444,11 +448,11 @@ x_Dist_Zilla:
Dist::Zilla::Role::Git::Repo:
repo_root: .
name: '@DROLSKY/Git::Push'
- version: '2.023'
+ version: '2.025'
-
class: Dist::Zilla::Plugin::Conflicts
name: Conflicts
- version: '0.14'
+ version: '0.16'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
@@ -494,11 +498,11 @@ x_authority: cpan:DROLSKY
x_breaks:
Log::Dispatch::File::Stamped: '<= 0.10'
x_contributors:
+ - 'autarch <devnull@localhost>'
- 'Karen Etheridge <ether@cpan.org>'
- 'Olaf Alders <olaf@wundersolutions.com>'
- 'Ross Attrill <ross.attrill@gmail.com>'
- - 'Whitney Jackson <whitney.jackson@baml.com>'
- - 'autarch <devnull@localhost>'
- 'swartz@jonathan-swartzs-macbook-4.local <swartz@jonathan-swartzs-macbook-4.local>'
- 'swartz@pobox.com <swartz@pobox.com>'
- 'unknown <devnull@localhost>'
+ - 'Whitney Jackson <whitney.jackson@baml.com>'
@@ -23,6 +23,7 @@ my %WriteMakefileArgs = (
"NAME" => "Log::Dispatch",
"PREREQ_PM" => {
"Carp" => 0,
+ "Devel::GlobalDestruction" => 0,
"Dist::CheckConflicts" => "0.02",
"Fcntl" => 0,
"Module::Runtime" => 0,
@@ -47,7 +48,7 @@ my %WriteMakefileArgs = (
"Test::Requires" => 0,
"lib" => 0
},
- "VERSION" => "2.42",
+ "VERSION" => "2.44",
"test" => {
"TESTS" => "t/*.t"
}
@@ -57,6 +58,7 @@ my %WriteMakefileArgs = (
my %FallbackPrereqs = (
"Carp" => 0,
"Data::Dumper" => 0,
+ "Devel::GlobalDestruction" => 0,
"Dist::CheckConflicts" => "0.02",
"Exporter" => 0,
"ExtUtils::MakeMaker" => 0,
@@ -4,7 +4,7 @@ Log::Dispatch - Dispatches messages to one or more outputs
# VERSION
-version 2.42
+version 2.44
# SYNOPSIS
@@ -3,15 +3,16 @@ author = Dave Rolsky <autarch@urth.org>
license = Artistic_2_0
copyright_holder = Dave Rolsky
-version = 2.42
+version = 2.44
[@DROLSKY]
dist = Log-Dispatch
-coverage_skip = Log::Dispatch::ApacheLog
-coverage_trustme = Log::Dispatch => qr/^(?:warn|err|crit|emerg)$/
-coverage_trustme = Log::Dispatch => qr/^is_\w+$/
-coverage_trustme = Log::Dispatch::File => qr/APPEND$/
-coverage_trustme = Log::Dispatch::Output => qr/^new$/
+pod_coverage_skip = Log::Dispatch::ApacheLog
+pod_coverage_skip = Log::Dispatch::Conflicts
+pod_coverage_trustme = Log::Dispatch => qr/^(?:warn|err|crit|emerg)$/
+pod_coverage_trustme = Log::Dispatch => qr/^is_\w+$/
+pod_coverage_trustme = Log::Dispatch::File => qr/APPEND$/
+pod_coverage_trustme = Log::Dispatch::Output => qr/^new$/
stopwords_file = .stopwords
prereqs_skip = Apache2?::Log
prereqs_skip = ^Mail::
@@ -1,5 +1,5 @@
package Log::Dispatch::ApacheLog;
-$Log::Dispatch::ApacheLog::VERSION = '2.42';
+$Log::Dispatch::ApacheLog::VERSION = '2.44';
use strict;
use warnings;
@@ -68,7 +68,7 @@ Log::Dispatch::ApacheLog - Object for logging to Apache::Log objects
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Base;
-$Log::Dispatch::Base::VERSION = '2.42';
+$Log::Dispatch::Base::VERSION = '2.44';
use strict;
use warnings;
@@ -59,7 +59,7 @@ Log::Dispatch::Base - Code shared by dispatch and output objects.
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Code;
-$Log::Dispatch::Code::VERSION = '2.42';
+$Log::Dispatch::Code::VERSION = '2.44';
use strict;
use warnings;
@@ -49,7 +49,7 @@ Log::Dispatch::Code - Object for logging to a subroutine reference
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -4,42 +4,32 @@ package # hide from PAUSE
use strict;
use warnings;
+# this module was generated with Dist::Zilla::Plugin::Conflicts 0.16
+
use Dist::CheckConflicts
-dist => 'Log::Dispatch',
-conflicts => {
'Log::Dispatch::File::Stamped' => '0.10',
},
+ -also => [ qw(
+ Carp
+ Devel::GlobalDestruction
+ Dist::CheckConflicts
+ Fcntl
+ Module::Runtime
+ Params::Validate
+ Scalar::Util
+ Sys::Syslog
+ base
+ strict
+ threads
+ threads::shared
+ warnings
+ ) ],
;
1;
# ABSTRACT: Provide information on conflicts for Log::Dispatch
-
-__END__
-
-=pod
-
-=encoding UTF-8
-
-=head1 NAME
-
-Log::Dispatch::Conflicts - Provide information on conflicts for Log::Dispatch
-
-=head1 VERSION
-
-version 2.42
-
-=head1 AUTHOR
-
-Dave Rolsky <autarch@urth.org>
-
-=head1 COPYRIGHT AND LICENSE
-
-This software is Copyright (c) 2014 by Dave Rolsky.
-
-This is free software, licensed under:
-
- The Artistic License 2.0 (GPL Compatible)
-
-=cut
+# Dist::Zilla: -PodWeaver
@@ -1,5 +1,5 @@
package Log::Dispatch::Email::MIMELite;
-$Log::Dispatch::Email::MIMELite::VERSION = '2.42';
+$Log::Dispatch::Email::MIMELite::VERSION = '2.44';
use strict;
use warnings;
@@ -44,7 +44,7 @@ Log::Dispatch::Email::MIMELite - Subclass of Log::Dispatch::Email that uses the
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Email::MailSend;
-$Log::Dispatch::Email::MailSend::VERSION = '2.42';
+$Log::Dispatch::Email::MailSend::VERSION = '2.44';
use strict;
use warnings;
@@ -52,7 +52,7 @@ Log::Dispatch::Email::MailSend - Subclass of Log::Dispatch::Email that uses the
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Email::MailSender;
-$Log::Dispatch::Email::MailSender::VERSION = '2.42';
+$Log::Dispatch::Email::MailSender::VERSION = '2.44';
# By: Joseph Annino
# (c) 2002
# Licensed under the same terms as Perl
@@ -74,7 +74,7 @@ Log::Dispatch::Email::MailSender - Subclass of Log::Dispatch::Email that uses th
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Email::MailSendmail;
-$Log::Dispatch::Email::MailSendmail::VERSION = '2.42';
+$Log::Dispatch::Email::MailSendmail::VERSION = '2.44';
use strict;
use warnings;
@@ -44,7 +44,7 @@ Log::Dispatch::Email::MailSendmail - Subclass of Log::Dispatch::Email that uses
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Email;
-$Log::Dispatch::Email::VERSION = '2.42';
+$Log::Dispatch::Email::VERSION = '2.44';
use strict;
use warnings;
@@ -7,6 +7,7 @@ use Log::Dispatch::Output;
use base qw( Log::Dispatch::Output );
+use Devel::GlobalDestruction qw( in_global_destruction );
use Params::Validate qw(validate SCALAR ARRAYREF BOOLEAN);
Params::Validate::validation_options( allow_extra => 1 );
@@ -84,7 +85,20 @@ sub flush {
sub DESTROY {
my $self = shift;
- $self->flush;
+ if ( in_global_destruction()
+ && $self->{buffered}
+ && @{ $self->{buffer} } ) {
+
+ my $name = $self->name();
+ my $class = ref $self;
+ my $message
+ = "Log messages for the $name output (a $class object) remain unsent but the program is terminating.\n";
+ $message .= "The messages are:\n";
+ $message .= " $_\n" for @{ $self->{buffer} };
+ }
+ else {
+ $self->flush();
+ }
}
1;
@@ -103,7 +117,7 @@ Log::Dispatch::Email - Base class for objects that send log messages via email
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::File::Locked;
-$Log::Dispatch::File::Locked::VERSION = '2.42';
+$Log::Dispatch::File::Locked::VERSION = '2.44';
use strict;
use warnings;
@@ -38,7 +38,7 @@ Log::Dispatch::File::Locked - Subclass of Log::Dispatch::File to facilitate lock
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::File;
-$Log::Dispatch::File::VERSION = '2.42';
+$Log::Dispatch::File::VERSION = '2.44';
use strict;
use warnings;
@@ -181,7 +181,7 @@ Log::Dispatch::File - Object for logging to files
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Handle;
-$Log::Dispatch::Handle::VERSION = '2.42';
+$Log::Dispatch::Handle::VERSION = '2.44';
use strict;
use warnings;
@@ -48,7 +48,7 @@ Log::Dispatch::Handle - Object for logging to IO::Handle classes
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Null;
-$Log::Dispatch::Null::VERSION = '2.42';
+$Log::Dispatch::Null::VERSION = '2.44';
use strict;
use warnings;
@@ -36,7 +36,7 @@ Log::Dispatch::Null - Object that accepts messages and does nothing
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Output;
-$Log::Dispatch::Output::VERSION = '2.42';
+$Log::Dispatch::Output::VERSION = '2.44';
use strict;
use warnings;
@@ -187,7 +187,7 @@ Log::Dispatch::Output - Base class for all Log::Dispatch::* objects
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Screen;
-$Log::Dispatch::Screen::VERSION = '2.42';
+$Log::Dispatch::Screen::VERSION = '2.44';
use strict;
use warnings;
@@ -59,7 +59,7 @@ Log::Dispatch::Screen - Object for logging to the screen
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,5 +1,5 @@
package Log::Dispatch::Syslog;
-$Log::Dispatch::Syslog::VERSION = '2.42';
+$Log::Dispatch::Syslog::VERSION = '2.44';
use strict;
use warnings;
@@ -75,16 +75,17 @@ sub _init {
];
}
-my $thread_lock;
+my $thread_lock : shared = 0;
+
sub log_message {
my $self = shift;
my %p = @_;
my $pri = $self->_level_as_number( $p{level} );
- eval {
- threads::shared::lock($thread_lock) if $self->{lock};
+ lock($thread_lock) if $self->{lock};
+ eval {
if ( defined $self->{socket} ) {
Sys::Syslog::setlogsock(
ref $self->{socket} && reftype( $self->{socket} ) eq 'ARRAY'
@@ -121,7 +122,7 @@ Log::Dispatch::Syslog - Object for logging to system log.
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -1,6 +1,6 @@
package Log::Dispatch;
-# git description: v2.41-14-g89b3152
-$Log::Dispatch::VERSION = '2.42';
+# git description: v2.43-2-gb373346
+$Log::Dispatch::VERSION = '2.44';
use 5.006;
@@ -301,7 +301,7 @@ Log::Dispatch - Dispatches messages to one or more outputs
=head1 VERSION
-version 2.42
+version 2.44
=head1 SYNOPSIS
@@ -19,6 +19,7 @@ do { my $x = {
'runtime' => {
'requires' => {
'Carp' => '0',
+ 'Devel::GlobalDestruction' => '0',
'Dist::CheckConflicts' => '0.02',
'Fcntl' => '0',
'Module::Runtime' => '0',
@@ -3,7 +3,7 @@
use strict;
use warnings;
-# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.018
+# This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.019
use Test::More tests => 1;
@@ -70,12 +70,6 @@ my @exclude = qw(
# Add static prereqs to the included modules list
my $static_prereqs = do 't/00-report-prereqs.dd';
-### XXX: Assume these are Runtime Requires
-my $static_prereqs_requires = $static_prereqs->{runtime}{requires};
-for my $mod (@include) {
- $static_prereqs_requires->{$mod} = 0 unless exists $static_prereqs_requires->{$mod};
-}
-
# Merge all prereqs (either with ::Prereqs or a hashref)
my $full_prereqs = _merge_prereqs(
( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
@@ -97,11 +91,16 @@ my @full_reports;
my @dep_errors;
my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
-for my $phase ( qw(configure build test runtime develop) ) {
+# 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) ) {
+ for my $type ( qw(requires recommends suggests conflicts modules) ) {
next unless $req_hash->{$phase}{$type};
my $title = ucfirst($phase).' '.ucfirst($type);
@@ -0,0 +1,58 @@
+
+BEGIN {
+ unless ($ENV{AUTHOR_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for testing by the author');
+ }
+}
+
+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/Log/Dispatch.pm',
+ 'lib/Log/Dispatch/ApacheLog.pm',
+ 'lib/Log/Dispatch/Base.pm',
+ 'lib/Log/Dispatch/Code.pm',
+ 'lib/Log/Dispatch/Conflicts.pm',
+ 'lib/Log/Dispatch/Email.pm',
+ 'lib/Log/Dispatch/Email/MIMELite.pm',
+ 'lib/Log/Dispatch/Email/MailSend.pm',
+ 'lib/Log/Dispatch/Email/MailSender.pm',
+ 'lib/Log/Dispatch/Email/MailSendmail.pm',
+ 'lib/Log/Dispatch/File.pm',
+ 'lib/Log/Dispatch/File/Locked.pm',
+ 'lib/Log/Dispatch/Handle.pm',
+ 'lib/Log/Dispatch/Null.pm',
+ 'lib/Log/Dispatch/Output.pm',
+ 'lib/Log/Dispatch/Screen.pm',
+ 'lib/Log/Dispatch/Syslog.pm',
+ 't/00-compile.t',
+ 't/00-report-prereqs.dd',
+ 't/00-report-prereqs.t',
+ 't/01-basic.t',
+ 't/02-email-exit.t',
+ 't/03-short-syntax.t',
+ 't/04-binmode.t',
+ 't/05-close-after-write.t',
+ 't/06-syslog.t',
+ 't/author-no-tabs.t',
+ 't/author-pod-spell.t',
+ 't/email-exit-helper.pl',
+ 't/lib/Log/Dispatch/TestUtil.pm',
+ 't/release-cpan-changes.t',
+ 't/release-eol.t',
+ 't/release-pod-coverage.t',
+ 't/release-pod-no404s.t',
+ 't/release-pod-syntax.t',
+ 't/release-portability.t',
+ 't/sendmail'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
@@ -60,6 +60,7 @@ subclasses
uucp
Dave
autarch
+devnull
Karen
Etheridge
ether
@@ -69,12 +70,11 @@ olaf
Ross
Attrill
ross
+swartz
+unknown
Whitney
Jackson
whitney
-devnull
-swartz
-unknown
lib
Log
Dispatch
@@ -1,58 +0,0 @@
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-use strict;
-use warnings;
-
-# this test was generated with Dist::Zilla::Plugin::Test::NoTabs 0.08
-
-use Test::More 0.88;
-use Test::NoTabs;
-
-my @files = (
- 'lib/Log/Dispatch.pm',
- 'lib/Log/Dispatch/ApacheLog.pm',
- 'lib/Log/Dispatch/Base.pm',
- 'lib/Log/Dispatch/Code.pm',
- 'lib/Log/Dispatch/Conflicts.pm',
- 'lib/Log/Dispatch/Email.pm',
- 'lib/Log/Dispatch/Email/MIMELite.pm',
- 'lib/Log/Dispatch/Email/MailSend.pm',
- 'lib/Log/Dispatch/Email/MailSender.pm',
- 'lib/Log/Dispatch/Email/MailSendmail.pm',
- 'lib/Log/Dispatch/File.pm',
- 'lib/Log/Dispatch/File/Locked.pm',
- 'lib/Log/Dispatch/Handle.pm',
- 'lib/Log/Dispatch/Null.pm',
- 'lib/Log/Dispatch/Output.pm',
- 'lib/Log/Dispatch/Screen.pm',
- 'lib/Log/Dispatch/Syslog.pm',
- 't/00-compile.t',
- 't/00-report-prereqs.dd',
- 't/00-report-prereqs.t',
- 't/01-basic.t',
- 't/02-email-exit.t',
- 't/03-short-syntax.t',
- 't/04-binmode.t',
- 't/05-close-after-write.t',
- 't/06-syslog.t',
- 't/author-pod-spell.t',
- 't/email-exit-helper.pl',
- 't/lib/Log/Dispatch/TestUtil.pm',
- 't/release-cpan-changes.t',
- 't/release-eol.t',
- 't/release-no-tabs.t',
- 't/release-pod-coverage.t',
- 't/release-pod-no404s.t',
- 't/release-pod-syntax.t',
- 't/release-portability.t',
- 't/sendmail'
-);
-
-notabs_ok($_) foreach @files;
-done_testing;
@@ -13,7 +13,7 @@ use Test::Pod::Coverage 1.08;
use Test::More 0.88;
use Pod::Coverage::TrustPod;
-my %skip = map { $_ => 1 } qw( Log::Dispatch::ApacheLog );
+my %skip = map { $_ => 1 } qw( Log::Dispatch::ApacheLog Log::Dispatch::Conflicts );
my @modules;
for my $module ( all_modules() ) {