Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build a URI from parts #27

Closed
zoffixznet opened this issue Dec 7, 2015 · 43 comments
Closed

Build a URI from parts #27

zoffixznet opened this issue Dec 7, 2015 · 43 comments

Comments

@zoffixznet
Copy link
Contributor

It would be nice if you could build a URI from parts (and have it encode stuff properly without your involvement). If this is already possible, then it should be documented.

So, say something like this would print the full URI:

    say URI.new('http://google.com/search').query-form(
        num  => 100,
        hl   => 'en',
        safe => 'off',
        q    => '<foobar>',
    );
    # prints http://google.com/search?num=100&hl=en&safe=off&q=%3Cfoobar%3E
@ronaldxs
Copy link
Contributor

ronaldxs commented Dec 7, 2015

This has long been in the planning stage but has been held up by lack of progress on object attribute mutators which, AFAIK, still don't work. See https://github.com/perl6/roast/blob/master/S12-attributes/mutators.t

To explain a bit more the plan was that you should be able to say:

my URI $u .= new;
$u.scheme = 'http';
$u.host = 'doc.perl6.org';
$u.path = '/language/faq';
$u.query-form = num => 100, hl => 'en';
say $u;

And this is how I envisioned the future of creating / modifying URIs. It looks like the rakudo development team has been busy with other priorities. If anyone wants to petition the powers that be to make mutators a priority I would certainly be grateful for the help. There is, I believe, a related RT #124909. I am also open to other suggestions.

BTW there is also one more RT of relevance and interest: RT #126520

@zoffixznet
Copy link
Contributor Author

I believe what you're requesting already works:

[17:08] <ZoffixGaming> m: class URI { has $.scheme is rw; has $.host is rw; method gist { "$!scheme://$!host" } }; my $u = URI.new; $u.scheme = 'http'; $u.host = 'doc.perl6.org'; say $u
[17:08] <camelia> rakudo-moar e2e23f: OUTPUT«http://doc.perl6.org␤»

@ronaldxs
Copy link
Contributor

ronaldxs commented Dec 8, 2015

There was a relevant IRC discussion here http://irclog.perlgeek.de/perl6/2015-12-07#i_11674007. I believe something reasonable to be feasible with subsets at this point.

star-m: use IETF::RFC_Grammar::URI; subset ValidScheme of Str where /<IETF::RFC_Grammar::URI::scheme>/; class URI2 { has ValidScheme $.scheme is rw; has $.host is rw; method gist { "$!scheme://$!host" } }; my $u = URI2.new; $u.scheme = q!\\//!; $u.host = "?"; say $u
23:54   camelia     star-m 2015.09: OUTPUT«Type check failed in assignment to '$!scheme'; expected 'ValidScheme' but got 'Str'␤  in block <unit> at /tmp/EiEhZYitx4:1␤␤»

@zostay
Copy link
Contributor

zostay commented May 8, 2017

I've been thinking about this and also thinking about it in context of Jonathan's recent manifesto on simple accessors and mutators in Perl 6. I also have a prototype that adds mutators to the elements of URI here: https://github.com/zostay/uri/tree/mutators

I can finish the work here as is, but I'm considering replacing the is rw mutators with setter methods instead because:

  1. Many of the mutators require additional code to keep the state of the object consistent, which makes the mutators very heavy.
  2. Some of the accessors (e.g., $.port), are heavy accessors, e.g., returning either the real value or the default.
  3. The authority accessor/mutator is synthetic, which is a heavy accessor/mutator by definition.
  4. The $.path and $.authority values are tied together, so the value of one influences which values are permitted to keep a consistent URI object, which makes setting these attributes even more complicated than any I've finished coding yet.

Instead of my implementation, I want to suggest that the implementation of setters and getters be handled via multi-methods rather than as is rw accessor/mutator methods. That is, I think the implementation shown here below will be more Perlish than what is in my current WIP.

subset Port of UInt;
multi method port(URI:D: ) { ... }
multi method port(URI:D: Port $new) { ... }

subset Authority of Str where /^[ '' || <IETF::RFC_Grammar::URI::authority> ]$/;
multi method authority(URI:D: ) { ... }
multi method authority(URI:D: Authority:D $new) { ... }

@ronaldxs
Copy link
Contributor

ronaldxs commented May 9, 2017

I like much of what I saw on your URI with mutators but was thinking of a different approach. You are extending the existing module by keeping the URI components as strings with subset restrictions. Perl 6 is more object oriented than Perl 5 and an authority might be viewed as a structured object with a host, port,
host_type (like enum host-type <IPV4 IPV6 domain>), userinfo etc. "docs.perl6.org:8080" is a standard serialization of the object which has a parse method based on the grammar. There might be a use for JSON or other possible serializations.

I don't understand the connection between path and authority (did you mean scheme?).

The same approach could apply to path, whose object might have an underlying list of segments, and query. Your approach is simpler, more incremental and looks deliverable in the near future. I feel the possibility of a URI object hierarchy is at least worth mentioning for this issue and might be helpful to keep in mind during development of the string subset implementation.

@zostay
Copy link
Contributor

zostay commented May 9, 2017

According to RFC, values that are legal for path vary depending on whether the authority is present or not.

Making authority and path into objects with sub-components is a good idea. I see that as a refinement of what I've done, not as a different approach. I can incorporate that. I suppose query and query-form could be handled that way too by making something that stringifies to the query, but otherwise behaves similar to a Hash::MultiValue.

Though, this begins to run into the problems described in #33, which is that some of these changes will necessarily break certain contracts that existing users expect.

@zostay
Copy link
Contributor

zostay commented May 11, 2017

My mutators branch now contains a draft implementation of mutators for every component of the URI. These are only basically tested so far and I still need to tighten things up all over the place, but I'm pleased with how it's shaping up.

I have gone ahead and build a URI::Authority class to handle $!authority which helped eliminate some ugliness. This naturally led to some interesting consequences I hadn't considered before, e.g.,

my $uri = $u.parse('/foo/bar');
$uri.port(8000); # EXCEPTION: «X::URI::Authority::Invalid: Could not parse URI authority: :8000»
$uri.host("localhost"); # never run

# Better would be
$uri.authority = URI::Authority.new(host => 'localhost', port => 8000); 
# OR
$uri.authority("localhost:8000");
# OR
$uri.host("localhost"); # constructs Authority.new(:host('localhost'))
$uri.port(8000);

It might be slightly unintuitive to some that the order of operations is important here, so I will probably amend the message on X::URI::Authority::Invalid to give a hint like "Maybe you meant to set .host first?" That's just part of the tightening up that needs to happen.

I'm now considering how I want to tackle path/segments and then will move on to query/query-form.

I really appreciate any comments anyone wants to offer and the comments. Thanks, @ronaldxs, for you comments. They have been extremely helpful.

I really want to get this in order so I can get back to finishing up the reference implementation for P6WAPI, which is stuck on URI because I really need the mutators to avoid obfuscating some of the request manipulations I need to do over there.

@zostay
Copy link
Contributor

zostay commented May 16, 2017

I think the implementation I have been working on for making URI mutable is nearly complete. I need to update the documentation and make more tests, but I'm relatively happy with the way it works. The most controversial change it makes is a breaking change to query-form in that using it as a hash will always return lists of values by default. However, this behavior is configurable:

my $u = URI.parse("/home?foo=hello&foo=world&bar=bye");
dd $u.query-form<foo>; #> $("hello", "world")
dd $u.query-form<bar>; #> $("bye")

$u.query.hash-format = URI::Query::Singles; #URI::Query::Lists is default
dd $u.query-form<foo>; #> "world"
dd $u.query-form<bar>; #> "bye"

$u.query.hash-format = URI::Query::Mixed;
dd $u.query-form<foo>; #> $("hello", "world")
dd $u.query-form<bar>; #> "bye"

I considered making Mixed the default behavior, but I think the default behavior ought to be the safest, most robust available, which is clearly the Lists mode. I also considered avoiding the $.hash-format setting and returning a special URI::Query::Value instead that would act like a single value when used as a string or item or as a list, but that seemed dangerously magical to me.

@zostay
Copy link
Contributor

zostay commented May 16, 2017

I suppose the other controversial decision is that URI.query and URI.query-form are basically synonyms now. I'm thinking of deprecating query-form.

@JJ
Copy link
Contributor

JJ commented Oct 7, 2018

What would be the best way of doing this? Merging @zostay 's branch?

@jonathanstowe
Copy link
Member

Well the PR has some test failures when merged to the current HEAD :

t/01.t                 (Wstat: 65280 Tests: 12 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 48 tests but ran 12.
t/authority.t          (Wstat: 256 Tests: 19 Failed: 0)
  Non-zero exit status: 1
  Parse errors: No plan found in TAP output
t/mutate.t             (Wstat: 256 Tests: 11 Failed: 0)
  Non-zero exit status: 1
  Parse errors: No plan found in TAP output

It would be rebase the PR against master and fix the failures and the merge conflict in the README if @zostay has a minute to look at that?

@jonathanstowe
Copy link
Member

Actually the fix for the test failures is trivial

diff --git a/lib/URI.pm b/lib/URI.pm
index d1856b8..90a8423 100644
--- a/lib/URI.pm
+++ b/lib/URI.pm
@@ -38,7 +38,7 @@ class Authority {
     multi method new(Authority:U: Match:D $auth) {
         my Str $userinfo = do with $auth<userinfo> { .Str } else { '' }
         my Str $host     = "$auth<host>".lc;
-        my UInt $port    = do with $auth<port> { .Int } else { Nil }
+        my UInt $port    = do with $auth<port> { .Int } else { Int }
 
         self.new(:$userinfo, :$host, :$port);
     }

So given the merge conflict isn't a biggy, we could merge but I'm not going to make the call as only a few people have actually commented on the change.

@ronaldxs
Copy link
Contributor

ronaldxs commented Oct 7, 2018

Please also consider my comments on PR #34 from July 9, 2017.

@jonathanstowe
Copy link
Member

Yep noted, would a way forward be to fix up the #34 as-is then bring it into a branch in this repository so it has a better visibility and people can fix up any infelicities that they see? I'll do that this afternoon if people think this is a good idea.

@jonathanstowe
Copy link
Member

Okay I'll do it as I have that up to date now. I'll close the #34 and create a new PR on a branch here so that everyone can alter it as they wish.

Before merging I'd like to see a smoke test against modules that depend on this, and maybe at least a test to check that it does actually address @zoffixznet original suggestion.

@jonathanstowe
Copy link
Member

Okay I've pushed all that to https://github.com/perl6-community-modules/uri/tree/zostay-mutators I held off on making a new PR as, frankly, the forking is all a bit much for me and I didn't want to make it in the wrong place.

@ufobat
Copy link
Member

ufobat commented Aug 1, 2019

One year later... and I could really use the changes described here.
What do we need to make some progress?

@Altai-man
Copy link
Contributor

@ufobat
For someone to volunteer their time and expertise to look at https://github.com/perl6-community-modules/uri/commits/zostay-mutators, possibly fix it, document and merge it along with tests, bump module version. Community modules do not have maintainers, so anyone is able to maintain it.

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 4, 2019

I'm just looking at rebasing the branch on the current master, but as it has been a while it may take some time to get it right.

@jonathanstowe
Copy link
Member

I've got most of the tests working, the only part that is missing is the punycode fixes as that part of the code has been completely replaced. If I don't get it working this evening I'll push to the branch anyway so other people can look at it.

@Altai-man
Copy link
Contributor

punycode fixes

Is a module used or a self-hosted implementation?

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 4, 2019

Anyhow I've just pushed a working rebase to https://github.com/perl6-community-modules/uri/commits/zostay-mutators -iit passes all the tests and should be good to merge, however it probably needs furter testing as I'm sure there have been fixes applied without tests.

Also the travis is failing for some reason that isn't clear.

@Altai-man
Copy link
Contributor

@jonathanstowe
The reason it fails is that Test::META uses https://modules.perl6.org/dist/Test::META:cpan:JSTOWE/META6.json#L18 URI module, and URI module tries to test itself with Test::META...
So tests of Test::META fail https://travis-ci.org/perl6-community-modules/uri/builds/567616721#L396 like this and thus URI can't be installed, because its dependency was not installed.

@jonathanstowe
Copy link
Member

Oh, so really that META test wants to be optional on the Test::META being installed.

@jonathanstowe
Copy link
Member

Sorted

@jonathanstowe
Copy link
Member

I've tested HTTP::UserAgent with the branch and it's fine. I'd recommend testing the branch with your favourite code before we merge.

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 5, 2019

Also tested with my (still) un-released Sofa which un-earthed the double escaping problem in the first place.

Will grep for URI in the other modules I have to hand and test them too.

@jonathanstowe
Copy link
Member

Test::META ok
LWP::Simple ok
WebService::Soundcloud not ok :

Ambiguous call to 'AUTOGEN(URI: )'; these signatures all match:
:(URI:D: *%_)
:(URI: *%_)
  in method build-url at /home/jonathan/devel/perl6/modules/WebService-Soundcloud/lib/WebService/Soundcloud.pm (WebService::Soundcloud) line 660
  in method get-authorization-url at /home/jonathan/devel/perl6/modules/WebService-Soundcloud/lib/WebService/Soundcloud.pm (WebService::Soundcloud) line 364
  in block <unit> at t/030-get.t line 40

Fixing.

@jonathanstowe
Copy link
Member

Fixed that. Also upgraded some warnings to hard deprecations.

@jonathanstowe
Copy link
Member

It would be a great boon if some people could review the #44 (also take a look at the AppVeyor fail,) and/or test some more modules with that branch. I'm not going to merge this without some explicit feedback.

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 17, 2019

BTW These are the modules that declare URI as a dependency

  • API::USNavalObservatory
  • App::AizuOnlineJudge
  • Bailador
  • CamelPub
  • FanFou
  • Farabi6
  • Geo::Coder::OpenCage
  • HTTP::UserAgent
  • JSON::RPC
  • LWP::Simple
  • p6doc
  • PodCache::Module
  • Pod::To::HTML
  • Pod::To::HTMLBody
  • Task::Galaxy
  • Task::Popular
  • Test::META
  • Twitter
  • WebService::AWS::Auth::V4
  • WebService::AWS::S3
  • WebService::FootballData
  • WebService::GitHub
  • WebService::SOP
  • WebService::Soundcloud
  • WWW::DuckDuckGo
  • WWW::SilverGoldBull

(updated deps with actual anchor in the grep.)

@jonathanstowe
Copy link
Member

WebService::AWS::Auth::V4 is a fail with this:

Use of Nil in string context
  in block  at /home/jonathan/.rakudobrew/moar-master/install/share/perl6/site/sources/339D6695E181E001033D0E5525B6025A9DAE1C73 (URI) line 78
# Failed test 'correctly canonicalized empty'
# at t/basic.t line 70
# Type check failed in assignment to $path; expected Str but got URI::Path (URI::Path.new(path => "/", seg...)
# Failed test 'correctly canonicalized nonempty query'
# at t/basic.t line 76
# Type check failed in assignment to $path; expected Str but got URI::Path (URI::Path.new(path => "/home/d...)
# Failed test 'correctly match canonical request test from aws'
# at t/basic.t line 93
# Type check failed in assignment to $path; expected Str but got URI::Path (URI::Path.new(path => "/", seg...)
# You planned 26 tests, but ran 18
# You failed 3 tests of 18

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 17, 2019

I can get that to work with a couple of small changes (which are backward compatible,) it also needed some changes regarding escaping as this had changed under it since it was last updated.

PR bradclawsie/WebService-AWS-Auth-V4#4

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 17, 2019

PodCache::Module is a fail:

No such method 'IO' for invocant of type 'URI::Path'
  in block  at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 496
  in sub handle at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 484
  in sub handle at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 296
  in sub handle at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 230
  in sub handle at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 242
  in method process-pod at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 119
  in submethod TWEAK at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Processed.pm6 (PodCache::Processed) line 47
  in method processed-instance at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Render.pm6 (PodCache::Render) line 365
  in method process-name at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Render.pm6 (PodCache::Render) line 395
  in method process-cache at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Render.pm6 (PodCache::Render) line 383
  in method update-collection at /home/jonathan/.zef/store/pod-render.git/02c49579afd206f85eb59113b30fc5344ff421f1/lib/PodCache/Render.pm6 (PodCache::Render) line 527
  in block <unit> at t/150-html.t line 107

A simple Str coercion should fix.

finanalyst/pod-render#3

@jonathanstowe
Copy link
Member

jonathanstowe commented Aug 18, 2019

Bailador is a fail (though I'm not sure it's entirely due to this change:) @ufobat would you like to take a look? It is probably just a Str coercion on some use of URI.path which should be safe with as-is as well as the branch in question:

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foo", ...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/01-OO-route-existence.t line 44

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foo", ...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/01-route-existence.t line 42

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foo", ...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/03-OO-response-content.t line 38

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foo", ...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/03-response-content.t line 35

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/", seg...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/04-OO-templates-mustache.t line 22

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/", seg...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/04-OO-templates.t line 20

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/a", se...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/04-templates-mustache.t line 18

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/a", se...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/04-templates.t line 16

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/cook1"...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/06-OO-cookies.t line 90

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/cook1"...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/06-cookies.t line 84

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/07-OO-errors.t line 23

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/07-errors.t line 19

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/08-OO-sessions.t line 42

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/08-sessions.t line 40

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/app/so...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/09-OO-nested-routes.t line 55

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

    # Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/x", se...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
    # 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/09-prefix.t line 60

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/11-error-templates.t line 25

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foo", ...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/12-duplicate.t line 26

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# You planned 3 tests, but ran 1
# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/a", se...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/14-auto-head-generation-in-core.t line 31

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/file.t...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/15-file-serving.t line 15

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/16-test-headers.t line 19

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/file.t...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/17-test-content-type-handling-with-config.t line 35

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/file.t...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/17-test-content-type-handling.t line 32

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

# Type check failed in binding to parameter '$text'; expected Str but got URI::Path (URI::Path.new(path => "/foobar...)\n  in sub uri_decode at /home/jonathan/.zef/store/URI-Encode.git/5f4d747d38a16d1f8d1e572066ec9ef58323c9dc/lib/URI/Encode.pm6 (URI::Encode) line 34\n  in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 340\n  in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320\n
# 
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in block <unit> at t/18-serve-single-file.t line 25

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

    # You planned 17 tests, but ran 1
Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-api.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-app.t line 16

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-class-app.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-controllers.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-echo.t line 16

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-err.t line 16

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block  at t/30-examples-gradual.t line 21
  in block <unit> at t/30-examples-gradual.t line 15

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-layout.t line 22

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block  at t/30-examples-pastebin.t line 24
  in block <unit> at t/30-examples-pastebin.t line 18

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-postapp.t line 16

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-prefix.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-request.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-reuse-inherit-app.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-reuse-mixed-app.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-reuse-shared-app.t line 17

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

Tried to get the result of a broken Promise
  in sub get-psgi-response at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 80
  in sub run-psgi-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/Test.pm (Bailador::Test) line 49
  in block <unit> at t/30-examples-templates.t line 22

Original exception:
    Type check failed in binding to parameter '$uri'; expected Str but got Any (Any)
      in method log-request at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 248
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 355
      in method dispatch at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 337
      in block  at /home/jonathan/.zef/store/Bailador-0.0.18.tar.gz/Bailador-0.0.18/lib/Bailador/App.pm (Bailador::App) line 320

===> Testing [FAIL]: Bailador:ver<0.0.18>:auth<github:Bailador>

@ufobat
Copy link
Member

ufobat commented Aug 18, 2019

@jonathanstowe will check it within the next couple of days!

@ufobat
Copy link
Member

ufobat commented Aug 18, 2019

Bailador is fixed in Version 0.0.19

@Altai-man
Copy link
Contributor

Checked Bailador as fixed.
Checked WWW::DuckDuckGo <- depends on HTTP::UserAgent and works just fine, the same for WWW::SilverGoldBull(at least it installs).

@jonathanstowe
Copy link
Member

Nice one. Let's think about merging it midweek.

@jonathanstowe
Copy link
Member

WebService::SOP was a fail, fixed by explicit coercions PR is yowcow/p6-WebService-SOP#12

@jonathanstowe
Copy link
Member

I'm going to merge #44 today. I propose closing this and dealing with the inevitable flurry of small issues separately.

@JJ
Copy link
Contributor

JJ commented Aug 25, 2019

Just do it. I was going to check what's the matter with the doc repo, but I guess I'll fix it afterwards. Thanks for your work.

@jonathanstowe
Copy link
Member

I'm going to put a ticket to fix up the README as all the merging has left it with inconsistent markdown style which I didn't want to deal with.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants