action #182402
open[ci] Warning in test output about Devel::Cover: It was not rebuilt for a perl patch version update size:S
Description
Observation¶
During ticket #181358 I've found that container run an old version of Devel::Cover
so I've mitigate the issue by hardcoding the installation of that module (see os-autoinst#2071).
The unhandled output:
This version of Devel::Cover was built with Perl version 5.040000.
It is now being run with Perl version 5.040002.
Attempting to make adjustments, but you may find that some of your modules do
not have coverage data collected. You may need to alter the +-inc, +-ignore
and +-select options.
Acceptance criteria¶
- AC1: os-autoinst CI runs are ensured to not have any output between "… ok" lines relating to Devel::Cover version mismatch
- AC2: We still have code coverage reports (so don't just remove Devel::Cover)
Rollback actions¶
- Remove package installation during test run, see https://github.com/os-autoinst/os-autoinst/blob/219b8b66810cf00e78bad8b4c993e04cbd0f6907/tools/invoke-tests#L68
Suggestions¶
- github action with the unhandled output: https://github.com/os-autoinst/os-autoinst/actions/runs/14646001056/job/41100198511
We should update the container ran by the ci. - Devel::Cover neds to be rebuilt on every perl version update
- It's reproducible by just installing Devel::Cover in a fresh Tumbleweed container and doing
perl -wE'use Devel::Cover'
Updated by gpuliti 11 days ago
- Related to action #181358: [openQA][CI] Prevent unhandled output in prove test calls with automatic checks in os-autoinst added
Updated by tinita 11 days ago
- Related to action #152855: ci: Warning in test output about Devel::Cover: This version of Devel::Cover was built with Perl version 5.038000. size:M added
Updated by tinita 6 days ago
- Subject changed from Perl version mismatch on container to [ci] Warning in test output about Devel::Cover: It was not rebuilt for a perl patch version update
- Description updated (diff)
- Status changed from New to In Progress
- Assignee set to tinita
Perl patch versions are binary compatible, meaning, between perl 5.40.0 and 5.40.2 XS modules don't have to be rebuilt. However, Devel::Cover is special, because it can run coverage on all installed perl modules, and the paths are built into the module on build time, e.g. /usr/lib/perl5/vendor_perl/5.40.0/Some/Module.pm
.
And if it's run with 5.40.2, it has to adjust these paths by doing a good guess, hence the warning.
It wouldn't affect us IMHO, because we only collect coverage for our modules, not CPAN / vendor modules already installed.
So I asked the author if he's open for a PR to silence the warning with an environment variable, but he says the module should rather be rebuilt on any perl version update.
Updated by tinita 6 days ago
Asked in https://suse.slack.com/archives/C02D1374S3V/p1747650079820549 (discuss-packaging)
Updated by tinita 4 days ago
It was suggested that I use %{requires_eq perl}
. That expands to Requires: perl = current.version
, which would change with a perl version update and rebuild.
I added this to the spec file in a branch, and it builds successfully. Of course this can only be verified with the next perl patch version update, if there will be any.
I will make the submit request after the regular Devel-Cover update.
Updated by tinita 3 days ago
https://build.opensuse.org/requests/1279289 home:tinita:branches:devel:languages:perl / perl-Devel-Cover -> devel:languages:perl / perl-Devel-Cover
accepted.
Now I would wait until the new version is in Tumbleweed and remove the cpanm Devel::Cover