Hello community,

here is the log from the commit of package perl-Email-MIME for openSUSE:Factory 
checked in at 2020-06-03 20:36:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Email-MIME (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Email-MIME.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Email-MIME"

Wed Jun  3 20:36:29 2020 rev:3 rq:811179 version:1.949

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Email-MIME/perl-Email-MIME.changes  
2018-10-08 17:50:47.566073340 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Email-MIME.new.3606/perl-Email-MIME.changes    
    2020-06-03 20:36:55.846001658 +0200
@@ -1,0 +2,18 @@
+Mon May 25 03:10:21 UTC 2020 - Tina Müller <[email protected]>
+
+updated to 1.949
+   see /usr/share/doc/packages/perl-Email-MIME/Changes
+
+  1.949     2020-05-24 10:25:36-04:00 America/New_York
+          - no changes since trial release
+  
+  1.948     2020-05-09 14:57:17-04:00 America/New_York (TRIAL RELEASE)
+          - fixes to handling of content-type parameters (thanks, dlucredativ 
and
+            Pali Rohár)
+  
+  1.947     2020-05-09 14:30:06-04:00 America/New_York (TRIAL RELEASE)
+          - add $Email::MIME::MAX_DEPTH and refuse to parse deeper than that 
many
+            parts; current default: 10
+  
+
+-------------------------------------------------------------------

Old:
----
  Email-MIME-1.946.tar.gz

New:
----
  Email-MIME-1.949.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Email-MIME.spec ++++++
--- /var/tmp/diff_new_pack.NJiW9s/_old  2020-06-03 20:36:56.358003264 +0200
+++ /var/tmp/diff_new_pack.NJiW9s/_new  2020-06-03 20:36:56.362003276 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package perl-Email-MIME
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
 
 
 Name:           perl-Email-MIME
-Version:        1.946
+Version:        1.949
 Release:        0
 %define cpan_name Email-MIME
-Summary:        Easy Mime Message Handling
+Summary:        Easy MIME message handling
 License:        Artistic-1.0 OR GPL-1.0-or-later
 Group:          Development/Libraries/Perl
-Url:            http://search.cpan.org/dist/Email-MIME/
+URL:            https://metacpan.org/release/%{cpan_name}
 Source0:        
https://cpan.metacpan.org/authors/id/R/RJ/RJBS/%{cpan_name}-%{version}.tar.gz
 Source1:        cpanspec.yml
 BuildArch:      noarch
@@ -31,7 +31,7 @@
 BuildRequires:  perl
 BuildRequires:  perl-macros
 BuildRequires:  perl(Email::Address::XS)
-BuildRequires:  perl(Email::MIME::ContentType) >= 1.022
+BuildRequires:  perl(Email::MIME::ContentType) >= 1.023
 BuildRequires:  perl(Email::MIME::Encodings) >= 1.314
 BuildRequires:  perl(Email::MessageID)
 BuildRequires:  perl(Email::Simple) >= 2.212
@@ -42,7 +42,7 @@
 BuildRequires:  perl(Test::More) >= 0.96
 BuildRequires:  perl(parent)
 Requires:       perl(Email::Address::XS)
-Requires:       perl(Email::MIME::ContentType) >= 1.022
+Requires:       perl(Email::MIME::ContentType) >= 1.023
 Requires:       perl(Email::MIME::Encodings) >= 1.314
 Requires:       perl(Email::MessageID)
 Requires:       perl(Email::Simple) >= 2.212
@@ -63,11 +63,11 @@
 %setup -q -n %{cpan_name}-%{version}
 
 %build
-%{__perl} Makefile.PL INSTALLDIRS=vendor
-%{__make} %{?_smp_mflags}
+perl Makefile.PL INSTALLDIRS=vendor
+make %{?_smp_mflags}
 
 %check
-%{__make} test
+make test
 
 %install
 %perl_make_install

++++++ Email-MIME-1.946.tar.gz -> Email-MIME-1.949.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/Changes new/Email-MIME-1.949/Changes
--- old/Email-MIME-1.946/Changes        2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/Changes        2020-05-24 16:25:39.000000000 +0200
@@ -1,5 +1,16 @@
 Revision history for Perl extension Email::MIME.
 
+1.949     2020-05-24 10:25:36-04:00 America/New_York
+        - no changes since trial release
+
+1.948     2020-05-09 14:57:17-04:00 America/New_York (TRIAL RELEASE)
+        - fixes to handling of content-type parameters (thanks, dlucredativ and
+          Pali Rohár)
+
+1.947     2020-05-09 14:30:06-04:00 America/New_York (TRIAL RELEASE)
+        - add $Email::MIME::MAX_DEPTH and refuse to parse deeper than that many
+          parts; current default: 10
+
 1.946     2017-08-31 09:29:41-04:00 America/New_York
         - propagate encode_check to subparts (thanks, Michael McClimon)
         - use the new parse_content_disposition function in
@@ -255,5 +266,5 @@
           Test fix from Richard Clamp
 
 0.01      Thu Apr 10 13:38:09 2003
-               original version; created by h2xs 1.2 with options -AX -n 
Email::MIME
+          original version; created by h2xs 1.2 with options -AX -n Email::MIME
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/MANIFEST 
new/Email-MIME-1.949/MANIFEST
--- old/Email-MIME-1.946/MANIFEST       2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/MANIFEST       2020-05-24 16:25:39.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.010.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest 
v6.014.
 Changes
 LICENSE
 MANIFEST
@@ -28,6 +28,7 @@
 t/ct_attrs.t
 t/dispo.t
 t/disposition.t
+t/email-mime-encode.t
 t/encode-check.t
 t/encoding.t
 t/files/readme.txt.gz
@@ -42,3 +43,4 @@
 t/walk-parts.t
 xt/author/pod-syntax.t
 xt/release/changes_has_content.t
+xt/stupid-big.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/META.json 
new/Email-MIME-1.949/META.json
--- old/Email-MIME-1.946/META.json      2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/META.json      2020-05-24 16:25:39.000000000 +0200
@@ -6,7 +6,7 @@
       "Simon Cozens <[email protected]>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150005",
+   "generated_by" : "Dist::Zilla version 6.014, CPAN::Meta::Converter version 
2.150010",
    "license" : [
       "perl_5"
    ],
@@ -31,7 +31,7 @@
          "requires" : {
             "Carp" : "0",
             "Email::Address::XS" : "0",
-            "Email::MIME::ContentType" : "1.022",
+            "Email::MIME::ContentType" : "1.023",
             "Email::MIME::Encodings" : "1.314",
             "Email::MessageID" : "0",
             "Email::Simple" : "2.212",
@@ -73,10 +73,10 @@
          "web" : "https://github.com/rjbs/Email-MIME";
       }
    },
-   "version" : "1.946",
+   "version" : "1.949",
    "x_Dist_Zilla" : {
       "perl" : {
-         "version" : "5.024000"
+         "version" : "5.030002"
       },
       "plugins" : [
          {
@@ -96,7 +96,7 @@
                }
             },
             "name" : "@RJBS/Git::GatherDir",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::CheckPrereqsIndexed",
@@ -123,7 +123,7 @@
                }
             },
             "name" : "@RJBS/RJBS-Outdated",
-            "version" : "0.054"
+            "version" : "0.057"
          },
          {
             "class" : "Dist::Zilla::Plugin::PromptIfStale",
@@ -138,62 +138,62 @@
                }
             },
             "name" : "@RJBS/CPAN-Outdated",
-            "version" : "0.054"
+            "version" : "0.057"
          },
          {
             "class" : "Dist::Zilla::Plugin::PruneCruft",
             "name" : "@RJBS/@Filter/PruneCruft",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::ManifestSkip",
             "name" : "@RJBS/@Filter/ManifestSkip",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaYAML",
             "name" : "@RJBS/@Filter/MetaYAML",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::License",
             "name" : "@RJBS/@Filter/License",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Readme",
             "name" : "@RJBS/@Filter/Readme",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::ExecDir",
             "name" : "@RJBS/@Filter/ExecDir",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::ShareDir",
             "name" : "@RJBS/@Filter/ShareDir",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Manifest",
             "name" : "@RJBS/@Filter/Manifest",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::TestRelease",
             "name" : "@RJBS/@Filter/TestRelease",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::ConfirmRelease",
             "name" : "@RJBS/@Filter/ConfirmRelease",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::UploadToCPAN",
             "name" : "@RJBS/@Filter/UploadToCPAN",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::MakeMaker",
@@ -203,58 +203,58 @@
                }
             },
             "name" : "@RJBS/MakeMaker",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::AutoPrereqs",
             "name" : "@RJBS/AutoPrereqs",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::NextVersion",
             "config" : {
                "Dist::Zilla::Plugin::Git::NextVersion" : {
                   "first_version" : "0.001",
-                  "version_by_branch" : 1,
+                  "version_by_branch" : 0,
                   "version_regexp" : "(?^:^([0-9]+\\.[0-9]+)$)"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "repo_root" : "."
                }
             },
             "name" : "@RJBS/Git::NextVersion",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::PkgVersion",
             "name" : "@RJBS/PkgVersion",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaConfig",
             "name" : "@RJBS/MetaConfig",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::MetaJSON",
             "name" : "@RJBS/MetaJSON",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::NextRelease",
             "name" : "@RJBS/NextRelease",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::ChangesHasContent",
             "name" : "@RJBS/Test::ChangesHasContent",
-            "version" : "0.010"
+            "version" : "0.011"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodSyntaxTests",
             "name" : "@RJBS/PodSyntaxTests",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs",
@@ -270,7 +270,7 @@
                }
             },
             "name" : "@RJBS/TestMoreWithSubtests",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::PodWeaver",
@@ -388,7 +388,7 @@
          {
             "class" : "Dist::Zilla::Plugin::GithubMeta",
             "name" : "@RJBS/GithubMeta",
-            "version" : "0.54"
+            "version" : "0.58"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Check",
@@ -405,19 +405,19 @@
                   "changelog" : "Changes"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "repo_root" : "."
                }
             },
             "name" : "@RJBS/@Git/Check",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Commit",
             "config" : {
                "Dist::Zilla::Plugin::Git::Commit" : {
                   "add_files_in" : [],
-                  "commit_msg" : "v%v%n%n%c"
+                  "commit_msg" : "v%V%n%n%c"
                },
                "Dist::Zilla::Role::Git::DirtyFiles" : {
                   "allow_dirty" : [
@@ -428,7 +428,7 @@
                   "changelog" : "Changes"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "repo_root" : "."
                },
                "Dist::Zilla::Role::Git::StringFormatter" : {
@@ -436,7 +436,7 @@
                }
             },
             "name" : "@RJBS/@Git/Commit",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Tag",
@@ -445,12 +445,12 @@
                   "branch" : null,
                   "changelog" : "Changes",
                   "signed" : 0,
-                  "tag" : "1.946",
+                  "tag" : "1.949",
                   "tag_format" : "%v",
-                  "tag_message" : "v%v"
+                  "tag_message" : "v%V"
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "repo_root" : "."
                },
                "Dist::Zilla::Role::Git::StringFormatter" : {
@@ -458,31 +458,31 @@
                }
             },
             "name" : "@RJBS/@Git/Tag",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Push",
             "config" : {
                "Dist::Zilla::Plugin::Git::Push" : {
                   "push_to" : [
-                     "rjbs :",
+                     "origin :",
                      "github :"
                   ],
                   "remotes_must_exist" : 0
                },
                "Dist::Zilla::Role::Git::Repo" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "repo_root" : "."
                }
             },
             "name" : "@RJBS/@Git/Push",
-            "version" : "2.042"
+            "version" : "2.046"
          },
          {
             "class" : "Dist::Zilla::Plugin::Git::Contributors",
             "config" : {
                "Dist::Zilla::Plugin::Git::Contributors" : {
-                  "git_version" : "2.13.0",
+                  "git_version" : "2.24.3 (Apple Git-128)",
                   "include_authors" : 0,
                   "include_releaser" : 1,
                   "order_by" : "name",
@@ -490,7 +490,7 @@
                }
             },
             "name" : "@RJBS/Git::Contributors",
-            "version" : "0.030"
+            "version" : "0.035"
          },
          {
             "class" : "Dist::Zilla::Plugin::Prereqs",
@@ -501,79 +501,83 @@
                }
             },
             "name" : "Prereqs",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::Encoding",
             "name" : "Encoding",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":InstallModules",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":IncModules",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":TestFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExtraTestFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ExecFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":PerlExecFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":ShareFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":MainModule",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":AllFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          },
          {
             "class" : "Dist::Zilla::Plugin::FinderCode",
             "name" : ":NoFiles",
-            "version" : "6.010"
+            "version" : "6.014"
          }
       ],
       "zilla" : {
          "class" : "Dist::Zilla::Dist::Builder",
          "config" : {
-            "is_trial" : "0"
+            "is_trial" : 0
          },
-         "version" : "6.010"
+         "version" : "6.014"
       }
    },
    "x_contributors" : [
       "Alex Vandiver <[email protected]>",
+      "Anirvan Chatterjee <[email protected]>",
       "Arthur Axel 'fREW' Schmidt <[email protected]>",
       "Brian Cassidy <[email protected]>",
+      "Damian Lukowski <[email protected]>",
       "Dan Book <[email protected]>",
       "David Steinbrunner <[email protected]>",
       "Dotan Dimet <[email protected]>",
+      "dxdc <[email protected]>",
+      "Eric Wong <[email protected]>",
       "Geraint Edwards <[email protected]>",
       "Jesse Luehrs <[email protected]>",
       "Kurt Anderson <[email protected]>",
@@ -582,9 +586,12 @@
       "memememomo <[email protected]>",
       "Michael McClimon <[email protected]>",
       "Pali <[email protected]>",
+      "Ricardo Signes <[email protected]>",
       "Shawn Sorichetti <[email protected]>",
       "Tomohiro Hosaka <[email protected]>"
    ],
-   "x_serialization_backend" : "Cpanel::JSON::XS version 3.0237"
+   "x_generated_by_perl" : "v5.30.2",
+   "x_serialization_backend" : "Cpanel::JSON::XS version 4.19",
+   "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/META.yml 
new/Email-MIME-1.949/META.yml
--- old/Email-MIME-1.946/META.yml       2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/META.yml       2020-05-24 16:25:39.000000000 +0200
@@ -13,7 +13,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter version 
2.150005'
+generated_by: 'Dist::Zilla version 6.014, CPAN::Meta::Converter version 
2.150010'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,7 +22,7 @@
 requires:
   Carp: '0'
   Email::Address::XS: '0'
-  Email::MIME::ContentType: '1.022'
+  Email::MIME::ContentType: '1.023'
   Email::MIME::Encodings: '1.314'
   Email::MessageID: '0'
   Email::Simple: '2.212'
@@ -41,10 +41,10 @@
   bugtracker: https://github.com/rjbs/Email-MIME/issues
   homepage: https://github.com/rjbs/Email-MIME
   repository: https://github.com/rjbs/Email-MIME.git
-version: '1.946'
+version: '1.949'
 x_Dist_Zilla:
   perl:
-    version: '5.024000'
+    version: '5.030002'
   plugins:
     -
       class: Dist::Zilla::Plugin::Git::GatherDir
@@ -60,7 +60,7 @@
         Dist::Zilla::Plugin::Git::GatherDir:
           include_untracked: 0
       name: '@RJBS/Git::GatherDir'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::CheckPrereqsIndexed
       name: '@RJBS/CheckPrereqsIndexed'
@@ -81,7 +81,7 @@
           run_under_travis: 0
           skip: []
       name: '@RJBS/RJBS-Outdated'
-      version: '0.054'
+      version: '0.057'
     -
       class: Dist::Zilla::Plugin::PromptIfStale
       config:
@@ -93,98 +93,98 @@
           run_under_travis: 0
           skip: []
       name: '@RJBS/CPAN-Outdated'
-      version: '0.054'
+      version: '0.057'
     -
       class: Dist::Zilla::Plugin::PruneCruft
       name: '@RJBS/@Filter/PruneCruft'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::ManifestSkip
       name: '@RJBS/@Filter/ManifestSkip'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::MetaYAML
       name: '@RJBS/@Filter/MetaYAML'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::License
       name: '@RJBS/@Filter/License'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Readme
       name: '@RJBS/@Filter/Readme'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::ExecDir
       name: '@RJBS/@Filter/ExecDir'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::ShareDir
       name: '@RJBS/@Filter/ShareDir'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Manifest
       name: '@RJBS/@Filter/Manifest'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::TestRelease
       name: '@RJBS/@Filter/TestRelease'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::ConfirmRelease
       name: '@RJBS/@Filter/ConfirmRelease'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::UploadToCPAN
       name: '@RJBS/@Filter/UploadToCPAN'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::MakeMaker
       config:
         Dist::Zilla::Role::TestRunner:
           default_jobs: 9
       name: '@RJBS/MakeMaker'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::AutoPrereqs
       name: '@RJBS/AutoPrereqs'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Git::NextVersion
       config:
         Dist::Zilla::Plugin::Git::NextVersion:
           first_version: '0.001'
-          version_by_branch: 1
+          version_by_branch: 0
           version_regexp: (?^:^([0-9]+\.[0-9]+)$)
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           repo_root: .
       name: '@RJBS/Git::NextVersion'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::PkgVersion
       name: '@RJBS/PkgVersion'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::MetaConfig
       name: '@RJBS/MetaConfig'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::MetaJSON
       name: '@RJBS/MetaJSON'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::NextRelease
       name: '@RJBS/NextRelease'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Test::ChangesHasContent
       name: '@RJBS/Test::ChangesHasContent'
-      version: '0.010'
+      version: '0.011'
     -
       class: Dist::Zilla::Plugin::PodSyntaxTests
       name: '@RJBS/PodSyntaxTests'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Test::ReportPrereqs
       name: '@RJBS/Test::ReportPrereqs'
@@ -196,7 +196,7 @@
           phase: test
           type: requires
       name: '@RJBS/TestMoreWithSubtests'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::PodWeaver
       config:
@@ -288,7 +288,7 @@
     -
       class: Dist::Zilla::Plugin::GithubMeta
       name: '@RJBS/GithubMeta'
-      version: '0.54'
+      version: '0.58'
     -
       class: Dist::Zilla::Plugin::Git::Check
       config:
@@ -301,16 +301,16 @@
           allow_dirty_match: []
           changelog: Changes
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           repo_root: .
       name: '@RJBS/@Git/Check'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::Git::Commit
       config:
         Dist::Zilla::Plugin::Git::Commit:
           add_files_in: []
-          commit_msg: v%v%n%n%c
+          commit_msg: v%V%n%n%c
         Dist::Zilla::Role::Git::DirtyFiles:
           allow_dirty:
             - Changes
@@ -318,12 +318,12 @@
           allow_dirty_match: []
           changelog: Changes
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           repo_root: .
         Dist::Zilla::Role::Git::StringFormatter:
           time_zone: local
       name: '@RJBS/@Git/Commit'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::Git::Tag
       config:
@@ -331,40 +331,40 @@
           branch: ~
           changelog: Changes
           signed: 0
-          tag: '1.946'
+          tag: '1.949'
           tag_format: '%v'
-          tag_message: v%v
+          tag_message: v%V
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           repo_root: .
         Dist::Zilla::Role::Git::StringFormatter:
           time_zone: local
       name: '@RJBS/@Git/Tag'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::Git::Push
       config:
         Dist::Zilla::Plugin::Git::Push:
           push_to:
-            - 'rjbs :'
+            - 'origin :'
             - 'github :'
           remotes_must_exist: 0
         Dist::Zilla::Role::Git::Repo:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           repo_root: .
       name: '@RJBS/@Git/Push'
-      version: '2.042'
+      version: '2.046'
     -
       class: Dist::Zilla::Plugin::Git::Contributors
       config:
         Dist::Zilla::Plugin::Git::Contributors:
-          git_version: 2.13.0
+          git_version: '2.24.3 (Apple Git-128)'
           include_authors: 0
           include_releaser: 1
           order_by: name
           paths: []
       name: '@RJBS/Git::Contributors'
-      version: '0.030'
+      version: '0.035'
     -
       class: Dist::Zilla::Plugin::Prereqs
       config:
@@ -372,63 +372,67 @@
           phase: runtime
           type: requires
       name: Prereqs
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::Encoding
       name: Encoding
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':InstallModules'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':IncModules'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':TestFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExtraTestFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ExecFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':PerlExecFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':ShareFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':MainModule'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':AllFiles'
-      version: '6.010'
+      version: '6.014'
     -
       class: Dist::Zilla::Plugin::FinderCode
       name: ':NoFiles'
-      version: '6.010'
+      version: '6.014'
   zilla:
     class: Dist::Zilla::Dist::Builder
     config:
       is_trial: '0'
-    version: '6.010'
+    version: '6.014'
 x_contributors:
   - 'Alex Vandiver <[email protected]>'
+  - 'Anirvan Chatterjee <[email protected]>'
   - "Arthur Axel 'fREW' Schmidt <[email protected]>"
   - 'Brian Cassidy <[email protected]>'
+  - 'Damian Lukowski <[email protected]>'
   - 'Dan Book <[email protected]>'
   - 'David Steinbrunner <[email protected]>'
   - 'Dotan Dimet <[email protected]>'
+  - 'dxdc <[email protected]>'
+  - 'Eric Wong <[email protected]>'
   - 'Geraint Edwards <[email protected]>'
   - 'Jesse Luehrs <[email protected]>'
   - 'Kurt Anderson <[email protected]>'
@@ -437,6 +441,9 @@
   - 'memememomo <[email protected]>'
   - 'Michael McClimon <[email protected]>'
   - 'Pali <[email protected]>'
+  - 'Ricardo Signes <[email protected]>'
   - 'Shawn Sorichetti <[email protected]>'
   - 'Tomohiro Hosaka <[email protected]>'
-x_serialization_backend: 'YAML::Tiny version 1.70'
+x_generated_by_perl: v5.30.2
+x_serialization_backend: 'YAML::Tiny version 1.73'
+x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/Makefile.PL 
new/Email-MIME-1.949/Makefile.PL
--- old/Email-MIME-1.946/Makefile.PL    2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/Makefile.PL    2020-05-24 16:25:39.000000000 +0200
@@ -1,4 +1,4 @@
-# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v6.010.
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker 
v6.014.
 use strict;
 use warnings;
 
@@ -19,7 +19,7 @@
   "PREREQ_PM" => {
     "Carp" => 0,
     "Email::Address::XS" => 0,
-    "Email::MIME::ContentType" => "1.022",
+    "Email::MIME::ContentType" => "1.023",
     "Email::MIME::Encodings" => "1.314",
     "Email::MessageID" => 0,
     "Email::Simple" => "2.212",
@@ -41,7 +41,7 @@
     "Test::More" => "0.96",
     "utf8" => 0
   },
-  "VERSION" => "1.946",
+  "VERSION" => "1.949",
   "test" => {
     "TESTS" => "t/*.t"
   }
@@ -51,7 +51,7 @@
 my %FallbackPrereqs = (
   "Carp" => 0,
   "Email::Address::XS" => 0,
-  "Email::MIME::ContentType" => "1.022",
+  "Email::MIME::ContentType" => "1.023",
   "Email::MIME::Encodings" => "1.314",
   "Email::MessageID" => 0,
   "Email::Simple" => "2.212",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/README new/Email-MIME-1.949/README
--- old/Email-MIME-1.946/README 2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/README 2020-05-24 16:25:39.000000000 +0200
@@ -1,7 +1,5 @@
-
-
 This archive contains the distribution Email-MIME,
-version 1.946:
+version 1.949:
 
   easy MIME message handling
 
@@ -11,5 +9,4 @@
 the same terms as the Perl 5 programming language system itself.
 
 
-This README file was generated by Dist::Zilla::Plugin::Readme v6.010.
-
+This README file was generated by Dist::Zilla::Plugin::Readme v6.014.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/lib/Email/MIME/Creator.pm 
new/Email-MIME-1.949/lib/Email/MIME/Creator.pm
--- old/Email-MIME-1.946/lib/Email/MIME/Creator.pm      2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/lib/Email/MIME/Creator.pm      2020-05-24 
16:25:39.000000000 +0200
@@ -3,7 +3,7 @@
 use warnings;
 package Email::MIME::Creator;
 # ABSTRACT: obsolete do-nothing library
-$Email::MIME::Creator::VERSION = '1.946';
+$Email::MIME::Creator::VERSION = '1.949';
 use parent q[Email::Simple::Creator];
 use Email::MIME;
 use Encode ();
@@ -44,7 +44,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/lib/Email/MIME/Encode.pm 
new/Email-MIME-1.949/lib/Email/MIME/Encode.pm
--- old/Email-MIME-1.946/lib/Email/MIME/Encode.pm       2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/lib/Email/MIME/Encode.pm       2020-05-24 
16:25:39.000000000 +0200
@@ -2,9 +2,10 @@
 use warnings;
 package Email::MIME::Encode;
 # ABSTRACT: a private helper for MIME header encoding
-$Email::MIME::Encode::VERSION = '1.946';
+$Email::MIME::Encode::VERSION = '1.949';
 use Carp ();
 use Encode ();
+use Email::MIME::Header;
 use MIME::Base64();
 use Module::Runtime ();
 use Scalar::Util;
@@ -179,7 +180,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 AUTHORS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Email-MIME-1.946/lib/Email/MIME/Header/AddressList.pm 
new/Email-MIME-1.949/lib/Email/MIME/Header/AddressList.pm
--- old/Email-MIME-1.946/lib/Email/MIME/Header/AddressList.pm   2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/lib/Email/MIME/Header/AddressList.pm   2020-05-24 
16:25:39.000000000 +0200
@@ -1,7 +1,7 @@
 # Copyright (c) 2016-2017 by Pali <[email protected]>
 
 package Email::MIME::Header::AddressList;
-$Email::MIME::Header::AddressList::VERSION = '1.946';
+$Email::MIME::Header::AddressList::VERSION = '1.949';
 use strict;
 use warnings;
 
@@ -335,7 +335,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 SYNOPSIS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/lib/Email/MIME/Header.pm 
new/Email-MIME-1.949/lib/Email/MIME/Header.pm
--- old/Email-MIME-1.946/lib/Email/MIME/Header.pm       2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/lib/Email/MIME/Header.pm       2020-05-24 
16:25:39.000000000 +0200
@@ -2,7 +2,7 @@
 use warnings;
 package Email::MIME::Header;
 # ABSTRACT: the header of a MIME message
-$Email::MIME::Header::VERSION = '1.946';
+$Email::MIME::Header::VERSION = '1.949';
 use parent 'Email::Simple::Header';
 
 use Carp ();
@@ -14,7 +14,7 @@
 
 our %header_to_class_map;
 
-{
+BEGIN {
   my @address_list_headers = qw(from sender reply-to to cc bcc);
   push @address_list_headers, map { "resent-$_" } @address_list_headers;
   push @address_list_headers, map { "downgraded-$_" } @address_list_headers; # 
RFC 5504
@@ -75,7 +75,7 @@
     Email::MIME::Encode::maybe_mime_encode_header($name, $_, 'UTF-8')
   } @vals;
 
-  $self->header_set($name => @values);
+  $self->header_raw_set($name => @values);
 }
 
 sub header_str_pairs {
@@ -143,7 +143,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/lib/Email/MIME/Modifier.pm 
new/Email-MIME-1.949/lib/Email/MIME/Modifier.pm
--- old/Email-MIME-1.946/lib/Email/MIME/Modifier.pm     2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/lib/Email/MIME/Modifier.pm     2020-05-24 
16:25:39.000000000 +0200
@@ -2,7 +2,7 @@
 use warnings;
 package Email::MIME::Modifier;
 # ABSTRACT: obsolete do-nothing library
-$Email::MIME::Modifier::VERSION = '1.946';
+$Email::MIME::Modifier::VERSION = '1.949';
 1;
 
 __END__
@@ -17,7 +17,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 AUTHORS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/lib/Email/MIME.pm 
new/Email-MIME-1.949/lib/Email/MIME.pm
--- old/Email-MIME-1.946/lib/Email/MIME.pm      2017-08-31 15:29:46.000000000 
+0200
+++ new/Email-MIME-1.949/lib/Email/MIME.pm      2020-05-24 16:25:39.000000000 
+0200
@@ -3,14 +3,14 @@
 use warnings;
 package Email::MIME;
 # ABSTRACT: easy MIME message handling
-$Email::MIME::VERSION = '1.946';
+$Email::MIME::VERSION = '1.949';
 use Email::Simple 2.212; # nth header value
 use parent qw(Email::Simple);
 
 use Carp ();
 use Email::MessageID;
 use Email::MIME::Creator;
-use Email::MIME::ContentType 1.022; # parse_content_disposition
+use Email::MIME::ContentType 1.023; # build_content_type
 use Email::MIME::Encode;
 use Email::MIME::Encodings 1.314;
 use Email::MIME::Header;
@@ -134,7 +134,7 @@
 
   my $self = shift->SUPER::new($text, $arg, @rest);
   $self->encode_check_set($encode_check);
-  $self->{ct} = parse_content_type($self->content_type);
+  $self->{ct} = parse_content_type($self->content_type_raw);
   $self->parts;
   return $self;
 }
@@ -174,7 +174,7 @@
 #pod
 #pod C<attributes> is a hash of MIME attributes to assign to the part, and may
 #pod override portions of the header set in the C<header> parameter. The hash 
keys
-#pod correspond directly to methods or modifying a message from
+#pod correspond directly to methods for modifying a message from
 #pod C<Email::MIME::Modifier>. The allowed keys are: content_type, charset, 
name,
 #pod format, boundary, encoding, disposition, and filename. They will be 
mapped to
 #pod C<"$attr\_set"> for message modification.
@@ -255,7 +255,7 @@
 
   my $email = $class->new($header, \%pass_on);
 
-  for my $key (keys %attrs) {
+  for my $key (sort keys %attrs) {
     $email->content_type_attribute_set($key => $attrs{$key});
   }
 
@@ -377,17 +377,25 @@
   return $str;
 }
 
+our $MAX_DEPTH = 10;
+
 sub parts_multipart {
   my $self     = shift;
   my $boundary = $self->{ct}->{attributes}->{boundary};
 
+  our $DEPTH ||= 0;
+
+  Carp::croak("attempted to parse a MIME message more than $MAX_DEPTH deep")
+    if $MAX_DEPTH && $DEPTH > $MAX_DEPTH;
+
   # Take a message, join all its lines together.  Now try to Email::MIME->new
   # it with 1.861 or earlier.  Death!  It tries to recurse endlessly on the
   # body, because every time it splits on boundary it gets itself. Obviously
   # that means it's a bogus message, but a mangled result (or exception) is
   # better than endless recursion. -- rjbs, 2008-01-07
   return $self->parts_single_part
-    unless $boundary and $self->body_raw =~ /^--\Q$boundary\E\s*$/sm;
+    unless defined $boundary and length $boundary and
+           $self->body_raw =~ /^--\Q$boundary\E\s*$/sm;
 
   $self->{body_raw} = $self->SUPER::body;
 
@@ -410,6 +418,7 @@
   for my $bit (@bits) {
     $bit =~ s/\A[\n\r]+//smg;
     $bit =~ s/(?<!\x0d)$self->{mycrlf}\Z//sm;
+    local $DEPTH = $DEPTH + 1;
     my $email = (ref $self)->new($bit, { encode_check => $self->encode_check 
});
     push @parts, $email;
   }
@@ -422,6 +431,7 @@
 sub force_decode_hook { 0 }
 sub decode_hook       { return $_[1] }
 sub content_type      { scalar shift->header("Content-type"); }
+sub content_type_raw  { scalar shift->header_raw("Content-type"); }
 
 sub debug_structure {
   my ($self, $level) = @_;
@@ -541,7 +551,7 @@
   my ($self, $value) = @_;
   my $ct_header = parse_content_type($self->header('Content-Type'));
 
-  if ($value) {
+  if (defined $value and length $value) {
     $ct_header->{attributes}->{boundary} = $value;
   } else {
     delete $ct_header->{attributes}->{boundary};
@@ -727,20 +737,14 @@
 sub filename_set {
   my ($self, $filename) = @_;
   my $dis_header = $self->header('Content-Disposition');
-  my ($disposition, $attrs);
+  my ($disposition, $attrs) = ('inline', {});
   if ($dis_header) {
     my $struct = parse_content_disposition($dis_header);
     $disposition = $struct->{type};
     $attrs = $struct->{attributes};
   }
   $filename ? $attrs->{filename} = $filename : delete $attrs->{filename};
-  $disposition ||= 'inline';
-
-  my $dis = $disposition;
-  while (my ($attr, $val) = each %{$attrs}) {
-    $dis .= qq[; $attr="$val"];
-  }
-
+  my $dis = build_content_disposition({type => $disposition, attributes => 
$attrs});
   $self->header_raw_set('Content-Disposition' => $dis);
 }
 
@@ -764,7 +768,8 @@
   if (@{$parts} > 1 or $ct_header->{type} eq 'multipart') {
 
     # setup multipart
-    $ct_header->{attributes}->{boundary} ||= Email::MessageID->new->user;
+    $ct_header->{attributes}->{boundary} = Email::MessageID->new->user
+      unless defined $ct_header->{attributes}->{boundary} and length 
$ct_header->{attributes}->{boundary};
     my $bound = $ct_header->{attributes}->{boundary};
     foreach my $part (@{$parts}) {
       $body .= "$self->{mycrlf}--$bound$self->{mycrlf}";
@@ -787,7 +792,11 @@
     my $from_ct = parse_content_type($parts->[0]->header('Content-Type'));
     @{$ct_header}{qw[type subtype]} = @{ $from_ct }{qw[type subtype]};
 
-    $ct_header->{attributes}{charset} = $from_ct->{attributes}{charset};
+    if (exists $from_ct->{attributes}{charset}) {
+      $ct_header->{attributes}{charset} = $from_ct->{attributes}{charset};
+    } else {
+      delete $ct_header->{attributes}{charset};
+    }
 
     $self->encoding_set($parts->[0]->header('Content-Transfer-Encoding'));
     delete $ct_header->{attributes}->{boundary};
@@ -881,11 +890,7 @@
 
 sub _compose_content_type {
   my ($self, $ct_header) = @_;
-  my $ct = join q{/}, @{$ct_header}{qw[type subtype]};
-  for my $attr (sort keys %{ $ct_header->{attributes} }) {
-    next unless defined (my $value = $ct_header->{attributes}{$attr});
-    $ct .= qq[; $attr="$value"];
-  }
+  my $ct = build_content_type({type => $ct_header->{type}, subtype => 
$ct_header->{subtype}, attributes => $ct_header->{attributes}});
   $self->header_raw_set('Content-Type' => $ct);
   $self->{ct} = $ct_header;
 }
@@ -935,7 +940,7 @@
 
 =head1 VERSION
 
-version 1.946
+version 1.949
 
 =head1 SYNOPSIS
 
@@ -1067,7 +1072,7 @@
 
 C<attributes> is a hash of MIME attributes to assign to the part, and may
 override portions of the header set in the C<header> parameter. The hash keys
-correspond directly to methods or modifying a message from
+correspond directly to methods for modifying a message from
 C<Email::MIME::Modifier>. The allowed keys are: content_type, charset, name,
 format, boundary, encoding, disposition, and filename. They will be mapped to
 C<"$attr\_set"> for message modification.
@@ -1333,6 +1338,12 @@
     + text/plain
     + text/html
 
+=head1 CONFIGURATION
+
+The variable C<$Email::MIME::MAX_DEPTH> is the maximum depth of parts that will
+be processed.  It defaults to 10, already higher than legitimate mail is ever
+likely to be.  This value may go up over time as the parser is improved.
+
 =head1 TODO
 
 All of the Email::MIME-specific guts should move to a single entry on the
@@ -1368,7 +1379,7 @@
 
 =head1 CONTRIBUTORS
 
-=for stopwords Alex Vandiver Arthur Axel 'fREW' Schmidt Brian Cassidy Dan Book 
David Steinbrunner Dotan Dimet Geraint Edwards Jesse Luehrs Kurt Anderson Lance 
A. Brown Matthew Horsfall (alh) memememomo Michael McClimon Pali Shawn 
Sorichetti Tomohiro Hosaka
+=for stopwords Alex Vandiver Anirvan Chatterjee Arthur Axel 'fREW' Schmidt 
Brian Cassidy Damian Lukowski Dan Book David Steinbrunner Dotan Dimet dxdc Eric 
Wong Geraint Edwards Jesse Luehrs Kurt Anderson Lance A. Brown Matthew Horsfall 
(alh) memememomo Michael McClimon Pali Ricardo Signes Shawn Sorichetti Tomohiro 
Hosaka
 
 =over 4
 
@@ -1378,6 +1389,10 @@
 
 =item *
 
+Anirvan Chatterjee <[email protected]>
+
+=item *
+
 Arthur Axel 'fREW' Schmidt <[email protected]>
 
 =item *
@@ -1386,6 +1401,10 @@
 
 =item *
 
+Damian Lukowski <[email protected]>
+
+=item *
+
 Dan Book <[email protected]>
 
 =item *
@@ -1398,6 +1417,14 @@
 
 =item *
 
+dxdc <[email protected]>
+
+=item *
+
+Eric Wong <[email protected]>
+
+=item *
+
 Geraint Edwards <[email protected]>
 
 =item *
@@ -1430,6 +1457,10 @@
 
 =item *
 
+Ricardo Signes <[email protected]>
+
+=item *
+
 Shawn Sorichetti <[email protected]>
 
 =item *
@@ -1569,6 +1600,12 @@
 #pod     + text/plain
 #pod     + text/html
 #pod
+#pod =head1 CONFIGURATION
+#pod
+#pod The variable C<$Email::MIME::MAX_DEPTH> is the maximum depth of parts 
that will
+#pod be processed.  It defaults to 10, already higher than legitimate mail is 
ever
+#pod likely to be.  This value may go up over time as the parser is improved.
+#pod
 #pod =head1 TODO
 #pod
 #pod All of the Email::MIME-specific guts should move to a single entry on the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/00-report-prereqs.dd 
new/Email-MIME-1.949/t/00-report-prereqs.dd
--- old/Email-MIME-1.946/t/00-report-prereqs.dd 2017-08-31 15:29:46.000000000 
+0200
+++ new/Email-MIME-1.949/t/00-report-prereqs.dd 2020-05-24 16:25:39.000000000 
+0200
@@ -14,7 +14,7 @@
                       'requires' => {
                                       'Carp' => '0',
                                       'Email::Address::XS' => '0',
-                                      'Email::MIME::ContentType' => '1.022',
+                                      'Email::MIME::ContentType' => '1.023',
                                       'Email::MIME::Encodings' => '1.314',
                                       'Email::MessageID' => '0',
                                       'Email::Simple' => '2.212',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/body-ref.t 
new/Email-MIME-1.949/t/body-ref.t
--- old/Email-MIME-1.946/t/body-ref.t   2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/t/body-ref.t   2020-05-24 16:25:39.000000000 +0200
@@ -27,7 +27,7 @@
 
     isnt(index($email->body, 'I LIKE PIE'), -1, "$prefix: target string");
 
-    like($email->header('Content-Type'), qr/invented="xyzzy"/, "custom CT 
param");
+    like($email->header('Content-Type'), qr/invented=(?:"xyzzy"|xyzzy)/, 
"custom CT param");
   };
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/ct_attrs.t 
new/Email-MIME-1.949/t/ct_attrs.t
--- old/Email-MIME-1.946/t/ct_attrs.t   2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/t/ct_attrs.t   2020-05-24 16:25:39.000000000 +0200
@@ -1,6 +1,7 @@
 use strict;
 use warnings;
-use Test::More tests => 12;
+use utf8;
+use Test::More tests => 16;
 
 use_ok 'Email::MIME';
 use_ok 'Email::MIME::Modifier';
@@ -63,8 +64,8 @@
     },
 }, 'ct with name worked' );
 
-is $email->header('Content-Type'),
-    'text/plain; format="flowed"; name="foo.txt"',
+like $email->header('Content-Type'),
+    qr'^text/plain; format=(?:"flowed"|flowed); name=(?:"foo\.txt"|foo\.txt)$',
     'ct format is correct';
 
 $email->boundary_set( 'marker' );
@@ -80,8 +81,8 @@
 
 $email->content_type_attribute_set( 'Bananas' => 'true' );
 
-is $email->header('Content-Type'),
-    'text/plain; bananas="true"; boundary="marker"; format="flowed"; 
name="foo.txt"',
+like $email->header('Content-Type'),
+    qr'^text/plain; bananas=(?:"true"|true); boundary=(?:"marker"|marker); 
format=(?:"flowed"|flowed); name=(?:"foo\.txt"|foo\.txt)$',
     'ct format is correct';
 
 is_deeply( parse_content_type($email->header('Content-Type')), {
@@ -94,3 +95,34 @@
     },
 }, 'ct with misc. attr (bananas) worked' );
 
+$email->name_set( 'hah"ha"\'ha\\' );
+
+is_deeply( parse_content_type($email->header('Content-Type')), {
+    ct(qw(text plain)),
+    attributes => {
+        bananas => 'true',
+        boundary => 'marker',
+        format => 'flowed',
+        name => 'hah"ha"\'ha\\',
+    },
+}, 'ct with quotes in name worked' );
+
+like $email->header('Content-Type'),
+    qr'^text/plain; bananas=(?:"true"|true); boundary=(?:"marker"|marker); 
format=(?:"flowed"|flowed); name="hah\\"ha\\"\'ha\\\\"$',
+    'ct format is correct';
+
+$email->name_set( 'kůň.pdf' );
+
+is_deeply( parse_content_type($email->header('Content-Type')), {
+    ct(qw(text plain)),
+    attributes => {
+        bananas => 'true',
+        boundary => 'marker',
+        format => 'flowed',
+        name => 'kůň.pdf',
+    },
+}, 'ct with unicode name worked' );
+
+like $email->header('Content-Type'),
+    qr'^text/plain; bananas=(?:"true"|true); boundary=(?:"marker"|marker); 
format=(?:"flowed"|flowed); name\*=UTF-8\'\'k%C5%AF%C5%88\.pdf; name=kun\.pdf$',
+    'ct format is correct';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/disposition.t 
new/Email-MIME-1.949/t/disposition.t
--- old/Email-MIME-1.946/t/disposition.t        2017-08-31 15:29:46.000000000 
+0200
+++ new/Email-MIME-1.949/t/disposition.t        2020-05-24 16:25:39.000000000 
+0200
@@ -1,6 +1,7 @@
 use strict;
 use warnings;
-use Test::More tests => 7;
+use utf8;
+use Test::More tests => 9;
 
 use_ok 'Email::MIME';
 use_ok 'Email::MIME::Modifier';
@@ -20,13 +21,20 @@
 
 $email->filename_set( 'loco.pdf' );
 
-is $email->header('Content-Disposition'), 'attachment; filename="loco.pdf"', 
'filename_set worked';
+like $email->header('Content-Disposition'), qr'^attachment; 
filename=(?:"loco\.pdf"|loco\.pdf)$', 'filename_set worked';
 
 $email->disposition_set('inline');
 
-is $email->header('Content-Disposition'), 'inline; filename="loco.pdf"', 
're-reset worked';
+like $email->header('Content-Disposition'), qr'^inline; 
filename=(?:"loco\.pdf"|loco\.pdf)$', 're-reset worked';
 
 $email->filename_set(undef);
 
 is $email->header('Content-Disposition'), 'inline', 'filename_set(undef) 
worked';
 
+$email->disposition_set('attachment');
+
+$email->filename_set('hah"ha"\'ha\\');
+is $email->header('Content-Disposition'), q(attachment; 
filename="hah\\"ha\\"'ha\\\\");
+
+$email->filename_set('kůň.pdf');
+is $email->header('Content-Disposition'), q(attachment; 
filename*=UTF-8''k%C5%AF%C5%88.pdf; filename=kun.pdf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/email-mime-encode.t 
new/Email-MIME-1.949/t/email-mime-encode.t
--- old/Email-MIME-1.946/t/email-mime-encode.t  1970-01-01 01:00:00.000000000 
+0100
+++ new/Email-MIME-1.949/t/email-mime-encode.t  2020-05-24 16:25:39.000000000 
+0200
@@ -0,0 +1,19 @@
+use strict;
+use warnings;
+use utf8;
+use Test::More;
+
+BEGIN {
+  plan skip_all => 'Email::Address::XS is required for this test' unless eval 
{ require Email::Address::XS };
+  plan 'no_plan';
+}
+
+BEGIN {
+  use_ok('Email::MIME::Encode');
+}
+
+is(
+  Email::MIME::Encode::maybe_mime_encode_header('To', '"Name ☺" <user@host>'),
+  '=?UTF-8?B?TmFtZSDimLo=?= <user@host>',
+  'Email::MIME::Encode::maybe_mime_encode_header works without "use 
Email::MIME::Header"'
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/encode-check.t 
new/Email-MIME-1.949/t/encode-check.t
--- old/Email-MIME-1.946/t/encode-check.t       2017-08-31 15:29:46.000000000 
+0200
+++ new/Email-MIME-1.949/t/encode-check.t       2020-05-24 16:25:39.000000000 
+0200
@@ -36,7 +36,7 @@
   my $email = Email::MIME->create(
     parts => [
         q[Totally ascii first part],
-        q[Look, a snowman: ☃],
+        qq[Look, a snowman: \x{E2}\x{98}\x{83}],
     ],
     encode_check => Encode::FB_DEFAULT,
   );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/t/multipart.t 
new/Email-MIME-1.949/t/multipart.t
--- old/Email-MIME-1.946/t/multipart.t  2017-08-31 15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/t/multipart.t  2020-05-24 16:25:39.000000000 +0200
@@ -67,15 +67,15 @@
 {
   my $email = Email::MIME->new(<<'END');
 Subject: hello
-Content-Type: multipart/mixed; boundary="bananas"
+Content-Type: multipart/mixed; boundary="0"
 
 Prelude
 
---bananas
+--0
 Content-Type: text/plain
 
 This is plain text.
---bananas--
+--0--
 
 Postlude
 END
@@ -83,6 +83,13 @@
   like($email->as_string, qr/Prelude/,  "prelude in string");
   like($email->as_string, qr/Postlude/, "postlude in string");
 
+  my @p;
+  $email->walk_parts(sub {
+    my $str = eval { $_[0]->body_str };
+    push @p, $str if defined $str;
+  });
+  is_deeply(\@p, ['This is plain text.']);
+
   $email->parts_set([ $email->subparts ]);
 
   unlike($email->as_string, qr/Prelude/,  "prelude in string");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/xt/release/changes_has_content.t 
new/Email-MIME-1.949/xt/release/changes_has_content.t
--- old/Email-MIME-1.946/xt/release/changes_has_content.t       2017-08-31 
15:29:46.000000000 +0200
+++ new/Email-MIME-1.949/xt/release/changes_has_content.t       2020-05-24 
16:25:39.000000000 +0200
@@ -1,11 +1,10 @@
-#!perl
-
 use Test::More tests => 2;
 
 note 'Checking Changes';
 my $changes_file = 'Changes';
-my $newver = '1.946';
+my $newver = '1.949';
 my $trial_token = '-TRIAL';
+my $encoding = 'UTF-8';
 
 SKIP: {
     ok(-e $changes_file, "$changes_file file exists")
@@ -16,8 +15,6 @@
 
 done_testing;
 
-# _get_changes copied and adapted from Dist::Zilla::Plugin::Git::Commit
-# by Jerome Quelin
 sub _get_changes
 {
     my $newver = shift;
@@ -25,6 +22,10 @@
     # parse changelog to find commit message
     open(my $fh, '<', $changes_file) or die "cannot open $changes_file: $!";
     my $changelog = join('', <$fh>);
+    if ($encoding) {
+        require Encode;
+        $changelog = Encode::decode($encoding, $changelog, Encode::FB_CROAK());
+    }
     close $fh;
 
     my @content =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Email-MIME-1.946/xt/stupid-big.t 
new/Email-MIME-1.949/xt/stupid-big.t
--- old/Email-MIME-1.946/xt/stupid-big.t        1970-01-01 01:00:00.000000000 
+0100
+++ new/Email-MIME-1.949/xt/stupid-big.t        2020-05-24 16:25:39.000000000 
+0200
@@ -0,0 +1,58 @@
+#!perl
+# vim:ft=perl
+use strict;
+use warnings;
+
+use Test::More;
+use Email::MIME;
+
+plan skip_all => "This is more of a helper than a test.";
+
+sub very_deep_email_string {
+  my $depth = $_[0] || 250_000;
+
+  my $str = q{};
+  my $boundary_prefix = "a" x 77;
+  for my $i (1 .. $depth) {
+    my $boundary = sprintf "$boundary_prefix%08x", $i;
+    $str .= "Content-Type: multipart/mixed; boundary=$boundary\n";
+    $str .= "\n";
+    $str .= "--$boundary\n\n";
+  }
+
+  for my $i (reverse(1 .. $depth)) {
+    $str .= sprintf "--${boundary_prefix}%08x--\n\n", $i;
+  }
+
+  return $str;
+}
+
+sub very_attached_email_string {
+  my $parts = $_[0] || 250_000;
+
+  my $str = q{};
+  my $boundary_prefix = "a" x 77;
+  for my $i (1 .. $parts) {
+    my $boundary = sprintf "$boundary_prefix%08x", $i;
+    $str .= "Content-Type: text/plain; boundary=$boundary\n";
+    $str .= "\n";
+    $str .= "--$boundary\n\n";
+    $str .= sprintf "--${boundary_prefix}%08x--\n\n", $i;
+  }
+
+  return $str;
+}
+
+print `ps -o rss -p $$`;
+
+my $VAES = very_attached_email_string;
+warn length($VAES) / 1024;
+my $email = Email::MIME->new($VAES);
+
+print `ps -o rss -p $$`;
+
+# local $Email::MIME::MAX_DEPTH = 2;
+
+$email = Email::MIME->new( very_deep_email_string() );
+
+print `ps -o rss -p $$`;


Reply via email to