Closed Altai-man closed 3 years ago
Actually Blin is responsible of recognizing the dependencies, since my understanding is Blin build list of modules to be tested , then recognize the dependencies and then pass the modules individually to the testing package manager (disabling resolving dependencies on the package manager side).
DB::Pg – MissingDependency – Dependency “test” was not resolved Dependency “runtime” was not resolved https://github.com/CurtTilmes/raku-dbpg/blob/master/META6.json#L13-L22 <- apparently, Pakku does not recognize this organization of dependencies.
In the above case, Blin doesn't recognize dependencies when specified in a hash organization like it's in DB::Pg, and ignores everything that is not a Str. I think the relevent code is here (Also I tested installing DB::Pg with Pakku and successfully recognized dependencies)
CSS::Selector::To::XPath – MissingDependency – Dependency “CSS::Grammar:ver(v0.3.3+)” was not resolved
In this case also Blin is not able to recognize the dependency when specified with parens, the relevant code is here
Tested locally by changing “CSS::Grammar:ver(v0.3.3+)” to “CSS::Grammar:ver<v0.3.3+>” (and calling .spec-parts method), parens failed to parse, angle brackets parsed successfully.
XXX – MissingDependency – Dependency “YAML” was not resolved
In this case, YAML is a missing dependency because the distributions Pakku searches are mirrored using crai, which decide what to archive based on the below: 1- if the github project have tags, then archive the tags. 2- if the github project doesn't have tags, then archive the master branch.
IMO crai author is doing the right thing, and github project authors need to stick to either release via tags or via the main branch, not mix both.
In the case of YAML, it has an old tag, so the master branch (which is the updated one) is ignored and not archived. (And because the tag is actually invalid, it doesn't get mirrored and Pakku can't find it.)
For YAML distribution I have manually archived the latest version from the main branch and mirrored it so it's available now and can be found by Pakku.
So for any missing dependency it would be similar case to YAML (project authors are mixing releasing via tags and from main branch) or there are issues in the META6.json file of the project that it failes to parse and get ignored by Pakku.
Thank you very much for this detailed analysis! Sorry to burden it on you in this manner, I blamed Pakku absolutely unreasonably here. Proceeding to do some patching and reporting!
@Altai-man FWIW I have added the missing dependencies shown above (apart from the "cyclic dependency detected" ones reported by Blin). the only missing dependency is HTTP::Server
but that one doesn't exist in https://modules.raku.org/ or https://raku.land/.
Thank you very much!
The log is:
While some of them are reasonable, there are false positives, e.g.
https://github.com/CurtTilmes/raku-dbpg/blob/master/META6.json#L13-L22 <- apparently, Pakku does not recognize this organization of dependencies.
How, it is available at https://modules.raku.org/search/?q=YAML
https://github.com/css-raku/CSS-Grammar-raku/blob/master/META6.json <- it exists and the current version is 0.3.5, so should resolve clearly.