Vix.cpp v2.2.0
Vix.cpp v2.2.0 is a dependency management and package resolution release.
This release introduces a new manifest, resolver, and lockfile architecture for the Vix CLI. It also adds full semver resolution, transitive dependency installation, backward compatibility for legacy vix.json dependencies, and a new interactive configuration generator through vix make:config.
The focus of this release is deterministic dependency management.
A C++ runtime ecosystem needs more than a build command. It also needs a reliable way to describe dependencies, resolve versions, install packages, and preserve reproducible project state.
Manifest, resolver, and lockfile architecture
Vix.cpp v2.2.0 introduces a new dependency architecture built around three core pieces:
- manifest
- resolver
- lockfile
The manifest describes what the project depends on. The resolver determines the correct dependency graph. The lockfile preserves the resolved state so installations remain deterministic across machines and future runs. This is an important foundation for the Vix package ecosystem because dependency installation should not depend on accidental command order or changing registry state.
Semver resolver
This release adds full semver support across dependency-related commands. The resolver can now select package versions correctly for commands such as:
vix add
vix install
vix outdatedSemver support is required for a real package manager because projects need to express compatibility ranges while still getting predictable version selection. The goal is to let developers depend on packages safely without manually pinning every version unless they need exact reproducibility.
Transitive dependency resolution
Vix.cpp v2.2.0 enables transitive dependency resolution. Dependencies are now resolved recursively and installed correctly. This is a major step for package management because real packages often depend on other packages. A resolver that only installs direct dependencies is not enough for a modular ecosystem. With transitive resolution, Vix can build a more complete dependency graph and prepare projects for larger package structures.
Legacy vix.json compatibility
The resolver also supports legacy vix.json dependencies.
This preserves backward compatibility with existing packages while enabling the new resolution model.
That balance is important. Vix can improve its dependency system without forcing every existing package to migrate immediately.
The new resolver can understand older dependency declarations while still moving the ecosystem toward manifest, lockfile, and semver-based workflows.
Interactive configuration generation
Vix.cpp v2.2.0 adds:
vix make:configThis command generates structured configuration files through interactive prompts. The goal is to make configuration setup easier and less error-prone, especially for developers who are starting a new project or want to generate a clean baseline configuration. Instead of manually writing configuration from memory, users can generate it through a guided workflow.
Publish validation
This release improves package publishing safety.
Vix now rejects duplicate versions, validates vix.json before publishing, infers versions from git tags, and restores correct build order during publish workflows.
These changes protect the registry from invalid or inconsistent releases.
They also help package authors avoid mistakes such as publishing the same version twice, releasing invalid manifests, or building packages in the wrong dependency order.
Version resolution fixes
Vix.cpp v2.2.0 fixes edge cases in dependency version resolution. These fixes improve consistency across dependency commands and make the resolver more trustworthy. For a package ecosystem, small resolver inconsistencies can create large downstream problems. This release strengthens the resolver behavior before the ecosystem grows larger.
Highlights
- Added manifest, resolver, and lockfile architecture.
- Added deterministic dependency resolution.
- Added lockfile support.
- Added full semver support across dependency commands.
- Added correct version selection for
add,install, andoutdated. - Added
vix make:config. - Added interactive prompts for structured config generation.
- Added support for legacy
vix.jsondependencies. - Added transitive dependency resolution.
- Fixed duplicate version publishing.
- Added
vix.jsonvalidation before publish. - Added version inference from git tags.
- Restored correct publish build order.
- Fixed dependency version resolution edge cases.
Compatibility
Vix.cpp v2.2.0 preserves backward compatibility with legacy vix.json dependency declarations.
Existing packages can continue using their current dependency metadata while the resolver supports the newer dependency architecture.
The new dependency system is additive and prepares the ecosystem for more deterministic package workflows.
Notes
Vix.cpp v2.2.0 is a foundational package management release. It gives the Vix ecosystem the pieces required for serious dependency management: manifests, deterministic resolution, semver, lockfiles, transitive dependencies, publish validation, and interactive configuration generation. This release moves Vix closer to a complete C++ application runtime with package management that is predictable enough for real projects.