Open lucs opened 6 months ago
I'm not sure this can be changed easily. Below I will list the distributions in just the zef ecosystem alone that depend on a module name and not a distribution name. I suspect most of these were intentional, so fixing this would probably require updating all these distributions to depend on the distribution name shown instead of the module name. At that point zef could be updated to not consider module names when searching for candidates.
Distribution "Cro::RPC::JSON" depends on "Cro::HTTP::Router", but we source it from "Cro::HTTP"
Distribution "MUGS::UI::CLI" depends on "Text::MiscUtils::Layout", but we source it from "Text::MiscUtils"
Distribution "FHIR" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Sparky" depends on "Cro::HTTP::Server", but we source it from "Cro::HTTP"
Distribution "Discogs::API" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Terminal::LineEditor" depends on "Text::MiscUtils::Layout", but we source it from "Text::MiscUtils"
Distribution "Shodan" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Pod::To::PDF" depends on "HarfBuzz::Font::Cairo", but we source it from "HarfBuzz::Shaper::Cairo"
Distribution "Raku::Pod::Render" depends on "Cro::WebApp::Template::Repository::Hash", but we source it from "CWT-Repository-Hash"
Distribution "FeiShuBot" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Data::UkraineWar::MoD" depends on "Ake:ver<0.1.2+>", but we source it from "ake"
Distribution "Ikoko" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Kivuli" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "AWS::SNS::Notification" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "Cro::HTTP::BodyParser::JSONClass" depends on "Cro::BodyParser", but we source it from "Cro::Core"
Distribution "Collection-Raku-Documentation" depends on "Collection::RefreshPlugins", but we source it from "Collection"
Distribution "Prettier::Table" depends on "Text::Wrap", but we source it from "_"
Distribution "Intl::CLDR" depends on "Intl::UserLanguage:ver<0.4.0+>:auth<zef:guifa>", but we source it from "User::Language"
Distribution "Trove" depends on "Digest::MD5", but we source it from "Digest"
Distribution "Sys::HostAddr" depends on "Cro::HTTP::Client", but we source it from "Cro::HTTP"
Distribution "App::Tasks" depends on "Cro", but we source it from "Cro::Core"
Distribution "BusyIndicator" depends on "Cro", but we source it from "Cro::Core"
Distribution "Net::SMTP" depends on "Digest::MD5", but we source it from "Digest"
Distribution "WWW::OpenAI" depends on "Cro::HTTP::Client:ver<0.8.7+>", but we source it from "Cro::HTTP"
Distribution "Terminal::Tests" depends on "Text::MiscUtils::Layout", but we source it from "Text::MiscUtils"
Distribution "WebService::AWS::Auth::V4" depends on "URI::Escape", but we source it from "URI"
Distribution "GlotIO" depends on "URI::Escape", but we source it from "URI"
Distribution "Intl::Regex::CharClass" depends on "Intl::UserLanguage:ver<0.4.0+>:auth<zef:guifa>", but we source it from "User::Language"
Distribution "Node::Ethereum::KeyStore::V3" depends on "Crypt::LibGcrypt::Random", but we source it from "Crypt::LibGcrypt"
Distribution "Marrow" depends on "Cro::HTTP::Router", but we source it from "Cro::HTTP"
Distribution "Ethelia" depends on "Crypt::LibGcrypt::Random", but we source it from "Crypt::LibGcrypt"
tl;dr: For historical reasons 'zef install IO::String' may fail, reporting problems with Text::CSV:ver<0.015>. Workaround: 'zef install IO::String:ver<0.2.0>' or a more recent version, if any.
Details:
I'm upgrading my Rakudo from moar-2023.02 to moar-2024.04. I'm having problems obtaining the IO::String distribution. raku.land proposes:
Now, in a shell having moar-2024.04 active, please observe:
So both of those are good. But:
Yet:
I believe that in the past (versions 0.015 and preceding) Text::CSV supplied an IO::String and that somehow confuses things. Note that since version 0.016 (was fixed in commit 348a68c) it supplies a Text::IO::String instead and does not use IO::String anymore.
So I know that simply installing ver<0.2.0> solves my problem, but I figured I should mention it so zef's understanding could be fixed somehow.