Raku / whateverable

🤖 Different IRC bots that operate on a bunch of prebuilt Rakudo versions
https://gist.github.com/Whateverable
GNU Affero General Public License v3.0
18 stars 14 forks source link

Can't install because of `Sake` dep instead of `sake` #370

Open Altai-man opened 4 years ago

Altai-man commented 4 years ago

Apparently, in META6.json of Sake sake is used as a name. Then:

➜  whateverable git:(sourceable) ✗ zef install --deps-only .
===> Searching for missing dependencies: App::GPTrixie, Config::INI, Cro, Cro::HTTP::Client, Digest, Digest::HMAC, Digest::SHA256::Native, File::Directory::Tree, File::Temp, HTTP::Server::Async, HTTP::UserAgent, IRC::Client, IRC::TextColor, JSON::Fast, Number::Denominate, Pastebin::Gist, SVG::Plot, Sake, Stats, Terminal::ANSIColor, Text::Diff::Sift4, CoreHackers::Sourcery
===> Updating cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Updating p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Failed to find dependencies: Sake
Failed to resolve some missing dependencies
Altai-man commented 4 years ago

I am using 2019.11 and latest zef.

AlexDaniel commented 4 years ago

Yeah, I've seen that. I'm not sure if it's a bug elsewhere or if META6.json should be simply tweaked. Should it know that sake and Sake are the same thing? Ping @ugexe.

ugexe commented 4 years ago

I filed a zef bug report -- https://github.com/ugexe/zef/issues/327 -- but this might be a bit tricky to fix. Looking at the grammar I expected escaping the < and > ala :auth<Foo \<a\@b.com\>> would avoid the issue, but apparently the grammar is not properly parsing escaped surrounding brackets.

This can be worked around by adding an auth field that doesn't contain < or > like :auth<First Last <foo@bar.com>>. Right now the author field is used as an auth since the auth field is missing, since that is just what was always done.