Vix.cpp v2.1.19
Vix.cpp v2.1.19 is a build diagnostics and reliability release.
This release introduces structured CMake build error diagnostics, dedicated detectors for common build failures, cleaner CLI error output, more reliable --clean behavior, and safer publish handling in edge cases involving missing working directories or git context.
The focus of this release is making build failures easier to understand.
C++ build systems can fail for many reasons: missing link targets, invalid CMake configuration, compilation errors, linker errors, stale build artifacts, or incorrect project roots. Vix.cpp v2.1.19 improves how these failures are detected and presented.
Structured CMake diagnostics
Vix.cpp v2.1.19 introduces a structured error detection system for CMake builds. Instead of passing through noisy raw build output as the main user experience, Vix now detects common failure patterns and turns them into clearer diagnostics. This is important because raw CMake and Ninja output is often technically accurate but difficult to read quickly. A runtime-oriented CLI should help the developer understand what failed, where it failed, and what action is likely useful next.
Dedicated build failure detectors
This release adds dedicated detectors for common build issues. The diagnostics now handle cases such as linking failures, missing targets, and compilation failures more explicitly. This makes the build pipeline easier to debug because different error families can receive different messages and hints. A missing target should not be explained like a compiler syntax error. A linker failure should not be treated like a missing CMake project. Vix.cpp v2.1.19 moves the error system toward that separation.
Cleaner error readability
Error output is now cleaner and easier to understand. Noisy lines such as:
ninja: build stoppedare no longer treated as useful primary diagnostics. Those lines describe the consequence of a failure, not the cause. Vix now focuses on the relevant part of the error first, reducing the amount of terminal noise developers must scan during debugging.
Smarter hint system
The hint system was improved so follow-up suggestions are only displayed when relevant. This matters because an irrelevant hint can be worse than no hint. It can send the developer toward the wrong fix. Vix.cpp v2.1.19 gates hints on handled errors, which prevents misleading suggestions from appearing when the error has already been correctly identified. The result is a more disciplined diagnostic flow: detect the failure, classify it, show the focused message, and only add a hint when it helps.
Reliable clean builds
This release improves --clean behavior.
The command now correctly removes local build directories and build artifacts, ensuring a fresh build environment when requested.
This is important because stale CMake or Ninja artifacts can create confusing behavior.
When a developer asks for a clean build, the CLI should remove the local build state reliably instead of leaving partial artifacts behind.
Publish reliability
Vix.cpp v2.1.19 also improves publish behavior. Publishing now handles null current working directory cases more safely and improves git detection. These are edge cases, but they matter for reliability. CLI tools should behave predictably even when invoked from unusual environments, scripts, automation, or partially initialized project contexts.
Highlights
- Added structured CMake build error diagnostics.
- Added dedicated detectors for build failures.
- Added specialized handling for linking issues, missing targets, and compilation failures.
- Improved CLI error readability.
- Removed noisy build-stop lines from the main diagnostic path.
- Improved
--cleanbehavior. - Ensured clean builds remove local build directories and artifacts.
- Improved hint relevance.
- Gated hints on handled errors.
- Fixed missing CMake link target detection.
- Fixed incomplete cleanup when using
--clean. - Improved publish behavior for null working directory cases.
- Improved git detection during publish.
Compatibility
Vix.cpp v2.1.19 introduces no breaking changes.
Existing build, run, and publish workflows remain compatible.
The main difference is that build failures should now be reported with cleaner diagnostics and more focused hints.
Projects using --clean should now get a more reliable fresh build environment.
Notes
Vix.cpp v2.1.19 is a focused diagnostic release. It improves the developer experience around one of the most painful parts of C++ development: understanding why a build failed. The long-term direction is clear. Vix should not only run C++ projects. It should also explain failures in a way that is precise, readable, and useful for real debugging.