Skip to content

Releases: QGrain/cvm

v0.0.3

12 Jun 19:58

Choose a tag to compare

Highlights

v0.0.3 improves daily cvm usability by allowing version prefixes, adding managed compiler path inspection, and making cvm version more useful for diagnosing local setup issues.

Changes

  • Added version prefix resolution.
    • cvm install llvm 21 resolves to the latest matching LLVM 21 release.
    • cvm use gcc 15, cvm env, cvm alias default, cvm uninstall, and cvm which resolve against locally installed versions.
  • Added cvm ls-remote [llvm|gcc] [prefix] for filtered remote version listing.
  • Added cvm which <llvm|gcc> [version-or-prefix] to print cvm-managed compiler binary paths.
  • Extended cvm version with lightweight diagnostics for CVM_HOME, cvm.sh, PATH, and default toolchain status.
  • Updated project version, installer default version, README, README_CN, and embedded remote index metadata to v0.0.3.

Documentation

  • Added docs/troubleshooting.md.
  • Documented glibc/musl release binary behavior, proxy variables, PATH priority, shell profile loading, and source build dependency failures.
  • Updated command examples to use version prefixes where appropriate.

Testing

  • Simplified brittle documentation tests that asserted implementation details such as exact runner labels or action versions.
  • Added tests for prefix resolution, which, ls-remote filtering, and version diagnostics.

Upgrade Notes

Re-running install.sh replaces $HOME/.cvm/bin/cvm and regenerates $HOME/.cvm/cvm.sh. Existing compiler installations and defaults under $HOME/.cvm are preserved.

v0.0.2

10 Jun 18:18

Choose a tag to compare

Highlights

v0.0.2 adds manifest-backed remote version discovery, automated release asset builds, and a simpler default-version model for LLVM and GCC toolchains.

Changes

  • Added cvm ls-remote support backed by manifests/remote-index.json.
  • Added cvm version and cvm upgrade release checks.
  • Added automatic default aliasing when the first managed compiler version is installed.
  • Removed project-local .cvmrc defaults; cvm use and cvm env now use explicit versions or global alias default.

Release and CI

  • Added GitHub Actions release automation for Linux and macOS binaries.
  • Added scheduled remote index synchronization for GCC and LLVM release metadata.
  • Added support for backfilling release assets for existing tags.

Documentation

  • Simplified README and README_CN for quick-start usage.
  • Added design, release, and contribution documentation under docs/.

Upgrade Notes

Re-running install.sh replaces $HOME/.cvm/bin/cvm and regenerates $HOME/.cvm/cvm.sh. Existing toolchains and defaults under $HOME/.cvm are preserved.

v0.0.1

08 Jun 19:30

Choose a tag to compare

Initial release of cvm, a per-user compiler version manager for LLVM and GCC.

Highlights

  • Manage multiple LLVM and GCC versions under $HOME/.cvm.
  • Install LLVM and GCC from source with kernel-oriented defaults.
  • Switch compiler versions in the current shell with nvm-style shell integration.
  • Persist default compiler versions with cvm alias default.
  • Support project-local version selection through .cvmrc.
  • Keep system compilers untouched.