-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Discovered while trying to figure out why Red was always failing in Blin runs.
Red depends on (eventually) jonathanstowe's version of the module by specifying a high version number
JSON::Class:ver<0.0.14+>
JSON::Class:ver<0.0.20+>
But zef info JSON::Class finds this module under vrurg that is a lower version number (because of the API, maybe?)
- Info for: JSON::Class
- Identity: JSON::Class:ver<0.0.6>:auth<zef:vrurg>:api<1.0.5>
- Recommended By: Zef::Repository::Ecosystems<fez>
- Installed: Yes, as JSON::Class:ver<0.0.21>:auth<zef:jonathanstowe>:api<1.0>
Note that zef recommends vrurg's version, but knows I have jonathanstowes version installed
Seems that blin knows it needs to test the higher numbered version, which does not depend on Test::Async based on the dependency hierarchy. But when it goes to test JSON::Class, it uses zef info information to pull vrurg's version, which does depend on Test::Async - it didn't realize this putting together the dependency tree, and therefore didn't install Test::Async the test of vrurg's version fails, and so by the time we get anything that depends on JSON::Class (e.g. License::SPDX), there is no version available, and downstream packages die with a compiler failure.