Current
A challenge I am not sure is surmountable in #5894 is the difficulties with parallel coverage gathering through pytest-cov. The primary problem is that pytest-cov grabs any .coverage* files and aggregates the results, so if you have 4 tests generating their own coverage reports then a test might accidentally "steal" the coverage report from another test, resulting in an error.
I genuinely am not sure if it is possible to even fix that because there doesn't seem to be a way to individually label the coverage reports for each test.
Proposal
I think the best way to fix this is to just create a separate Nexus-only workflow that reports coverage completely separately from the QMCPACK coverage.
I've made a branch on my fork of QMCPACK that is what I envision for a Nexus-only workflow that tests Python 3.10 and Python 3.14, accounts for Numpy 1.22.0 and 2.4.4, and tests on both ubuntu:latest and macos:latest. It would be relatively trivial to also collect coverage there, and since the Nexus tests are quite rapid it would not add any significant runtime to our current workflows.
CodeCov already supplies tools for submitting separate coverage reports for different languages, detailed here.
Current
A challenge I am not sure is surmountable in #5894 is the difficulties with parallel coverage gathering through
pytest-cov. The primary problem is thatpytest-covgrabs any.coverage*files and aggregates the results, so if you have 4 tests generating their own coverage reports then a test might accidentally "steal" the coverage report from another test, resulting in an error.I genuinely am not sure if it is possible to even fix that because there doesn't seem to be a way to individually label the coverage reports for each test.
Proposal
I think the best way to fix this is to just create a separate Nexus-only workflow that reports coverage completely separately from the QMCPACK coverage.
I've made a branch on my fork of QMCPACK that is what I envision for a Nexus-only workflow that tests Python 3.10 and Python 3.14, accounts for Numpy 1.22.0 and 2.4.4, and tests on both
ubuntu:latestandmacos:latest. It would be relatively trivial to also collect coverage there, and since the Nexus tests are quite rapid it would not add any significant runtime to our current workflows.CodeCov already supplies tools for submitting separate coverage reports for different languages, detailed here.