Changes 025
MANIFEST 11
META.json 8792
META.yml 7276
Makefile.PL 13
README.md 11
dist.ini 67
lib/Log/Dispatch/ApacheLog.pm 22
lib/Log/Dispatch/Base.pm 22
lib/Log/Dispatch/Code.pm 22
lib/Log/Dispatch/Conflicts.pm 2818
lib/Log/Dispatch/Email/MIMELite.pm 22
lib/Log/Dispatch/Email/MailSend.pm 22
lib/Log/Dispatch/Email/MailSender.pm 22
lib/Log/Dispatch/Email/MailSendmail.pm 22
lib/Log/Dispatch/Email.pm 317
lib/Log/Dispatch/File/Locked.pm 22
lib/Log/Dispatch/File.pm 22
lib/Log/Dispatch/Handle.pm 22
lib/Log/Dispatch/Null.pm 22
lib/Log/Dispatch/Output.pm 22
lib/Log/Dispatch/Screen.pm 22
lib/Log/Dispatch/Syslog.pm 56
lib/Log/Dispatch.pm 33
t/00-report-prereqs.dd 01
t/00-report-prereqs.t 98
t/author-no-tabs.t 058
t/author-pod-spell.t 33
t/release-no-tabs.t 580
t/release-pod-coverage.t 11
30 files changed (This is a version diff) 304346
@@ -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() ) {