https://help.github.com/articles/creating-a-pull-request
-All pull requests for this distribution will be automatically tested on Linux
-by Travis at: https://travis-ci.com/libwww-perl/libwww-perl
-Results will be visible in the pull request on GitHub. Follow the appropriate
-links for details when tests fail.
+All pull requests for this distribution will be automatically tested on Linux,
+MacOS, and Windows by GitHub Workflows. Results will be visible in the pull
+request on GitHub. Follow the appropriate links for details when tests fail.
If you have found a bug, but do not have an accompanying patch to fix it, you
can submit an issue report here:
This distribution maintains the generated `META.json` and either `Makefile.PL`
or `Build.PL` in the repository. This allows two things:
-[Travis CI](https://travis-ci.org/) can build and test the distribution without
-requiring Dist::Zilla, and the distribution can be installed directly from
+GitHub Workflows can build and test the distribution without requiring
+Dist::Zilla, and the distribution can be installed directly from
Github or a local git repository using `cpanm` for testing (again, not
requiring Dist::Zilla).
Change history for libwww-perl
+6.56 2021-08-17 13:57:12Z
+ - Update the CONTRIBUTING doc to no longer reference TravisCI. (GH #384) (Slaven Rezić)
+ - Increase test coverage for env_proxy() (GH#383) (Slaven Rezić)
+ - When a truthy Content-Type is provided, override the default (GH#385)
+ (Matthew Horsfall (alh))
+
6.55 2021-06-17 13:57:06Z
- Attempt to avoid rare fails in redirect.t (GH#380) (Arne Johannessen)
- "Package" refers to the collection of files distributed by the Copyright
Holder, and derivatives of that collection of files created through
- textual modification.
+ textual modification.
- "Standard Version" refers to such a Package if it has not been modified,
or has been modified in accordance with the wishes of the Copyright
- Holder.
+ Holder.
- "Copyright Holder" is whoever is named in the copyright or copyrights for
- the package.
+ the package.
- "You" is you, if you're thinking about copying or distributing this Package.
- "Reasonable copying fee" is whatever you can justify on the basis of media
cost, duplication charges, time of people involved, and so on. (You will
not be required to justify it to the Copyright Holder, but only to the
- computing community at large as a market that must bear the fee.)
+ computing community at large as a market that must bear the fee.)
- "Freely Available" means that no fee is charged for the item itself, though
there may be fees involved in handling the item. It also means that
recipients of the item may redistribute it under the same conditions they
- received it.
+ received it.
1. You may make and give away verbatim copies of the source form of the
Standard Version of this Package without restriction, provided that you
9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
-MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
-# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.020.
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.024.
CONTRIBUTING.md
Changes
INSTALL
"Gisle Aas <gisle@activestate.com>"
],
"dynamic_config" : 1,
- "generated_by" : "Dist::Zilla version 6.020, CPAN::Meta::Converter version 2.150010",
+ "generated_by" : "Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010",
"license" : [
"perl_5"
],
"provides" : {
"LWP" : {
"file" : "lib/LWP.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Authen::Basic" : {
"file" : "lib/LWP/Authen/Basic.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Authen::Digest" : {
"file" : "lib/LWP/Authen/Digest.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Authen::Ntlm" : {
"file" : "lib/LWP/Authen/Ntlm.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::ConnCache" : {
"file" : "lib/LWP/ConnCache.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Debug" : {
"file" : "lib/LWP/Debug.pm",
- "version" : "6.55",
+ "version" : "6.56",
"x_deprecated" : 1
},
"LWP::Debug::TraceHTTP" : {
"file" : "lib/LWP/Debug/TraceHTTP.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::DebugFile" : {
"file" : "lib/LWP/DebugFile.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::MemberMixin" : {
"file" : "lib/LWP/MemberMixin.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol" : {
"file" : "lib/LWP/Protocol.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::cpan" : {
"file" : "lib/LWP/Protocol/cpan.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::data" : {
"file" : "lib/LWP/Protocol/data.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::file" : {
"file" : "lib/LWP/Protocol/file.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::ftp" : {
"file" : "lib/LWP/Protocol/ftp.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::gopher" : {
"file" : "lib/LWP/Protocol/gopher.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::http" : {
"file" : "lib/LWP/Protocol/http.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::loopback" : {
"file" : "lib/LWP/Protocol/loopback.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::mailto" : {
"file" : "lib/LWP/Protocol/mailto.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::nntp" : {
"file" : "lib/LWP/Protocol/nntp.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Protocol::nogo" : {
"file" : "lib/LWP/Protocol/nogo.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::RobotUA" : {
"file" : "lib/LWP/RobotUA.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::Simple" : {
"file" : "lib/LWP/Simple.pm",
- "version" : "6.55"
+ "version" : "6.56"
},
"LWP::UserAgent" : {
"file" : "lib/LWP/UserAgent.pm",
- "version" : "6.55"
+ "version" : "6.56"
}
},
"release_status" : "stable",
"x_IRC" : "irc://irc.perl.org/#lwp",
"x_MailingList" : "mailto:libwww@perl.org"
},
- "version" : "6.55",
+ "version" : "6.56",
"x_Dist_Zilla" : {
"perl" : {
"version" : "5.030003"
}
},
"name" : "Git::GatherDir",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::MetaConfig",
"name" : "MetaConfig",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::MetaProvides::Package",
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : "MetaProvides::Package/AUTOVIV/:InstallModulesPM",
- "version" : "6.020"
+ "version" : "6.024"
}
],
"include_underscores" : 0
{
"class" : "Dist::Zilla::Plugin::MetaNoIndex",
"name" : "MetaNoIndex",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::MetaYAML",
"name" : "MetaYAML",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::MetaJSON",
"name" : "MetaJSON",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::MetaResources",
"name" : "MetaResources",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::Deprecated",
{
"class" : "Dist::Zilla::Plugin::Manifest",
"name" : "Manifest",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::License",
"name" : "License",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::InstallGuide",
{
"class" : "Dist::Zilla::Plugin::ExecDir",
"name" : "ExecDir",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::Prereqs::FromCPANfile",
"config" : {
"Dist::Zilla::Plugin::MakeMaker" : {
"make_path" : "make",
- "version" : "6.020"
+ "version" : "6.024"
},
"Dist::Zilla::Role::TestRunner" : {
- "default_jobs" : "4",
- "version" : "6.020"
+ "default_jobs" : "1",
+ "version" : "6.024"
}
},
"name" : "MakeMaker::Awesome",
{
"class" : "Dist::Zilla::Plugin::PodSyntaxTests",
"name" : "PodSyntaxTests",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable",
}
},
"name" : "Git::Check",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::CheckStrictVersion",
"class" : "Dist::Zilla::Plugin::RunExtraTests",
"config" : {
"Dist::Zilla::Role::TestRunner" : {
- "default_jobs" : "4"
+ "default_jobs" : "1"
}
},
"name" : "RunExtraTests",
{
"class" : "Dist::Zilla::Plugin::TestRelease",
"name" : "TestRelease",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::UploadToCPAN",
"name" : "UploadToCPAN",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod",
}
},
"name" : "@Git::VersionManager/pluginbundle version",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::RewriteVersion::Transitional",
}
},
"name" : "@Git::VersionManager/release snapshot",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Tag",
"branch" : null,
"changelog" : "Changes",
"signed" : 0,
- "tag" : "v6.55",
+ "tag" : "v6.56",
"tag_format" : "v%V",
"tag_message" : "v%V"
},
}
},
"name" : "@Git::VersionManager/Git::Tag",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional",
{
"class" : "Dist::Zilla::Plugin::NextRelease",
"name" : "@Git::VersionManager/NextRelease",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::Git::Commit",
}
},
"name" : "@Git::VersionManager/post-release commit",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::Git::Push",
}
},
"name" : "Git::Push",
- "version" : "2.047"
+ "version" : "2.048"
},
{
"class" : "Dist::Zilla::Plugin::ConfirmRelease",
"name" : "ConfirmRelease",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":InstallModules",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":IncModules",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":TestFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExtraTestFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ExecFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":PerlExecFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":ShareFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":MainModule",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":AllFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : ":NoFiles",
- "version" : "6.020"
+ "version" : "6.024"
},
{
"class" : "Dist::Zilla::Plugin::FinderCode",
"name" : "MetaProvides::Package/AUTOVIV/:InstallModulesPM",
- "version" : "6.020"
+ "version" : "6.024"
}
],
"zilla" : {
"config" : {
"is_trial" : 0
},
- "version" : "6.020"
+ "version" : "6.024"
}
},
"x_contributors" : [
"Shoichi Kaji <skaji@cpan.org>",
"simbabque <simbabque@cpan.org>",
"Slaven Rezic <slaven@rezic.de>",
+ "Slaven Rezic <slaven.rezic@idealo.de>",
"Spiros Denaxas <s.denaxas@gmail.com>",
"Steffen Ullrich <Steffen_Ullrich@genua.de>",
"Steve Hay <SteveHay@planit.com>",
Getopt::Long: '0'
Module::Metadata: '0'
dynamic_config: 1
-generated_by: 'Dist::Zilla version 6.020, CPAN::Meta::Converter version 2.150010'
+generated_by: 'Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
provides:
LWP:
file: lib/LWP.pm
- version: '6.55'
+ version: '6.56'
LWP::Authen::Basic:
file: lib/LWP/Authen/Basic.pm
- version: '6.55'
+ version: '6.56'
LWP::Authen::Digest:
file: lib/LWP/Authen/Digest.pm
- version: '6.55'
+ version: '6.56'
LWP::Authen::Ntlm:
file: lib/LWP/Authen/Ntlm.pm
- version: '6.55'
+ version: '6.56'
LWP::ConnCache:
file: lib/LWP/ConnCache.pm
- version: '6.55'
+ version: '6.56'
LWP::Debug:
file: lib/LWP/Debug.pm
- version: '6.55'
+ version: '6.56'
x_deprecated: 1
LWP::Debug::TraceHTTP:
file: lib/LWP/Debug/TraceHTTP.pm
- version: '6.55'
+ version: '6.56'
LWP::DebugFile:
file: lib/LWP/DebugFile.pm
- version: '6.55'
+ version: '6.56'
LWP::MemberMixin:
file: lib/LWP/MemberMixin.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol:
file: lib/LWP/Protocol.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::cpan:
file: lib/LWP/Protocol/cpan.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::data:
file: lib/LWP/Protocol/data.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::file:
file: lib/LWP/Protocol/file.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::ftp:
file: lib/LWP/Protocol/ftp.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::gopher:
file: lib/LWP/Protocol/gopher.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::http:
file: lib/LWP/Protocol/http.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::loopback:
file: lib/LWP/Protocol/loopback.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::mailto:
file: lib/LWP/Protocol/mailto.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::nntp:
file: lib/LWP/Protocol/nntp.pm
- version: '6.55'
+ version: '6.56'
LWP::Protocol::nogo:
file: lib/LWP/Protocol/nogo.pm
- version: '6.55'
+ version: '6.56'
LWP::RobotUA:
file: lib/LWP/RobotUA.pm
- version: '6.55'
+ version: '6.56'
LWP::Simple:
file: lib/LWP/Simple.pm
- version: '6.55'
+ version: '6.56'
LWP::UserAgent:
file: lib/LWP/UserAgent.pm
- version: '6.55'
+ version: '6.56'
requires:
Digest::MD5: '0'
Encode: '2.12'
bugtracker: https://github.com/libwww-perl/libwww-perl/issues
homepage: https://github.com/libwww-perl/libwww-perl
repository: https://github.com/libwww-perl/libwww-perl.git
-version: '6.55'
+version: '6.56'
x_Dist_Zilla:
perl:
version: '5.030003'
Dist::Zilla::Plugin::Git::GatherDir:
include_untracked: 0
name: Git::GatherDir
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::MetaConfig
name: MetaConfig
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::MetaProvides::Package
config:
-
class: Dist::Zilla::Plugin::FinderCode
name: MetaProvides::Package/AUTOVIV/:InstallModulesPM
- version: '6.020'
+ version: '6.024'
include_underscores: 0
Dist::Zilla::Role::MetaProvider::Provider:
$Dist::Zilla::Role::MetaProvider::Provider::VERSION: '2.002004'
-
class: Dist::Zilla::Plugin::MetaNoIndex
name: MetaNoIndex
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::MetaYAML
name: MetaYAML
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::MetaJSON
name: MetaJSON
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::MetaResources
name: MetaResources
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::Deprecated
config:
-
class: Dist::Zilla::Plugin::Manifest
name: Manifest
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::License
name: License
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::InstallGuide
config:
-
class: Dist::Zilla::Plugin::ExecDir
name: ExecDir
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::Prereqs::FromCPANfile
name: Prereqs::FromCPANfile
config:
Dist::Zilla::Plugin::MakeMaker:
make_path: make
- version: '6.020'
+ version: '6.024'
Dist::Zilla::Role::TestRunner:
- default_jobs: '4'
- version: '6.020'
+ default_jobs: '1'
+ version: '6.024'
name: MakeMaker::Awesome
version: '0.48'
-
-
class: Dist::Zilla::Plugin::PodSyntaxTests
name: PodSyntaxTests
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable
name: Test::Pod::Coverage::Configurable
git_version: 2.32.0
repo_root: .
name: Git::Check
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::CheckStrictVersion
name: CheckStrictVersion
class: Dist::Zilla::Plugin::RunExtraTests
config:
Dist::Zilla::Role::TestRunner:
- default_jobs: '4'
+ default_jobs: '1'
name: RunExtraTests
version: '0.029'
-
-
class: Dist::Zilla::Plugin::TestRelease
name: TestRelease
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::UploadToCPAN
name: UploadToCPAN
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::ReadmeAnyFromPod
config:
phase: develop
type: recommends
name: '@Git::VersionManager/pluginbundle version'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::RewriteVersion::Transitional
config:
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Git::VersionManager/release snapshot'
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Tag
config:
branch: ~
changelog: Changes
signed: 0
- tag: v6.55
+ tag: v6.56
tag_format: v%V
tag_message: v%V
Dist::Zilla::Role::Git::Repo:
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Git::VersionManager/Git::Tag'
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::BumpVersionAfterRelease::Transitional
config:
-
class: Dist::Zilla::Plugin::NextRelease
name: '@Git::VersionManager/NextRelease'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::Git::Commit
config:
Dist::Zilla::Role::Git::StringFormatter:
time_zone: local
name: '@Git::VersionManager/post-release commit'
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::Git::Push
config:
git_version: 2.32.0
repo_root: .
name: Git::Push
- version: '2.047'
+ version: '2.048'
-
class: Dist::Zilla::Plugin::ConfirmRelease
name: ConfirmRelease
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':InstallModules'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':IncModules'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':TestFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExtraTestFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ExecFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':PerlExecFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':ShareFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':MainModule'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':AllFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: ':NoFiles'
- version: '6.020'
+ version: '6.024'
-
class: Dist::Zilla::Plugin::FinderCode
name: MetaProvides::Package/AUTOVIV/:InstallModulesPM
- version: '6.020'
+ version: '6.024'
zilla:
class: Dist::Zilla::Dist::Builder
config:
is_trial: '0'
- version: '6.020'
+ version: '6.024'
x_contributors:
- 'Adam Kennedy <adamk@cpan.org>'
- 'Adam Sjogren <asjo@koldfront.dk>'
- 'Shoichi Kaji <skaji@cpan.org>'
- 'simbabque <simbabque@cpan.org>'
- 'Slaven Rezic <slaven@rezic.de>'
+ - 'Slaven Rezic <slaven.rezic@idealo.de>'
- 'Spiros Denaxas <s.denaxas@gmail.com>'
- 'Steffen Ullrich <Steffen_Ullrich@genua.de>'
- 'Steve Hay <SteveHay@planit.com>'
"Test::Needs" => 0,
"Test::RequiresInternet" => 0
},
- "VERSION" => "6.55",
+ "VERSION" => "6.56",
"test" => {
"TESTS" => "t/*.t t/base/*.t t/base/protocols/*.t t/leak/*.t t/local/*.t t/robot/*.t"
}
package LWP;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require LWP::UserAgent; # this should load everything you need
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require Encode;
require MIME::Base64;
use strict;
use base 'LWP::Authen::Basic';
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require Digest::MD5;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
use Authen::NTLM "1.02";
use MIME::Base64 "2.12";
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
our $DEBUG;
sub new {
package LWP::Debug; # legacy
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require Exporter;
our @ISA = qw(Exporter);
use strict;
use base 'LWP::Protocol::http';
-our $VERSION = '6.55';
+our $VERSION = '6.56';
package # hide from PAUSE
LWP::Debug::TraceHTTP::Socket;
package LWP::DebugFile;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
# legacy stub
package LWP::MemberMixin;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
sub _elem {
my $self = shift;
use base 'LWP::MemberMixin';
-our $VERSION = '6.55';
+our $VERSION = '6.56';
use strict;
use Carp ();
use base qw(LWP::Protocol);
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require URI;
require HTTP::Status;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
require HTTP::Status;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require LWP::MediaTypes;
require HTTP::Request;
use base qw(LWP::Protocol);
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
use Carp ();
use HTTP::Status ();
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
require HTTP::Status;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
require HTTP::Status;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
use Carp;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
use base qw(LWP::Protocol);
our $SENDMAIL;
use base qw(LWP::Protocol);
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
require HTTP::Status;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require HTTP::Response;
require HTTP::Status;
use base qw(LWP::UserAgent);
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require WWW::RobotRules;
require HTTP::Request;
use strict;
-our $VERSION = '6.55';
+our $VERSION = '6.56';
require Exporter;
use Scalar::Util qw(blessed);
use Try::Tiny qw(try catch);
-our $VERSION = '6.55';
+our $VERSION = '6.56';
sub new
{
return $self->request( HTTP::Request::Common::GET( @parameters ), @suff );
}
-sub _has_raw_content {
+sub _maybe_copy_default_content_type {
my $self = shift;
- shift; # drop url
+ my $req = shift;
+
+ my $default_ct = $self->default_header('Content-Type');
+ return unless defined $default_ct;
+
+ # drop url
+ shift;
- # taken from HTTP::Request::Common::request_type_with_data
+ # adapted from HTTP::Request::Common::request_type_with_data
my $content;
$content = shift if @_ and ref $_[0];
- my($k, $v);
- while (($k,$v) = splice(@_, 0, 2)) {
+
+ # We only care about the final value, really
+ my $ct;
+
+ my ($k, $v);
+ while (($k, $v) = splice(@_, 0, 2)) {
if (lc($k) eq 'content') {
$content = $v;
}
+ elsif (lc($k) eq 'content-type') {
+ $ct = $v;
+ }
}
- # We were given Content => 'string' ...
- if (defined $content && ! ref ($content)) {
- return 1;
- }
-
- return;
-}
-
-sub _maybe_copy_default_content_type {
- my ($self, $req, @parameters) = @_;
+ # Content-type provided and truthy? skip
+ return if $ct;
- # If we have a default Content-Type and someone passes in a POST/PUT
- # with Content => 'some-string-value', use that Content-Type instead
- # of x-www-form-urlencoded
- my $ct = $self->default_header('Content-Type');
- return unless defined $ct && $self->_has_raw_content(@parameters);
+ # Content is not just a string? Then it must be x-www-form-urlencoded
+ return if defined $content && ref($content);
- $req->header('Content-Type' => $ct);
+ # Provide default
+ $req->header('Content-Type' => $default_ct);
}
sub post {
use LWP::UserAgent;
use HTTP::Request ();
-plan tests => 6;
+plan tests => 18;
# Prevent environment from interfering with test:
delete $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME};
delete $ENV{PERL_LWP_ENV_PROXY};
# we can only use HTTP::Request >= 6.07
-my $ver = $HTTP::Request::VERSION || '6.00';
-my $ver_ok = eval {HTTP::Request->VERSION("6.07");};
-my $patch_ver_ok = eval {HTTP::Request->VERSION("6.12");};
+my $ver = $HTTP::Request::VERSION || '6.00';
+my $ver_ok = eval { HTTP::Request->VERSION("6.07"); };
+my $patch_ver_ok = eval { HTTP::Request->VERSION("6.12"); };
diag "Some tests for the PUT/PATCH methods can only be run on ";
diag "HTTP::Request version 6.07/6.12 or higher.";
diag "If your version isn't good enough, we'll skip those.";
-diag "Your version is $ver and that's ". ($ver_ok ? '' : 'not '). 'good enough';
+diag "Your version is $ver and that's "
+ . ($ver_ok ? '' : 'not ')
+ . 'good enough';
# default_header 'Content-Type' should be honored in POST/PUT
# if the "Content => 'string'" form is used. Otherwise, x-www-form-urlencoded
# will be used
my $url = "http://www.example.com";
-my $ua = LWP::UserAgent->new;
+my $ua = LWP::UserAgent->new;
$ua->default_header('Content-Type' => 'application/json');
$ua->proxy(http => "loopback:");
$ua->agent("foo/0.1");
# These forms will all be x-www-form-urlencoded
subtest 'PATCH x-www-form-urlencoded' => sub {
- plan skip_all => "HTTP::Request version not high enough" unless $patch_ver_ok;
+ plan skip_all => "HTTP::Request version not high enough"
+ unless $patch_ver_ok;
plan tests => 4;
for my $arg (
- [ { cat => 'dog' } ],
- [ [ cat => 'dog' ] ],
- [ Content => { cat => 'dog' }, ],
- [ Content => [ cat => 'dog' ], ],
- ) {
- is ($ua->patch($url, @$arg)->content, <<"EOT", "patch @$arg");
+ [{cat => 'dog'}],
+ [[cat => 'dog']],
+ [Content => {cat => 'dog'},],
+ [Content => [cat => 'dog'],],
+ )
+ {
+ is($ua->patch($url, @$arg)->content, <<"EOT", "patch @$arg");
PATCH http://www.example.com
User-Agent: foo/0.1
Content-Length: 7
# These forms will all be x-www-form-urlencoded
subtest 'PUT x-www-form-urlencoded' => sub {
plan skip_all => "HTTP::Request version not high enough" unless $ver_ok;
- plan tests => 4;
+ plan tests => 4;
for my $arg (
- [ { cat => 'dog' } ],
- [ [ cat => 'dog' ] ],
- [ Content => { cat => 'dog' }, ],
- [ Content => [ cat => 'dog' ], ],
- ) {
- is ($ua->put($url, @$arg)->content, <<"EOT", "put @$arg");
+ [{cat => 'dog'}],
+ [[cat => 'dog']],
+ [Content => {cat => 'dog'},],
+ [Content => [cat => 'dog'],],
+ )
+ {
+ is($ua->put($url, @$arg)->content, <<"EOT", "put @$arg");
PUT http://www.example.com
User-Agent: foo/0.1
Content-Length: 7
subtest 'POST x-www-form-urlencoded' => sub {
plan tests => 4;
for my $arg (
- [ { cat => 'dog' } ],
- [ [ cat => 'dog' ] ],
- [ Content => { cat => 'dog' }, ],
- [ Content => [ cat => 'dog' ], ],
- ) {
- is ($ua->post($url, @$arg)->content, <<"EOT", "post @$arg");
+ [{cat => 'dog'}],
+ [[cat => 'dog']],
+ [Content => {cat => 'dog'},],
+ [Content => [cat => 'dog'],],
+ )
+ {
+ is($ua->post($url, @$arg)->content, <<"EOT", "post @$arg");
POST http://www.example.com
User-Agent: foo/0.1
Content-Length: 7
for my $call (qw(post put patch)) {
my $ucall = uc $call;
- my $arg = [ Content => '{"cat":"dog"}' ];
+ my $arg = [Content => '{"cat":"dog"}'];
- is ($ua->$call($url, @$arg)->content, <<"EOT", "$call @$arg");
+ is($ua->$call($url, @$arg)->content, <<"EOT", "$call @$arg");
$ucall http://www.example.com
User-Agent: foo/0.1
Content-Length: 13
EOT
}
+
+# Provided Content-Type overrides default
+for my $call (qw(post put patch)) {
+ my $ucall = uc $call;
+
+ my $arg = ['Content-Type' => 'text/plain', Content => '{"cat":"dog"}'];
+
+ is($ua->$call($url, @$arg)->content,
+ <<"EOT", "$call @$arg with override CT");
+$ucall http://www.example.com
+User-Agent: foo/0.1
+Content-Length: 13
+Content-Type: text/plain
+
+{"cat":"dog"}
+EOT
+
+}
+
+# Any non-true content type means use default
+for my $ct (0, "", undef) {
+ for my $call (qw(post put patch)) {
+ my $ucall = uc $call;
+
+ my $arg = ['Content-Type' => $ct, Content => '{"cat":"dog"}'];
+
+ my $desc = defined($ct) ? $ct : "<undef>";
+
+ my @desc_arg = map { defined $_ ? $_ : "<undef>" } @$arg;
+
+ is($ua->$call($url, @$arg)->content,
+ <<"EOT", "$call @desc_arg with false override CT '$desc' uses default");
+$ucall http://www.example.com
+User-Agent: foo/0.1
+Content-Length: 13
+Content-Type: application/json
+
+{"cat":"dog"}
+EOT
+ }
+
+}
use Test::Fatal;
use LWP::UserAgent;
-plan tests => 2;
+plan tests => 8;
+
+# in case already defined in user's environment
+delete $ENV{$_} for qw(REQUEST_METHOD HTTP_PROXY http_proxy CGI_HTTP_PROXY NO_PROXY no_proxy);
for my $varname ( qw(ABSURDLY_NAMED_PROXY MY_PROXY) ) {
$ENV{ $varname } = "foobar";
is(exception{ $ua->env_proxy(); }, undef, "proxy: with env: $varname: no errors");
delete $ENV{$varname};
}
+
+# simulate CGI environment
+{
+ local $ENV{REQUEST_METHOD} = 'GET';
+ local $ENV{HTTP_PROXY} = 'something';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ is $ua->proxy('http'), undef, 'HTTP_PROXY ignored in CGI environment';
+}
+
+{
+ local $ENV{REQUEST_METHOD} = 'GET';
+ local $ENV{CGI_HTTP_PROXY} = 'http://proxy.example.org:3128/';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ is $ua->proxy('http'), 'http://proxy.example.org:3128/',
+ 'substitute CGI_HTTP_PROXY used in CGI environment';
+}
+
+SKIP: {
+ skip "Environment variables are case-sensitive on this platform", 1
+ if do {
+ local $ENV{TEST_CASE_SENSITIVITY} = "a";
+ local $ENV{test_case_sensitivity} = "b";
+ $ENV{TEST_CASE_SENSITIVITY} eq $ENV{test_case_sensitivity};
+ };
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+ local $ENV{HTTP_PROXY} = 'http://uppercase-proxy.example.org:3128/';
+ local $ENV{http_proxy} = 'http://lowercase-proxy.example.org:3128/';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ (my $warnings = "@warnings") =~ s{ at .*\n}{};
+ is $warnings, qq{Environment contains multiple differing definitions for 'http_proxy'.\nUsing value from 'HTTP_PROXY' (http://uppercase-proxy.example.org:3128/) and ignoring 'http_proxy' (http://lowercase-proxy.example.org:3128/)},
+ 'expected warning on multiple definitions';
+}
+
+{
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+ local $ENV{HTTP_PROXY} = 'http://proxy.example.org:3128/';
+ local $ENV{http_proxy} = 'http://proxy.example.org:3128/';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ is_deeply \@warnings, [],
+ "No warnings if multiple definitions for 'http_proxy' exist, but with the same value";
+}
+
+{
+ local $ENV{NO_PROXY} = 'localhost,example.com';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ is_deeply $ua->{no_proxy}, [qw(localhost example.com)],
+ 'no_proxy from environment';
+}
+
+{
+ local $TODO = "Test case for GH #372";
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+ local $ENV{FOO} = 'BAR';
+ local $ENV{foo} = 'bar';
+ my $ua = LWP::UserAgent->new;
+ $ua->env_proxy();
+ is_deeply \@warnings, [],
+ "No warnings for unrelated environment variables";
+}
note 'Checking Changes';
my $changes_file = 'Changes';
-my $newver = '6.55';
+my $newver = '6.56';
my $trial_token = '-TRIAL';
my $encoding = 'UTF-8';