Closed m-dango closed 2 years ago
Thanks for the report. Looks like a bug caused by bad install.json generated for Time::Piece::MySQL (with Parse::PMFile):
Noe builds/Time-Piece-MySQL-0.06
➜ jq . blib/meta/install.json
{
"name": "Time::Piece::MySQL",
"target": "Time::Piece::MySQL",
"dist": "Time-Piece-MySQL-0.06",
"version": 0.06,
"pathname": "K/KA/KASEI/Time-Piece-MySQL-0.06.tar.gz",
"provides": {
"Time::Piece::MySQL": {
"version": 0.06,
"file": "lib/Time/Piece/MySQL.pm"
},
"Time::Piece": {
"file": "lib/Time/Piece/MySQL.pm",
"version": 0.06
}
}
}
Had been looking around on the Time::Piece::MySQL
and spotted a potentially related bug:
https://rt.cpan.org/Public/Bug/Display.html?id=125106
Yep, https://metacpan.org/dist/Time-Piece-MySQL/source/lib/Time/Piece/MySQL.pm#L10 is the offending line.
That, in combination with Time::Piece being a core module causes Carmel to skip this distribution during carmel install
but then unable to verify the requirements after that. I'll try to come up with a workaround.
Manually removing Time::Piece
from within provides in the install.json seems to be working for me in the time being.
Yeah, that'd work as long as you develop in your local environment.
OK, the reason this fails is that the provides
section (Time::Piece: 0.06) conflicts with the Test::MockTime's requirement of runtime requires Time::Piece: 1.08
(0.06 < 1.08), so Carmel's artifact search excludes this distribution.
I can't think about an easy way to work around this at the code level at this moment.
Ideal solution would be one of:
requires "Time::Piece::MySQL", path => "vendor/lib/Time-Piece-MySQL/";
carmel install
Experiment pushed to work around the issue in #90
Run on perl 5.34.1 and 5.36.0-RC3. Both function correctly when independent from each other