hythm7 / Pakku

Package Manager for the Raku Programming Language
Artistic License 2.0
26 stars 3 forks source link

Various libraries are used but not specified in META6.json "depends" section #5

Closed Altai-man closed 4 years ago

Altai-man commented 4 years ago

So zef can't install the module properly like this:

  ~ zef install Pakku
===> Searching for: Pakku
===> Building: Pakku:ver<larva.0>:auth<github:hythm7>
===> Building [OK] for Pakku:ver<larva.0>:auth<github:hythm7>
===> Testing: Pakku:ver<larva.0>:auth<github:hythm7>
===> Testing [OK] for Pakku:ver<larva.0>:auth<github:hythm7>
===> Installing: Pakku:ver<larva.0>:auth<github:hythm7>
===> Install [FAIL] for Pakku:ver<larva.0>:auth<github:hythm7>: ===SORRY!===
Could not find Log::Async at line 1 in:
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/site
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/vendor
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/core
    ap#
    nqp#
    perl5#

===SORRY!===
Could not find Log::Async at line 1 in:
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/site
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/vendor
    inst#/home/koto/.rakudobrew/versions/moar-2019.11/install/share/perl6/core
    ap#
    nqp#
    perl5#

Also JSON::Fast and possibly others are missing.

hythm7 commented 4 years ago

@Altai-man This is a module installer like zef or panda, It is not intended to be installed by zef like the normal modules.

For example, how can you install zef for the first time? you have to use rakudobrew or run few commands to clone the repo and install manually. the same thing for Pakku, there is a script to install it hooks/install-pakku.raku, which takes care of the various libraries needed and installs them as well. so Pakku and it's dependencies are installed to a repo and bundled together as one application, rather than a module and dependencies. so it's not listed in depends section in META6.json.

I see two solutions for this issue ( which I don't like any of them ):

Altai-man commented 4 years ago

Thanks for your response!

I don't think it is a strict requirement for the module to pass its installation phase by zef when it clearly doesn't do what's intended. I also dislike the option to remove Pakku from the ecosystem.

As now we know there are no regressions discovered by checking the module, thus can just ignore its "failure not failure" for this release time being, and patch our ecosystem testing suite to support custom testing commands (e.g. running the install-pakku.raku script instead of zef install foo) for modules and checking a status code. It might be beneficial not only for Pakku, but for other modules that might require that, so there is really no need to go for any of the routes you dislike. :)

I am closing the issue, thanks for your time.