Giter Club home page Giter Club logo

p5-app-duckpan's Introduction

This repo is now archived

DuckDuckHack went on maintenance mode in 2015 and we aren't in a position to continue it. This repo hasn't been maintained subsequently and so we are archiving it.

Need to report a bug?

If you find a bug or relevancy issue, the best way to report this is via the Feedback button on the DuckDuckGo.com search results page. These issues are compiled and reviewed daily.

Have a suggestion or idea?

The best way to report these is also via the Feedback button on the DuckDuckGo.com search results page.

You can also share your thoughts with our community on Reddit.

p5-app-duckpan's People

Contributors

crazedpsyc avatar djinn avatar fuzzzems avatar gabriellhrn avatar getty avatar gitter-badger avatar guiltydolphin avatar istepura avatar jagtalon avatar jbarrett avatar kentfredric avatar killerfish avatar mailkov avatar majuscule avatar manwar avatar mikedep333 avatar mintsoft avatar moollaza avatar mwmiller avatar nilnilnil avatar nomeata avatar pfirsichbluete avatar readmecritic avatar russellholt avatar shedd avatar soerenweber avatar talsraviv avatar yegg avatar zachthompson avatar zekiel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

p5-app-duckpan's Issues

Dist::Zilla::Plugin::PromptIfStale 0.27 and installdeps fails

I just downloaded the latest VMWare image to set up a testing environment on a different machine and ran into a problem running duckpan installdeps inside both Goodie and Spice repositories. I included the build log below, but the main problem seems to be that the current version of PromptIfStale (0.27) does not complete its tests properly and stops duckpan installdeps from installing anything else. I was able to use cpanm Dist::Zilla::Plugin::PromptifStale --force to force the install of PromptIfStale and then run duckpan installdeps successfully. Oddly, when I initially tried to fix this by running duckpan installdeps --force, the failed PromptIfStale module just caused the install script to immediately quit.

Here's the build log from my failed attempt before manually forcing the install of PromptIfStale:

cpanm (App::cpanminus) 1.6937 on perl 5.016003 built for x86_64-linux
Work directory is /home/dax/.cpanm/work/1413002470.7956
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
Searching Dist::Zilla::Plugin::PromptIfStale on cpanmetadb ...
--> Working on Dist::Zilla::Plugin::PromptIfStale
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-PromptIfStale-0.027.tar.gz
-> OK
Unpacking Dist-Zilla-Plugin-PromptIfStale-0.027.tar.gz
Entering Dist-Zilla-Plugin-PromptIfStale-0.027
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.72)
Configuring Dist-Zilla-Plugin-PromptIfStale-0.027
Running Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for Dist::Zilla::Plugin::PromptIfStale
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have if 0 ... Yes (0.0602)
Checking if you have List::Util 1.33 ... Yes (1.41)
Checking if you have HTTP::Tiny 0 ... Yes (0.034)
Checking if you have List::MoreUtils 0 ... Yes (0.33)
Checking if you have Dist::Zilla::Plugin::MetaResources 4.300039 ... Yes (5.020)
Checking if you have Test::Deep 0 ... Yes (0.110)
Checking if you have JSON::MaybeXS 0 ... Yes (1.002003)
Checking if you have Try::Tiny 0 ... Yes (0.18)
Checking if you have warnings 0 ... Yes (1.13)
Checking if you have Dist::Zilla::App 0 ... Yes (5.020)
Checking if you have File::pushd 0 ... Yes (1.005)
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.72)
Checking if you have Dist::Zilla::Role::BeforeBuild 0 ... Yes (5.020)
Checking if you have strict 0 ... Yes (1.07)
Checking if you have Moose::Util 0 ... Yes (2.1005)
Checking if you have Test::More 0 ... Yes (1.001006)
Checking if you have Test::DZil 0 ... Yes (5.020)
Checking if you have Dist::Zilla::Role::BeforeRelease 0 ... Yes (5.020)
Checking if you have Path::Class 0 ... Yes (0.32)
Checking if you have Module::CoreList 3.10 ... Yes (5.20141002)
Checking if you have Module::Metadata 0 ... Yes (1.000014)
Checking if you have MooseX::Types::Moose 0 ... Yes (0.36)
Checking if you have File::Spec 0 ... Yes (3.40)
Checking if you have Test::Fatal 0 ... Yes (0.010)
Checking if you have Module::Path 0 ... Yes (0.09)
Checking if you have Moose::Util::TypeConstraints 0 ... Yes (2.1005)
Checking if you have Module::Runtime 0 ... Yes (0.013)
Checking if you have Dist::Zilla::Role::AfterBuild 0 ... Yes (5.020)
Checking if you have lib 0 ... Yes (0.63)
Checking if you have Parse::CPAN::Packages::Fast 0 ... Yes (0.06)
Checking if you have Moose 0 ... Yes (2.1005)
Checking if you have Path::Tiny 0 ... Yes (0.029)
Checking if you have namespace::autoclean 0 ... Yes (0.13)
Checking if you have version 0 ... Yes (0.99)
Checking if you have Dist::Zilla::App::Tester 0 ... Yes (5.020)
Checking if you have IO::Pty 0 ... Yes (1.10)
Checking if you have Cwd 0 ... Yes (3.40)
Checking if you have Dist::Zilla::Util::AuthorDeps 0 ... Yes (5.020)
Building and testing Dist-Zilla-Plugin-PromptIfStale-0.027
cp lib/Dist/Zilla/Plugin/PromptIfStale.pm blib/lib/Dist/Zilla/Plugin/PromptIfStale.pm
cp lib/Dist/Zilla/App/Command/stale.pm blib/lib/Dist/Zilla/App/Command/stale.pm
cp lib/Dist/Zilla/Plugin/EnsureNotStale.pm blib/lib/Dist/Zilla/Plugin/EnsureNotStale.pm
Manifying blib/man3/Dist::Zilla::Plugin::PromptIfStale.3
Manifying blib/man3/Dist::Zilla::App::Command::stale.3
Manifying blib/man3/Dist::Zilla::Plugin::EnsureNotStale.3
PERL_DL_NONLAZY=1 /home/dax/perl5/perlbrew/perls/perl-5.16.3/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# 
# Versions for all modules listed in MYMETA.json (including optional ones):
# 
# === Configure Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 6.72
# 
# === Build Requires ===
# 
#     Module              Want Have
#     ------------------- ---- ----
#     ExtUtils::MakeMaker  any 6.72
# 
# === Test Requires ===
# 
#     Module                   Want     Have
#     ------------------------ ---- --------
#     Dist::Zilla::App::Tester  any    5.020
#     ExtUtils::MakeMaker       any     6.72
#     File::Spec                any     3.40
#     File::pushd               any    1.005
#     IO::Pty                   any     1.10
#     Module::Runtime           any    0.013
#     Moose::Util               any   2.1005
#     Test::DZil                any    5.020
#     Test::Deep                any    0.110
#     Test::Fatal               any    0.010
#     Test::More                any 1.001006
#     if                        any   0.0602
#     lib                       any     0.63
# 
# === Test Recommends ===
# 
#     Module         Want     Have
#     ---------- -------- --------
#     CPAN::Meta 2.120900 2.142690
# 
# === Runtime Requires ===
# 
#     Module                                 Want       Have
#     ---------------------------------- -------- ----------
#     Cwd                                     any       3.40
#     Dist::Zilla::App                        any      5.020
#     Dist::Zilla::Plugin::MetaResources 4.300039      5.020
#     Dist::Zilla::Role::AfterBuild           any      5.020
#     Dist::Zilla::Role::BeforeBuild          any      5.020
#     Dist::Zilla::Role::BeforeRelease        any      5.020
#     Dist::Zilla::Util::AuthorDeps           any      5.020
#     HTTP::Tiny                              any      0.034
#     JSON::MaybeXS                           any   1.002003
#     List::MoreUtils                         any       0.33
#     List::Util                             1.33       1.41
#     Module::CoreList                       3.10 5.20141002
#     Module::Metadata                        any   1.000014
#     Module::Path                            any       0.09
#     Moose                                   any     2.1005
#     Moose::Util::TypeConstraints            any     2.1005
#     MooseX::Types::Moose                    any       0.36
#     Parse::CPAN::Packages::Fast             any       0.06
#     Path::Class                             any       0.32
#     Path::Tiny                              any      0.029
#     Try::Tiny                               any       0.18
#     namespace::autoclean                    any       0.13
#     strict                                  any       1.07
#     version                                 any       0.99
#     warnings                                any       1.13
# 
# === Other Modules ===
# 
#     Module                Want     Have
#     --------------------- ---- --------
#     CPAN::Meta::Validator  any 2.142690
# 
t/00-report-prereqs.t ........... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/01-basic.t .................... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/02-not-installed.t ............ ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/03-bunk-module.t .............. ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/04-two-configs.t .............. ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 37.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 37.
t/05-check-all-prereqs.t ........ ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 10.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 10.
t/06-duplicates.t ............... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/07-two-stale.t ................ ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/08-many-modules.t ............. ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 37.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 37.
t/10-release-prompt.t ........... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 10.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49,  line 10.
t/11-local-module.t ............. ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/12-skip.t ..................... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/13-fatal.t .................... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/14-index-base-url.t ........... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/15-command.t .................. ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/16-command-all.t .............. ok
t/17-command-missing-plugins.t .. ok
t/18-command-old-plugins.t ...... ok

#   Failed test 'dzil authordeps ran to get prereq that causes a full build to explode'
#   at t/19-build-failure.t line 50.
#          got: 'Not::Installed
# Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# '
#     expected: 'Not::Installed
# '
# got resultbless( {
#   'app' => bless( {
#     'Dist::Zilla::App' => {
#       'zilla' => bless( {
#         '_copyright_holder' => 'E. Xavier Ample',
#         '_global_stashes' => {},
#         '_license_class' => 'Perl_5',
#         '_version_override' => '0.001',
#         'abstract' => 'Sample DZ Dist',
#         'authors' => [
#           'E. Xavier Ample '
#         ],
#         'chrome' => bless( {
#           'logger' => bless( {
#             'config_id' => 'Dist::Zilla',
#             'debug' => 0,
#             'dispatcher' => bless( {
#               'callbacks' => [
#                 sub { "DUMMY" }
#               ],
#               'outputs' => {
#                 'self' => bless( {
#                   'array' => [
#                     {
#                       'level' => 'info',
#                       'message' => 'Not::Installed',
#                       'name' => 'self'
#                     }
#                   ],
#                   'level_names' => [
#                     'debug',
#                     'info',
#                     'notice',
#                     'warning',
#                     'error',
#                     'critical',
#                     'alert',
#                     'emergency'
#                   ],
#                   'level_numbers' => {
#                     'alert' => 6,
#                     'crit' => 5,
#                     'critical' => 5,
#                     'debug' => 0,
#                     'emerg' => 7,
#                     'emergency' => 7,
#                     'err' => 4,
#                     'error' => 4,
#                     'info' => 1,
#                     'notice' => 2,
#                     'warn' => 3,
#                     'warning' => 3
#                   },
#                   'max_level' => 7,
#                   'min_level' => 0,
#                   'name' => 'self'
#                 }, 'Log::Dispatch::Array' ),
#                 'stdout' => bless( {
#                   'callbacks' => [
#                     sub { "DUMMY" }
#                   ],
#                   'level_names' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'}{'dispatcher'}{'outputs'}{'self'}{'level_names'},
#                   'level_numbers' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'}{'dispatcher'}{'outputs'}{'self'}{'level_numbers'},
#                   'max_level' => 1,
#                   'min_level' => 0,
#                   'name' => 'stdout',
#                   'stderr' => 0
#                 }, 'Log::Dispatch::Screen' )
#               }
#             }, 'Log::Dispatch' ),
#             'events' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'}{'dispatcher'}{'outputs'}{'self'}{'array'},
#             'fail_fatal' => 1,
#             'ident' => 'Dist::Zilla',
#             'muted' => 0,
#             'prefix' => undef
#           }, 'Log::Dispatchouli' ),
#           'term_enc' => 'utf-8'
#         }, 'Dist::Zilla::Chrome::Term' ),
#         'is_trial' => 0,
#         'logger' => bless( {
#           'debug' => 0,
#           'logger' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#           'parent' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#           'proxy_prefix' => '[DZ] '
#         }, 'Log::Dispatchouli::Proxy' ),
#         'name' => 'DZT-Sample',
#         'plugins' => [
#           bless( {
#             'exclude_filename' => [],
#             'exclude_match' => [],
#             'follow_symlinks' => 0,
#             'include_dotfiles' => 0,
#             'logger' => bless( {
#               'debug' => undef,
#               'logger' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#               'parent' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#               'proxy_prefix' => '[GatherDir] '
#             }, 'Log::Dispatchouli::Proxy' ),
#             'plugin_name' => 'GatherDir',
#             'prefix' => '',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::GatherDir' ),
#           bless( {
#             'logger' => bless( {
#               'debug' => undef,
#               'logger' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#               'parent' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'}{'logger'},
#               'proxy_prefix' => '[=inc::Funky] '
#             }, 'Log::Dispatchouli::Proxy' ),
#             'plugin_name' => '=inc::Funky',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'inc::Funky' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':InstallModules',
#             'style' => 'grep',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':IncModules',
#             'style' => 'grep',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':TestFiles',
#             'style' => 'grep',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':ExecFiles',
#             'style' => 'list',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':ShareFiles',
#             'style' => 'list',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':MainModule',
#             'style' => 'grep',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':AllFiles',
#             'style' => 'grep',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' ),
#           bless( {
#             'code' => sub { "DUMMY" },
#             'plugin_name' => ':NoFiles',
#             'style' => 'list',
#             'zilla' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}
#           }, 'Dist::Zilla::Plugin::FinderCode' )
#         ],
#         'prereqs' => bless( {
#           'cpan_meta_prereqs' => bless( {}, 'CPAN::Meta::Prereqs' ),
#           'merged_requires' => bless( {
#             'bad_version_hook' => undef
#           }, 'CPAN::Meta::Requirements' )
#         }, 'Dist::Zilla::Prereqs' ),
#         'root' => bless( {
#           'dirs' => [
#             '.'
#           ],
#           'file_spec_class' => undef,
#           'volume' => ''
#         }, 'Path::Class::Dir' )
#       }, 'Dist::Zilla::Dist::Builder' )
#     },
#     '__chrome__' => $VAR1->{'app'}{'Dist::Zilla::App'}{'zilla'}{'chrome'},
#     'arg0' => '19-build-failure.t',
#     'command' => {
#       '--help' => 'App::Cmd::Command::help',
#       '--version' => 'Dist::Zilla::App::Command::version',
#       '-?' => 'App::Cmd::Command::help',
#       '-h' => 'App::Cmd::Command::help',
#       'add' => 'Dist::Zilla::App::Command::add',
#       'authordeps' => 'Dist::Zilla::App::Command::authordeps',
#       'build' => 'Dist::Zilla::App::Command::build',
#       'clean' => 'Dist::Zilla::App::Command::clean',
#       'commands' => 'App::Cmd::Command::commands',
#       'help' => 'App::Cmd::Command::help',
#       'install' => 'Dist::Zilla::App::Command::install',
#       'listdeps' => 'Dist::Zilla::App::Command::listdeps',
#       'new' => 'Dist::Zilla::App::Command::new',
#       'nop' => 'Dist::Zilla::App::Command::nop',
#       'release' => 'Dist::Zilla::App::Command::release',
#       'run' => 'Dist::Zilla::App::Command::run',
#       'setup' => 'Dist::Zilla::App::Command::setup',
#       'smoke' => 'Dist::Zilla::App::Command::smoke',
#       'stale' => 'Dist::Zilla::App::Command::stale',
#       'test' => 'Dist::Zilla::App::Command::test',
#       'version' => 'Dist::Zilla::App::Command::version'
#     },
#     'full_arg0' => 't/19-build-failure.t',
#     'global_options' => bless( {}, 'Getopt::Long::Descriptive::Opts::__OPT__::1' ),
#     'usage' => bless( {
#       'leader_text' => '19-build-failure.t  [-Iv] [long options...]',
#       'options' => [
#         {
#           'constraint' => {},
#           'desc' => 'log additional output',
#           'name' => 'verbose',
#           'spec' => 'verbose|v:s@'
#         },
#         {
#           'constraint' => {
#             'callbacks' => {
#               'always fine' => sub { "DUMMY" }
#             }
#           },
#           'desc' => 'additional @INC dirs',
#           'name' => 'lib_inc',
#           'spec' => 'lib-inc|I=s@'
#         }
#       ]
#     }, 'Getopt::Long::Descriptive::Usage' )
#   }, 'Dist::Zilla::App' ),
#   'error' => undef,
#   'exit_code' => 0,
#   'output' => 'Not::Installed
# Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# ',
#   'run_rv' => undef,
#   'stderr' => 'Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
# ',
#   'stdout' => 'Not::Installed
# ',
#   'tempdir' => '/tmp/9CMdhK9fMa'
# }, 'Dist::Zilla::App::Tester::Result' )
# Looks like you failed 1 test of 3.
t/19-build-failure.t ............ 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/3 subtests 
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/20-ensure-not-stale.t ......... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/21-authordeps.t ............... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/22-perl.t ..................... ok
Subroutine JSON::XS::Boolean::("" redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
Subroutine JSON::XS::Boolean::(eq redefined at /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/overload.pm line 49.
t/23-noninteractive.t ........... ok

Test Summary Report
-------------------
t/19-build-failure.t          (Wstat: 256 Tests: 3 Failed: 1)
  Failed test:  3
  Non-zero exit status: 1
Files=23, Tests=92, 29 wallclock secs ( 0.09 usr  0.20 sys + 25.57 cusr  2.76 csys = 28.62 CPU)
Result: FAIL
Failed 1/23 test programs. 1/92 subtests failed.
make: *** [test_dynamic] Error 255
-> FAIL Installing Dist::Zilla::Plugin::PromptIfStale failed. See /home/dax/.cpanm/work/1413002470.7956/build.log for details. Retry with --force to force install it.

Need to be able to skip installing certain dependencies

Currently there a few IA's which are dependant on native libraries, (e.g. Chinese Zodiac requires libmpfr).

In most cases this is okay, however it creates problems when running duckpan installdeps if either:
a) the dependency is broken or has an error you can't get around
b) the dependency simply cannot be installed (Codio doesn't allow sudo or apt-get, making it difficult because you would need to manually compile the lib --- ew.)
c) you don't want to install a native lib for a Goodie you're not interested in testing

We should be able to skip over dependencies that are unable to be installed, especially the ones that fail because right now I'm unable to finish installing other Goodies' dependencies on Codio (which we're been recommending as the best way to use DuckPAN).

I'm not sure the best approach, but Jag's recent fix to loading the IA Modules by doing so in an eval sounds like one way to handle the dependency installations in DuckPAN.

Any thoughts on this? @jagtalon @russellholt @mwmiller @yegg

Feature Request: DuckPAN Package/Code Reloading

Currently DuckPAN does not listen for changes in the Spice or Goodie packages it has loaded. Adding this ability would greatly benefit developers as they currently are required to restart the DuckPAN Server after making any modifications to .pm files in order for them to take effect.

Room to make this more efficient?

As I understand, when I type in a query, say 2+2 the instant answer platform will go through each Goodie & Spice one-by-one to determine if it's a match and then stop when it finds one that matches (in this case it stops at the Calculator.pm). I see two potential problems:

  1. As this project grows I imagine we'll get cases where multiple Goodies/Spices/etc will match the query. Stopping at the first match may not always be ideal.
  2. Again, as this project grows there might be hundreds or thousands of Goodies/Spices, etc. Rather than iterate through the list of Goodies/Spices one-by-one would it be more efficient to handle this by launching different threads or processes?

DuckPAN Query - POE related error/exception on CLI

When using DuckPAN Query the following is output to the screen before each input request:

ignoring "\e[B", since function 'history-search-forward' is not known
Exiting subroutine via next at /home/zaahir/perl5/lib/perl5/POE/Wheel/ReadLine.pm line 3026.
ignoring "\e[A", since function 'history-search-backward' is not known
Exiting subroutine via next at /home/zaahir/perl5/lib/perl5/POE/Wheel/ReadLine.pm line 3026.

Clearly related to POE Readline...

DuckPAN should allow -I flag to load external libs

Currently, in order to test modifications to the https://github.com/duckduckgo/duckduckgo repository, you need to execute the following command:

perl -I../duckduckgo/lib/ -I../duckpan/lib ../duckpan/bin/duckpan server

Which loads both the DuckDuckGo lib as well as DuckPAN's.

You should rather be able to run:

duckpan server -I../duckduckgo/lib

Notes:

DuckPAN uses MooX::Cmd and MooX::Options

https://github.com/duckduckgo/p5-app-duckpan/blob/master/lib/App/DuckPAN.pm#L6
https://github.com/duckduckgo/p5-app-duckpan/blob/master/lib/App/DuckPAN.pm#L7

As a starting point, it might be best to modify @ARGV in here:
https://github.com/duckduckgo/p5-app-duckpan/blob/master/bin/duckpan

Should DuckPAN prompt to upgrade or install DDG when new version detected?

Currently if a new version of the DDG package has been released, or a new version of DuckPAN has been released, DuckPAN becomes unusable as it prevents you from carrying out any other actions until the appropriate package has been updated.

I was thinking we should either prompt the dev in that moment to run the upgrade for them, which leads to a slightly nicer and a hopefully quicker experience. Or alternatively, DuckPAN could simply run the script to update DuckPAN itself rather than making the dev take any action.

Any thoughts?

//cc @jagtalon @russellholt @jdorweiler @mwmiller

Duckpan available as an operating system package?

I would be happy to package duckpan for Fedora, so users can "yum install duckpan".

This would allow users to delegate updating duckpan to the operating system while they concentrate on developing, as well as increasing the number of distributions that you can have confidence that duckpan can be installed cleanly on (all test suites passed/etc).

However, every time App-DuckPAN (or a dependant module) updates, it will probably take roughly 2 weeks for the update to become available.

Assuming that this timeframe is acceptable, i would need to be able to configure duckpan to not disable itself every time a new version appears on CPAN/github.

Also, if possible, could DDG be released on CPAN?

Thoughts?

"installdeps" problem with zeroclickinfo-goodies

(My first few hours familiarizing myself with this project; may have missed something obvious...)

Just forked/cloned zeroclickinfo-goodies and followed the directions at https://duck.co/duckduckhack/goodie_testing_triggers to set up testing on a VMWare image of DuckDuckGo's development virtual machine (the virtual machine came from "ddh-vmw.rar" and has MD5 checksum 95ad9acfacadb4b0cb0cf23ffaa3516e).

Step 3 of the instructions, run the command "duckpan installdeps" inside the repository root, fails because of a missing file named "mpfr.h". I've included the build log below. I also tried rerunning the command without success both before and after updating duckpan. However, forking/cloning zeroclickinfo-spice and running "duckpan installdeps" inside that repository succeeds without problems.

Here's the build log:
cpanm (App::cpanminus) 1.6937 on perl 5.016003 built for x86_64-linux
Work directory is /home/dax/.cpanm/work/1411270596.18832
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
Searching DateTime::Calendar::Chinese on cpanmetadb ...
--> Working on DateTime::Calendar::Chinese
Fetching http://www.cpan.org/authors/id/D/DM/DMAKI/DateTime-Calendar-Chinese-1.00.tar.gz
-> OK
Unpacking DateTime-Calendar-Chinese-1.00.tar.gz
Entering DateTime-Calendar-Chinese-1.00
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.72)
Configuring DateTime-Calendar-Chinese-1.00
Running Makefile.PL
Warning: prerequisite DateTime::Event::Chinese 1.00 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for DateTime::Calendar::Chinese
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.72)
Checking if you have DateTime::Event::Chinese 1.00 ... No
==> Found dependencies: DateTime::Event::Chinese
Searching DateTime::Event::Chinese on cpanmetadb ...
--> Working on DateTime::Event::Chinese
Fetching http://www.cpan.org/authors/id/D/DM/DMAKI/DateTime-Event-Chinese-1.00.tar.gz
-> OK
Unpacking DateTime-Event-Chinese-1.00.tar.gz
Entering DateTime-Event-Chinese-1.00
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.72)
Configuring DateTime-Event-Chinese-1.00
Running Makefile.PL
Cannot determine perl version info from lib/DateTime/Event/Chinese.pm
Warning: prerequisite DateTime::Astro 0 not found.
Checking if your kit is complete...
Looks good
Writing Makefile for DateTime::Event::Chinese
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have DateTime::Astro 0 ... No
Checking if you have ExtUtils::MakeMaker 6.42 ... Yes (6.72)
Checking if you have Math::Round 0 ... Yes (0.06)
==> Found dependencies: DateTime::Astro
Searching DateTime::Astro on cpanmetadb ...
--> Working on DateTime::Astro
Fetching http://www.cpan.org/authors/id/D/DM/DMAKI/DateTime-Astro-1.00.tar.gz
-> OK
Unpacking DateTime-Astro-1.00.tar.gz
Entering DateTime-Astro-1.00
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.36 ... Yes (6.72)
Checking if you have ExtUtils::ParseXS 2.21 ... Yes (3.24)
Checking if you have Devel::PPPort 3.19 ... Yes (3.20)
Configuring DateTime-Astro-1.00
Running Makefile.PL
Cannot determine perl version info from lib/DateTime/Astro.pm
Writing ppport.h
Checking if your kit is complete...
Looks good
Writing Makefile for DateTime::Astro
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have DateTime 0 ... Yes (1.03)
Checking if you have DateTime::Set 0 ... Yes (0.3400)
Checking if you have XSLoader 0.02 ... Yes (0.16)
Checking if you have ExtUtils::MakeMaker 6.36 ... Yes (6.72)
Checking if you have ExtUtils::ParseXS 2.21 ... Yes (3.24)
Checking if you have Devel::PPPort 3.19 ... Yes (3.20)
Checking if you have Exporter 5.57 ... Yes (5.66)
Building and testing DateTime-Astro-1.00
cp lib/DateTime/AstroXS.pm blib/lib/DateTime/AstroXS.pm
cp lib/DateTime/Event/SolarTerm.pm blib/lib/DateTime/Event/SolarTerm.pm
cp lib/DateTime/AstroPP.pm blib/lib/DateTime/AstroPP.pm
cp lib/DateTime/Astro.pm blib/lib/DateTime/Astro.pm
/home/dax/perl5/perlbrew/perls/perl-5.16.3/bin/perl "-Iinc" /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/site_perl/5.16.3/ExtUtils/xsubpp -typemap /home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/ExtUtils/typemap xs/dt_astro.xs > xs/dt_astro.xsc && mv xs/dt_astro.xsc xs/dt_astro.c
cc -c "-I." "-I." -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -W -Wno-comment -O2 -DVERSION="1.00" -DXS_VERSION="1.00" -o xs/dt_astro.o -fPIC "-I/home/dax/perl5/perlbrew/perls/perl-5.16.3/lib/5.16.3/x86_64-linux/CORE" -DUSE_PPPORT xs/dt_astro.c
In file included from xs/dt_astro.xs:1:0:
xs/dt_astro.h:9:18: fatal error: mpfr.h: No such file or directory
compilation terminated.
make: *** [xs/dt_astro.o] Error 1
-> FAIL Installing DateTime::Astro failed. See /home/dax/.cpanm/work/1411270596.18832/build.log for details. Retry with --force to force install it.
-> FAIL Installing the dependencies failed: Module 'DateTime::Astro' is not installed
-> FAIL Bailing out the installation for DateTime-Event-Chinese-1.00.
-> FAIL Installing the dependencies failed: Module 'DateTime::Event::Chinese' is not installed
-> FAIL Bailing out the installation for DateTime-Calendar-Chinese-1.00.
Already tried DateTime::Event::Chinese. Skipping.

After running the script duckpan or cpanm cannot be found

Hi,

I ran the script according to https://github.com/duckduckgo/p5-app-duckpan/blob/master/README.md but neither duckpan nor cpnam can be found. I ran the script twice (actually four times, or so), still no luck.

uname -a 
Linux hive 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
less build.log
cpanm (App::cpanminus) 1.6108 on perl 5.014002 built for x86_64-linux-gnu-thread-multi
Work directory is /home/greg/.cpanm/work/1393785283.1578
You have make /usr/bin/make
You have LWP 6.05
You have /bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching local::lib on cpanmetadb ...
Checking if you have ExtUtils::MakeMaker 6.31 ... Yes (6.90)
Checking if you have ExtUtils::Install 1.46 ... Yes (1.56)
local::lib is up to date. (2.000004)
Searching App::cpanminus on cpanmetadb ...
App::cpanminus is up to date. (1.7001)

I have a folder named .cpanm in my home folder and a perl5 folder, too. I am using zsh instead of bash, if that matters (and it's actually Elementary OS, which is build upon Ubuntu). Just to be sure, this is the scripts output after i ran it:

Installing local::lib and App::cpanminus to /home/greg/perl5...


Fetching cpanminus from http://duckpan.org/cpanm ...
local::lib is up to date. (2.000004)
App::cpanminus is up to date. (1.7001)


You don't use bash, so we assume that you know what you're doing -- please add
this line to the startup script of your shell:

eval $(perl -I${HOME}/perl5/lib/perl5 -Mlocal::lib)

so that local::lib is active after you relogin.

Please wait 5 sec.: .....


============================================================

local::lib (or perlbrew) is not active. If you ran this script for the first
time, please re-login to your user account or reload your shell configuration
and run it again!

Like I said above, cpanm and duckpan cannot be found. I can run cpanm if I invoke it via ./perl5/bin/cpanm from my home folder.

Kind regards
Greg

typo in duckpan POD

"App::DuckPAN for more informations." should be "See App::DuckPAN for more information."

DuckPAN does not remove whitespace

But the production servers do so developers add

$_ =~ s/^\s*//g; # remove front whitespace
$_ =~ s/\s*$//g; # remove back whitespace.

to compensate for it.

DuckPAN --help and man page outdated

A call to $ duckpan with no arguments shows the various commands supported by DuckPAN:

image

However, the command $ duckpan --help shows different output, mostly about the various command line flags.
image

Furthemore, the man pages are also different:
image

All of these should be updated to reflect the current state of DuckPAN. Furthermore, I don't believe they should all show different information. They should probably all display the same information.

Currently the most up to date information regarding the various DuckPAN commands is documented in the (DuckPAN Readme)[https://github.com/duckduckgo/p5-app-duckpan/#using-duckpan]

RAR archives?

Today I decided to investigate what I can do with DuckDuckHack and there is something I really don't understand. I had an impression of DuckDuckGo being closer to free and open source world than many other alternatives, but now I see how README suggests to download DuckDuckHack Development Virtual Machine (https://github.com/duckduckgo/p5-app-duckpan#duckduckhack-development-virtual-machine) which is packed into such an ugly proprietary format as RAR which requires downloading non-free software to extract it. That's a bit disappointing. Why not to use just ZIP or 7Z for this?

CPAN Testers shows failed install -- Needs newer Groff? -- is this really an issue?

@mwmiller @jbarrett your Perl foo is strong. I'm unsure of how to proceed with fixing this, any ideas?

From what I can tell, groff isn't explicitly required by DuckPAN as it's a system package, but the machine clearly needs a "new enough" version to handle the POD conversion (again, from what I can tell that's what groff is for, right?).

  • My first thought/question is if this is really an issue? I've never seen a user report this as a problem...
  • My second thought is that to fix it, we'd need to detect the installed version of groff and throw an error if it's too old. But that seems crazy? Wouldn't every Perl module that uses POD need to do this? Or do they just let the user deal with the issue?
  • My third thought - Just update the test to detect that particular output and let the user know, then consider it OK an move on.

Here's the output from the test, copied from the email I received.

Output from '/usr/bin/make test':

Skip blib/lib/auto/share/dist/App-DuckPAN/duckpan.js (unchanged)
PERL_DL_NONLAZY=1 /usr/perl5.18.4/bin/perl5.18.4 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/app_duckpan.t ......... ok
t/load.t ................ ok
t/release-pod-syntax.t .. skipped: these tests are for release candidate testing

#   Failed test 'DuckPAN gives out nothing on STDERR'
#   at t/system_duckpan.t line 21.
#          got: 'You have an old groff. Update to version 1.20.1 for good Unicode support.
# If you don't upgrade, wide characters may come out oddly.
# 
#  at /usr/perl5.18.4/lib/5.18.4/Pod/Perldoc.pm line 1346.
# You have an old groff. Update to version 1.20.1 for good Unicode support.
# If you don't upgrade, wide characters may come out oddly.
# 
#  at /usr/perl5.18.4/lib/5.18.4/Pod/Perldoc.pm line 1346.
# '
#     expected: ''
# Looks like you failed 1 test of 11.
t/system_duckpan.t ...... 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/11 subtests 

Test Summary Report
-------------------
t/system_duckpan.t    (Wstat: 256 Tests: 11 Failed: 1)
  Failed test:  2
  Non-zero exit status: 1
Files=4, Tests=44,  7 wallclock secs ( 0.05 usr  0.01 sys +  5.07 cusr  0.95 csys =  6.09 CPU)
Result: FAIL
Failed 1/4 test programs. 1/44 subtests failed.
*** Error code 1

Stop.
make: stopped in /home/cpansand/.cpan/build/App-DuckPAN-0.156-VJlxB2

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module                               Need     Have    
    ------------------------------------ -------- --------
    App::cpanminus                       1.5007   1.7014  
    autodie                              2.25     2.25    
    Class::Load                          0.18     0.22    
    Config::INI                          0.019    0.024   
    CPAN::Repository                     0.007    0.008   
    Crypt::SSLeay                        0.58     0.72    
    Data::Printer                        0.3      0.35    
    Dist::Zilla                          4.300007 5.020   
    Dist::Zilla::Plugin::UploadToDuckPAN 0.006    0.007   
    Email::Valid                         0.187    1.195   
    File::ShareDir::ProjectDistDir       0.003002 1.000004
    File::Temp                           0.22     0.2304  
    File::Which                          1.09     1.09    
    HTML::Parser                         3.71     3.71    
    HTML::TreeBuilder                    0        5.03    
    IO::All                              0        0.79    
    JSON                                 2.59     2.90    
    List::Util                           0        1.41    
    LWP::Protocol::https                 0        6.06    
    LWP::Simple                          6.00     6.00    
    Module::Data                         0.006    0.007   
    Module::Pluggable                    4.8      5.1     
    Moo                                  1.002000 1.006000
    MooX                                 0.101    0.101   
    MooX::Cmd                            0.001    0.009   
    MooX::HasEnv                         0.003    0.004   
    MooX::Options                        3.71     4.012   
    Parse::CPAN::Packages::Fast          0.04     0.08    
    Path::Class                          0.26     0.35    
    Plack                                1.0029   1.0032  
    Pod::Usage                           1.63     1.64    
    POE                                  1.354    1.365   
    Starman                              0        0.4010  
    Term::UI                             0.30     0.42    
    Text::Xslate                         v3.0.0   3.3.3   
    URI                                  1.60     1.64    
    version                              0.96     0.9909  
    WWW::DuckDuckGo                      0.015    0.016   

build_requires:

    Module                               Need     Have    
    ------------------------------------ -------- --------
    Dir::Self                            0.10     0.11    
    ExtUtils::MakeMaker                  0        6.98    
    File::chdir                          0.1008   0.1009  
    File::FindLib                        0.001001 0.001004
    File::HomeDir                        1.00     1.00    
    File::Temp                           0.22     0.2304  
    Test::LoadAllModules                 0.021    0.022   
    Test::More                           0.98     1.001006
    Test::Script::Run                    0.05     0.08    

configure_requires:

    Module                               Need     Have    
    ------------------------------------ -------- --------
    ExtUtils::MakeMaker                  0        6.98    
    File::ShareDir::Install              0.06     0.09    


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    DBIC_NO_WARN_BAD_PERL = 1
    LC_ALL = de_DE.ISO8859-1
    PATH = /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/cpansand/bin/freebsd10.0:/home/cpansand/bin/sh:/home/cpansand/bin:/usr/games:/home/cpansand/devel:/home/eserte/src/srezic-misc/scripts
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 64559
    PERL5_CPAN_IS_RUNNING = 64559
    PERL5_CPAN_IS_RUNNING_IN_RECURSION = 9614,64559
    PERLDOC = -MPod::Perldoc::ToTextOverstrike
    PERL_BATCH = yes
    PERL_CPAN_REPORTER_CONFIG = /var/tmp/cpansmoker-1023/QPlWGPT3Rt_config.ini
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_HTML_DISPLAY_CLASS = HTML::Display::Mozilla
    SHELL = /usr/local/bin/zsh
    TERM = screen
    TMPDIR = /var/tmp/cpansmoker-1023

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /usr/perl5.18.4/bin/perl5.18.4
    $UID/$EUID = 1023 / 1023
    $GID = 1023 1023
    $EGID = 1023 1023

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.00    
    CPAN::Meta          2.142690
    Cwd                 3.40    
    ExtUtils::CBuilder  0.280210
    ExtUtils::Command   1.17    
    ExtUtils::Install   1.59    
    ExtUtils::MakeMaker 6.98    
    ExtUtils::Manifest  1.63    
    ExtUtils::ParseXS   3.24    
    File::Spec          3.40    
    JSON                2.90    
    JSON::PP            2.27203 
    Module::Build       0.4210  
    Module::Signature   0.73    
    Parse::CPAN::Meta   1.4414  
    Test::Harness       3.33    
    Test::More          1.001006
    YAML                1.12    
    YAML::Syck          1.27    
    version             0.9909  


--

Summary of my perl5 (revision 5 version 18 subversion 4) configuration:

  Platform:
    osname=freebsd, osvers=10.0-release-p1, archname=amd64-freebsd
    uname='freebsd cvrsnica-freebsd-10-64bit.herceg.de 10.0-release-p1 freebsd 10.0-release-p1 #0: tue apr 8 06:45:06 utc 2014 [email protected]:usrobjusrsrcsysgeneric amd64 '
    config_args='-ds -e -Dprefix=/usr/perl5.18.4'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
    optimize='-O',
    cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-Wl,-E  -fstack-protector -L/usr/local/lib'
    libpth=/usr/lib /usr/local/lib
    libs=-lgdbm -lm -lcrypt -lutil -lc
    perllibs=-lm -lcrypt -lutil -lc
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-DPIC -fPIC', lddlflags='-shared  -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
  Built under freebsd
  Compiled at Oct  2 2014 08:49:56
  %ENV:
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="64559"
    PERL5_CPAN_IS_RUNNING="64559"
    PERL5_CPAN_IS_RUNNING_IN_RECURSION="9614,64559"
    PERLDOC="-MPod::Perldoc::ToTextOverstrike"
    PERL_BATCH="yes"
    PERL_CPAN_REPORTER_CONFIG="/var/tmp/cpansmoker-1023/QPlWGPT3Rt_config.ini"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_HTML_DISPLAY_CLASS="HTML::Display::Mozilla"
  @INC:
    /usr/perl5.18.4/lib/site_perl/5.18.4/amd64-freebsd
    /usr/perl5.18.4/lib/site_perl/5.18.4
    /usr/perl5.18.4/lib/5.18.4/amd64-freebsd
    /usr/perl5.18.4/lib/5.18.4
    .

Double callback wrapping.

When the API is not found by DuckPAN, it goes to our endpoint. The problem is that if the Spice has spice wrap_jsonp_callback => 1; enabled, it will double wrap it:

API key not found. Using DuckDuckGo's endpoint:                                                                                                                              
"https://duckduckgo.com/js/spice/bitcoin_balance/17x23dNjXJLzGMev6R63uyRhMWP1VHawKc"    
ddg_spice_bitcoin_balance(ddg_spice_bitcoin_balance(
{"hash":"17x23dNjXJLzGMev6R63uyRhMWP1VHawKc","balance":5000000000,"received":5000000000,"sent":0,"unconfirmed_received":0,"unconfirmed_sent":0,"unconfirmed_balance":0});
);

Creating the Podownload.pm

Since there is Poupload.pm which pushes populated po files to community platform. Why not have Podownload command which can pull incomplete po files for download?

DuckPAN should enforce Spice naming conventions

Currently DuckPAN doesn't verify you have a properly named handlebars template that matches the directory structure.

Eg.DDG::Spice::Foo::Bar must have a foo_bar.handlebars template. If this is not the case DuckPAN should throw an error.

The same goes for JS and CSS files, although CSS is not required for each Spice Instant Answer

duckpan check tight loop

$ duckpan check

Checking your environment for the DuckPAN requirements

Checking for latest DDG Perl package...

At this point, the perl process consumes 100% of CPU and makes no syscalls. I must ^C to cancel it.

Non-fatal UTF-8 Error from Lint.pm

/cc @yegg

@nospampleasemam after merging and testing your other UTF-8 fix everything seemed to be good, "g+ duckduckgo" worked for me, as well as "flip testing".

However, after testing your other PR's I noticed that when testing Quixey I received the same UTF-8 error as before:

Body must be bytes and should not contain wide characters (UTF-8 strings) at /home/zaahir/perl5/lib/perl5/Plack/Middleware/Lint.pm line 156

But this time it's non-fatal, as the plugin comes through and everything looks fine on the frontend:

image

Quixey also gets a lot of complaints from DuckPAN about tons of utf8 characters.
This however has always been there, but I'm assuming its related to the problem:
image

Stop DuckPAN on failed API request, improve success/fail messaging

When DuckPAN makes an API request, we should better indicate when the request fails (and maybe when it's successful) but mostly DuckPAN should probably stop execution and let the developer know.

For example after purposely breaking the URL for the NPM Spice, the DuckPAN server doesn't display anything on the page but if you look very closely in the terminal output you'll see that the request returned a 500 Error:

image

I think when the request isn't a success, the DuckPAN Server should stop (or at the very least make it obvious what went wrong) and notify the user clearly that the request failed. Here's the code the would need to be updated: https://github.com/duckduckgo/p5-app-duckpan/blob/master/lib/App/DuckPAN/Web.pm#L146-166

DuckPAN server not showing results for spice answers

I forked the spice repo and used the install script to install DuckPAN locally on OS X Mavericks. I can't get any of the instant answers to render in Chrome when connecting to DuckPAN server.

Browsing to http://localhost:5000/?q=xkcd+102 shows no output for the xkcd spice (i.e. there are no search results, and no instant answer box displaying).

Output from javascript console (no errors)

Compiling Spice Templates
Compiled template:  xkcd_display_xkcd_display
Finished compiling templates
Now Spice obj:  Object

Output from the server (with --verbose)

Checking for latest App::DuckPAN ... 0.142
Checking for latest DDG Perl package... 0.123

Using the following DDG instant answers:

 - DDG::Spice::Airlines (Regexp)
 - DDG::Spice::AlternativeTo (Words)
 - DDG::Spice::Amazon (Words)
 - DDG::Spice::Aur (Words)
 - DDG::Spice::Automeme (Words)
 - DDG::Spice::BBC (Words)
 - DDG::Spice::Betterific (Words)
 - DDG::Spice::Bible (Words)
 - DDG::Spice::Bitcoin (Words)
 - DDG::Spice::Book (Words)
 - DDG::Spice::Bootic (Words)
 - DDG::Spice::BrainyQuote (Words)
 - DDG::Spice::Canistreamit (Words)
 - DDG::Spice::ChuckNorris (Words)
 - DDG::Spice::CodeSearch (Words)
 - DDG::Spice::Congress (Words)
 - DDG::Spice::CouponMountain (Words)
 - DDG::Spice::DNS (Words)
 - DDG::Spice::DetectLang (Words)
 - DDG::Spice::Dictionary::Audio (Words)
 - DDG::Spice::Dictionary::Definition (Words)
 - DDG::Spice::Dictionary::Hyphenation (Words)
 - DDG::Spice::Dictionary::Pronunciation (Words)
 - DDG::Spice::Dictionary::Reference (Words)
 - DDG::Spice::Drinks (Words)
 - DDG::Spice::ESPN::Baseball (Words)
 - DDG::Spice::ESPN::Basketball (Words)
 - DDG::Spice::ESPN::Football (Words)
 - DDG::Spice::ESPN::Golf (Words)
 - DDG::Spice::ESPN::Hockey (Words)
 - DDG::Spice::ESPN::Racing (Words)
 - DDG::Spice::ESPN::Soccer (Words)
 - DDG::Spice::ESPN::Tennis (Words)
 - DDG::Spice::Editor (Words)
 - DDG::Spice::ExpandURL (Words)
 - DDG::Spice::Expatistan (Words)
 - DDG::Spice::FlashVersion (Words)
 - DDG::Spice::Forecast (Words)
 - DDG::Spice::Forvo (Words)
 - DDG::Spice::GameInfo (Words)
 - DDG::Spice::Github (Words)
 - DDG::Spice::GithubJobs (Words)
 - DDG::Spice::GooglePlus (Words)
 - DDG::Spice::Gravatar (Words)
 - DDG::Spice::Guidebox::Getid (Words)
 - DDG::Spice::Guidebox::Lastshows (Words)
 - DDG::Spice::Hackage::PackageDetails (Words)
 - DDG::Spice::Hackage::Packages (Words)
 - DDG::Spice::HackerNews (Words)
 - DDG::Spice::Haxelib (Words)
 - DDG::Spice::Hayoo (Words)
 - DDG::Spice::HqTemp (Words)
 - DDG::Spice::Imdb (Words)
 - DDG::Spice::InTheaters (Words)
 - DDG::Spice::IsItUp (Regexp)
 - DDG::Spice::KhanAcademy (Words)
 - DDG::Spice::Kwixer (Words)
 - DDG::Spice::Lastfm::Album (Regexp)
 - DDG::Spice::Lastfm::Artist (Words)
 - DDG::Spice::Lastfm::ArtistAlbum (Regexp)
 - DDG::Spice::Lastfm::ArtistTracks (Regexp)
 - DDG::Spice::Lastfm::Song (Regexp)
 - DDG::Spice::Lastfm::TopTracks (Regexp)
 - DDG::Spice::LeakDB (Words)
 - DDG::Spice::Local (Words)
 - DDG::Spice::MassOnTime (Words)
 - DDG::Spice::Maven (Words)
 - DDG::Spice::MetaCPAN (Words)
 - DDG::Spice::Movie (Words)
 - DDG::Spice::News (Words)
 - DDG::Spice::Npm (Words)
 - DDG::Spice::Octopart (Words)
 - DDG::Spice::OpenSNP (Regexp)
 - DDG::Spice::Plos (Words)
 - DDG::Spice::Quixey (Words)
 - DDG::Spice::RandNums (Regexp)
 - DDG::Spice::RandWord (Words)
 - DDG::Spice::RedditSearch (Words)
 - DDG::Spice::RedditSubSearch (Regexp)
 - DDG::Spice::Rhymes (Words)
 - DDG::Spice::RubyGems (Words)
 - DDG::Spice::SEPTA (Words)
 - DDG::Spice::SearchCode (Words)
 - DDG::Spice::Shorten (Words)
 - DDG::Spice::Smbc (Words)
 - DDG::Spice::Snow (Words)
 - DDG::Spice::Songkick::Artists (Words)
 - DDG::Spice::Songkick::Events (Words)
 - DDG::Spice::Songkick::Getartistid (Words)
 - DDG::Spice::Songkick::Geteventid (Words)
 - DDG::Spice::SoundCloud (Words)
 - DDG::Spice::SteamDB (Words)
 - DDG::Spice::Stopwatch (Words)
 - DDG::Spice::Thesaurus (Words)
 - DDG::Spice::TodayInHistory (Words)
 - DDG::Spice::Translate::Detect (Words)
 - DDG::Spice::Translate::DetectPhrase (Words)
 - DDG::Spice::Translate::FromTo (Words)
 - DDG::Spice::Translate::FromToPhrase (Words)
 - DDG::Spice::Tumblr (Words)
 - DDG::Spice::Twitter (Regexp)
 - DDG::Spice::UrbanDictionary (Words)
 - DDG::Spice::Video (Words)
 - DDG::Spice::WordMap (Words)
 - DDG::Spice::Xkcd::Display (Words)
 - DDG::Spice::Xkcd::Latest (Words)
 - DDG::Spice::Zanran (Words)
 - DDG::Spice::Zipcode (Regexp)


Hostname is: http://duckduckgo.com

Checking for newest assets from: http://duckduckgo.com

Requesting: http://duckduckgo.com/...success!

Wrote "page_root.html" into cache.

Requesting: http://duckduckgo.com/?q=duckduckhack-template-for-spice2...success!

dpan1612.js already exists in cache -- no request made.

g1112.js already exists in cache -- no request made.

s814.css already exists in cache -- no request made.

Wrote "page_spice.html" into cache.


Starting up webserver...

You can stop the webserver with Ctrl-C

HTTP::Server::PSGI: Accepting connections at http://0:5000/
DDG::ZeroClickInfo::Spice  {
    Parents       Moo::Object
    public methods (9) : call, call_data, call_path, call_type, caller, has_call, has_call_data, has_call_type, new
    private methods (0)
    internals: {
        call        "/js/spice/xkcd/display/102",
        call_type   "include",
        caller      "DDG::Spice::Xkcd::Display",
        is_cached   1,
        is_unsafe   0
    }
}
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /?q=xkcd+102 HTTP/1.1" 200 8712 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /?duckduckhack_css=1 HTTP/1.1" 200 230861 "http://localhost:5000/?q=xkcd+102" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /?duckduckhack_js=1 HTTP/1.1" 200 368379 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /?duckduckhack_templates=1 HTTP/1.1" 200 112080 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /share/spice/xkcd/display/xkcd_display.js HTTP/1.1" 200 1225 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:06 +0100] "GET /font/ProximaNova-Reg-webfont.woff HTTP/1.1" 200 23776 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /font/ddg-serp-icons.svg?v=102 HTTP/1.1" 200 11944 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /font/ProximaNova-Sbold-webfont.woff HTTP/1.1" 200 23900 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /?duckduckhack_ignore=1& HTTP/1.1" 204 0 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /share/spice/xkcd/display/xkcd_display.css HTTP/1.1" 200 55 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
"http://xkcd.com/102/info.0.json"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /js/spice/xkcd/display/102 HTTP/1.1" 200 913 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
"http://xkcd.com/info.0.json"
127.0.0.1 - - [03/Jun/2014:18:57:07 +0100] "GET /js/spice/xkcd/latest/ HTTP/1.1" 200 270 "http://localhost:5000/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"

Duckpan tester

Since duckpan has dependencies on internal code, it can break without us realizing it (like it did the past day or so). We could use an automated testing script that we can run periodically to check if it is in a functional state or not. I imagine this would run independently of duckpan, spin up duckpan server and then run some tests against it.

Part of the issue here, however, is that the error could be in JavaScript and that is hard to detect without something like Selenium. So maybe we do it that way, or maybe we treat those separately and for now we just run a script that tests more basic functioning, which could get most of the cases easily.

cc @nilnilnil @moollaza

Change DuckPAN query colors

Could you please change the colors of 'duckpan query' answer?

In my terminal, I use the 'Black on white' scheme which makes yellow text very difficult to read.

Thanks.

Problem with duckpan server in Web.pm and Server.pm

Whenever I run duckpan server I recieve the following errors:

Starting up webserver...

You can stop the webserver with Ctrl-C

keys on reference is experimental at /home/user/perl5/lib/perl5/App/DuckPAN/Web.pm line 360.
Compilation failed in require at /home/user/perl5/lib/perl5/App/DuckPAN/Cmd/Server.pm line 167.

Although I have the most up to date version available of App::DuckPAN from cpanm my local files are very slightly different to those here on github.

Line 360 of Web.pm refers to:

} keys $calls_template{$spice_name});

which is line 357 of the current github version (44c1aac)

Line 167 of Web.pm refers to:

require App::DuckPAN::Web;

which is line 164 of the current github version (e1378ec)

I'm running Arch linux

Exception when running "curl http://duckpan.org/install.pl | perl" to setup environment

I have started with the initial configuration of duckpan test application,but Im getting these strange errors which i have mentioned below on Ubuntu 12.04 .I tried running this command multiple times "curl http://duckpan.org/install.pl | perl",but command fails to complete its operation with the below exception. due to this i`m not able to go ahead with my app development. any quick resolution to this would be much appreciated.

Fetching http://www.cpan.org/authors/id/P/PJ/PJF/autodie-2.20.tar.gz ... OK Configuring autodie-2.20 ... OK Building and testing autodie-2.20 ... FAIL ! Installing autodie::exception failed. See /home/dreamweiver/.cpanm/work/1378646321.3315/build.log for details. Retry with --force to force install it. ! Installing the dependencies failed: Installed version (2.1001) of autodie::exception is not in range '2.14' ! Bailing out the installation for Path-Tiny-0.032. ! Installing the dependencies failed: Module 'Path::Tiny' is not installed ! Bailing out the installation for Test-File-ShareDir-0.3.3. ! Installing the dependencies failed: Module 'Test::File::ShareDir' is not installed ! Bailing out the installation for Dist-Zilla-4.300037. ! Installing the dependencies failed: Module 'Dist::Zilla' is not installed ! Bailing out the installation for Dist-Zilla-Plugin-UploadToDuckPAN-0.004. --> Working on POE Fetching http://www.cpan.org/authors/id/R/RC/RCAPUTO/POE-1.356.tar.gz ... OK Configuring POE-1.356 ... OK ==> Found dependencies: IO::Tty --> Working on IO::Tty Fetching http://www.cpan.org/authors/id/T/TO/TODDR/IO-Tty-1.10.tar.gz ... OK Configuring IO-Tty-1.10 ... FAIL ! Timed out (> 60s). Use --verbose to retry. Terminated dreamweiver@dreamweiver-VirtualBox:~$ ! Configure failed for IO-Tty-1.10. See /home/dreamweiver/.cpanm/work/1378646321.3315/build.log for details. ! Installing the dependencies failed: Module 'IO::Tty' is not installed ! Bailing out the installation for POE-1.356. ! Installing the dependencies failed: Module 'Dist::Zilla::Plugin::UploadToDuckPAN' is not installed, Module 'POE' is not installed, Module 'Dist::Zilla' is not installed ! Bailing out the installation for App-DuckPAN-0.115.

Thanks

Makefile.PL, Text::Xslate & v3.0.0

The following get reported when installing:
Unparsable version 'v3.0.0' for prerequisite Text::Xslate

The Makefile.PL is not in the repo so I'm not able to remove the "v" from the two lines it occurs on.

Bug with triggers startend for multiple words

I have triggers startend => "idreambooks", "book reviews", "book review";, but somehow "the book of joe reviews" triggers. Is it splitting the strings?

I'm getting this as my output:

Query: the book of joe reviews
  You entered: the book of joe reviews

DDG::ZeroClickInfo::Spice  {
    Parents       Moo::Object
    public methods (9) : call, call_data, caller, call_path, call_type, has_call, has_call_data, has_call_type, new
    private methods (0)
    internals: {
        call        "/js/spice/book/the",
        caller      "DDG::Spice::Book",
        call_type   "include",
        is_cached   1,
        is_unsafe   0
    }
}

DuckPAN errors when t/ directory exists beside root of repo, e.g. zeroclickinfo-goodies/

I suspect that I have missed some step or set some environment variable incorrectly. I was successfully able to install duckpan. When I try to run duckpan server, I receive two kinds of errors.

  • Several plugins use share function which duckpan or I am able to figure out how to fullfil ( I deleted those plugins for now)
  • All plugins when tested issue error not being able to find "module_share_dir" which I suspect is html template and javascript directory.

With this I have hit a dead end. Would like to know what I might be doing wrong?

DuckPAN Help and Man Page -- Need normalization and canonicalization

In light of recent changes (#39), App::DuckPAN::Help really doesn't serve much purpose and can likely be removed. DuckPAN's help output can be more easily controlled by pod2usage as demonstrated by the pod2usage Recommended Use. Rather than dispatching the help docs from Duckpan.pm we can then print the output from duckpan help to STDOUT or STDERR. And let man duckpan print to the user's pager.

More things to consider:

  • The usual method for getting help docs out of a command line program is by using the --help flag or -h. Unfortunately for Duckpan, the help flag displays some information which is largely unhelpful. It should really display the various commands/syntax that DuckPAN supports.
  • It would be nice if DuckPAN's individual commands supported the use of help flags, i.e. duckpan env --help should explain how to use DuckPAN's env command.
  • duckpan --version is also broken and doesn't display anything useful. This should definitely be fixed.
  • Rather than always displaying the help docs on incorrect input, DuckPAN should firstly display an error message, that the command doesn't exists and then should suggest using the help flag. Git provides the following message: git: 'foobar' is not a git command. See 'git --help'.
  • The output of the man page is slightly different from the POD docs in bin/duckpan. This is because through Dist::Zilla we are also leveraging PodWeaver which is wrapping the POD in a few canonical sections (ie. Name, Version, License, etc)

Use a dzil plugin to avoid documenting everything twice

Use something like D::Z::Plugin::ReadmeAnyFromPod to create the readme from some POD rather than writing the documentation twice. The complication here: there is a lot of extra stuff in the README which doesn't belong in bin/duckpan's POD. Maybe patch the plugin to allow combining two source files?

Installation dependency issue - autodie::exception

When I install duckpan with aim of testing plugin on spice platform, I found dependency issue due to which default install fails.

autodie is one of the dependencies which due to (maybe failures of some tests) is not built thus install fails.

I installed using cpanm App::DuckPAN --force. Oh and I am using Ubuntu 12.04.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.