Skip to content

vs2019 build exits 0 when configurations fail #89

Description

@gagelarsen

Summary

xmsconan vs2019 build returns exit code 0 even when configurations fail. The summary table reports the failures correctly, but the process return code does not reflect them.

Hit while building xmsmesher 6.0.8 for msvc 192:

==> Summary
+-----------+----------+-------------+-------------+----------+-----------+
| library   | status   |   attempted |   succeeded |   failed | elapsed   |
|-----------+----------+-------------+-------------+----------+-----------|
| xmsmesher | failed   |          13 |           9 |        4 | 253.5s    |
+-----------+----------+-------------+-------------+----------+-----------+

[exited with code 0]

Note status | failed and failed | 4 alongside a zero return code.

Why this matters

The VS2019 track is a manual, multi-step process: builduploadwheel-repairwheel-deploy. Anything that chains those steps — a script, a Makefile, CI if this is ever automated, or an agent driving the tool — will read the exit code, conclude the build was clean, and proceed to publish a partial package set to the shared aquaveo-vs2019 remote.

That remote is hard to un-publish, which makes a silent partial publish considerably worse than a loud failure. In this instance the failure was caught only because the summary table was read by eye.

Expected

Non-zero exit when any configuration fails, so the failure propagates to whatever invoked it.

Worth considering how this should interact with --continue-on-error: that flag reasonably means "keep building the remaining configurations after one fails", but it should probably still exit non-zero at the end, since its purpose is to maximise information from one run rather than to downgrade failures to warnings. In the run above --continue-on-error was not passed, yet the build continued through all 13 configurations anyway — which may be a second, related bug.

Reproduce

Build a library whose test suite fails under msvc 192 — xmsmesher 6.0.8 does this today (see xmsmesher#85, floating-point baseline divergence between msvc 192 and msvc 194):

xmsconan vs2019 build --root <root> --only xmsmesher --version 6.0.8 --python-versions 3.10
echo $?    # 0, despite 4 failed configurations

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions