hythm7 / Pakku

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

pakku does not see p6c modules? #27

Closed melezhik closed 1 year ago

melezhik commented 1 year ago

I am trying to use pakku to install deps for my module and get this error:

16:54:43 :: 🧚 PRC: 「.」
16:54:43 :: 🦋 MTA: 「SparrowCI:ver<0.0.9>:auth<zef:melezhik>:api<>」
16:54:43 :: 🦋 MTA: 「DBIish:ver<0.6.6>:auth<zef:raku-community-modules>:api<1>」
16:54:43 :: 🦋 MTA: 「Cro::HTTP:ver<0.8.9>:auth<zef:cro>:api<>」
16:54:43 :: 🦋 MTA: 「Cro::WebApp:ver<0.8.9>:auth<zef:cro>:api<>」
16:54:43 :: 🦋 MTA: 「Text::Markdown:ver<1.1.1>:auth<zef:JJMERELO>:api<>」
[task stderr]
16:54:43 :: debconf: delaying package configuration, since apt-utils is not installed
16:54:43 :: ===> Updating fez mirror: https://360.zef.pm/
16:54:43 :: ===> Updated fez mirror: https://360.zef.pm/
16:54:43 :: ===> Updating rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
16:54:43 :: ===> Updated rea mirror: https://raw.githubusercontent.com/Raku/REA/main/META.json
16:54:43 :: 🦗 MTA: 「File::Directory::Tree:ver<2022-04.14+>」

My suspicion is that File::Directory::Tree is p6c based module, pakku does not see it, or maybe I am wrong ...

Full log is here - https://ci.sparrowhub.io/report/2684

hythm7 commented 1 year ago

Pakku does see p6c distributions, because it uses REA and REA indexes all raku distributions including p6c ones.

Looks like SparrowCI depends on 2022-04.14+ version of File::Directory::Tree, I'm curious where does this version exist. I looked in REA, there is only one versions of File::Directory::Tree, no 2022-04.14+, raku.land seems to agree on that as well, also File::Directory::Tree github repo doesn't have 2022-04.14+.

If you are sure there is 2022-04.14+ versions and you pinned this specific version for SparrowCI, It would be great if you happen to know where is this version exist. I will create an issue in REA to index these missing versions.

If you are not sure if such versions exist, I'll tend to believe there is no 2022-04.14+ versions at all, and in this case it make sense to make SparrowCI depends on File::Directory::Tree instead of File::Directory::Tree:ver<2022-04.14+>

melezhik commented 1 year ago

So yes, SparrowCI depends on File::Directory::Tree:ver<2022-04.14+> - https://github.com/melezhik/SparrowCI/blob/846e5efbacc20581606ec711c4331bd917f3bdf0/META6.json#L15

I am not sure now, where did I get this specific version info, however I have never had problem with that ( at least when installing things with zef )

How then zef successfully install SparrowCI for them same META6.json - https://ci.sparrowhub.io/report/2686 ?

melezhik commented 1 year ago

oh, maybe assuming I had had a typo in putting not existence version in my META6.json file, this is just a zef bug? ))) cc @ugexe

melezhik commented 1 year ago

actually version declared in File::Directory::Tree META6.json is just * - https://github.com/labster/p6-file-directory-tree/blob/master/META6.json#L5 , interesting ...

hythm7 commented 1 year ago

How then zef successfully install SparrowCI for them same META6.json - https://ci.sparrowhub.io/report/2686 ?

I dont see File::Directory::Tree installed in the logs. but I did install File::Directory::Tree:ver<2022-04.14+> using zef, and it actually installed the distribution from REA, I looked inside the extracted archive and it has :ver<*> not :ver<2022-04.14+>.

I think this is more an issue of specifying * version in a distribution, I don't think this is correct.

cat /tmp/.zef/File%3A%3ADirectory%3A%3ATree%3Aver%3C%2A%3E%3Aauth%3Cgithub%3Alabster%3E.tar.gz/p6-file-directory-tree-master/META6.json 
{
  "perl"        : "6.*",
  "name"        : "File::Directory::Tree",
  "license"     : "Artistic-2.0",
  "version"     : "*",
  "description" : "Port of File::Path::Tiny - create and delete directory trees",
  "author"      : "labster",
  "depends"     : [ ],
  "provides"    : { "File::Directory::Tree" : "lib/File/Directory/Tree.pm" },
  "source-url"  : "git://github.com/labster/p6-file-directory-tree.git"
}
melezhik commented 1 year ago

I don't see File::Directory::Tree installed in the logs.

yeah, because it already installed into docker container manually ...

I think this is more an issue of specifying * version in a distribution, I don't think this is correct.

exactly, I think pakku behavior in this case is correct (fail to install), not zef's (install), so looks like this is zef bug ...

melezhik commented 1 year ago

or at least zef's logic is that * satisfies ANY version, and pakku's logic is that * version is the smallest one, kinda null ))

hythm7 commented 1 year ago

and pakku's logic is that * version is the smallest one, kinda null

thats correct for Pakku:

[0] > Version.new(*) ~~ Version.new('2022-04.14+')
False
melezhik commented 1 year ago

works now - thanks - https://fosstodon.org/@melezhik/109717850442738399