Skip to content

Releases: version-fox/vfox

v1.0.6

09 Feb 15:30

Choose a tag to compare

🎉 What's Changed in v1.0.6

Changelog

🐛 Bug Fixes

Other Changes

  • 73214db: release v1.0.6 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.5...v1.0.6

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.5(No!)

07 Feb 04:03

Choose a tag to compare

🎉 What's Changed in v1.0.5

Changelog

🚀 New Features

🐛 Bug Fixes

📝 Documentation

🔧 Chores

Other Changes

  • 7114a9c: release v1.0.5 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.4...v1.0.5

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.4

19 Jan 13:57

Choose a tag to compare

🎉 What's Changed in v1.0.4

Changelog

🐛 Bug Fixes

  • 7e46e2b: fix: PreUse hook ctx.installedSdks keying to use version strings (#615) (@Copilot)

Other Changes

  • 5524d98: release v1.0.4 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.3...v1.0.4

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.3

17 Jan 02:58

Choose a tag to compare

🎉 What's Changed in v1.0.3

Changelog

🐛 Bug Fixes

  • bc5edee: fix: concurrent map writes in Manager.LookupSdk (#610) (@Copilot)
  • 0930642: fix: nushell template evaluation and get command flag (@aooohan)
  • 673578d: fix: preserve user-added PATH entries by detecting PATH changes in cache (@aooohan)

Other Changes

  • 0006386: release v1.0.3 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.2...v1.0.3

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.2

14 Jan 09:02

Choose a tag to compare

🎉 What's Changed in v1.0.2

Changelog

🐛 Bug Fixes

  • 279070f: fix: add Note field to InstalledPackageItem for PreInstall→PostInstall context passing (#602) (@Copilot)
  • 73c5fef: fix: storage.sdkPath configuration being ignored (#601) (@Copilot)

Other Changes

  • 799c95a: release v1.0.2 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.1...v1.0.2

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.1

14 Jan 07:06

Choose a tag to compare

🎉 What's Changed in v1.0.1

Changelog

🐛 Bug Fixes

  • 1244d96: fix: nil pointer dereference when CheckSumItem is absent (#599) (@Copilot)

Other Changes

  • 0d9a4cb: release v1.0.1 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v1.0.0...v1.0.1

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v1.0.0

14 Jan 04:57

Choose a tag to compare

🎉 What's Changed in v1.0.0

🎉 Core Improvement: Solving the Temporary Directory Problem

Problem Background

Prior to v1.0.0, regardless of whether using session, global, or project scope, all SDKs would be stored in temporary directories. This caused the previously configured version information to become invalid immediately when the shell was closed, resulting in "directory not found" errors in virtual environments and CI/CD workflows.

v1.0.0 Solution

This version completely separates the behavior of the three scopes, adopting a more rational management strategy:

📍 Project Scope (Project-level)

  • Automatically generates .vfox/sdks/<sdk> symlinks in the current project directory
  • Adds the project path to PATH for project isolation
  • Optional parameter: --unlink to disable this behavior (not recommended)
  • Recommendation: Add the generated .vfox/ directory to .gitignore

⏱️ Session Scope (Session-level)

  • Maintains original behavior, SDKs stored in temporary directories
  • Bound to shell lifecycle, automatically cleaned up when shell closes

🌍 Global Scope (Global)

  • Generates permanent symlinks under ~/.vfox/sdks/<sdk>
  • Points to actual SDK version directories
  • Remains effective across shell sessions

Priority Rules

Priority is controlled by the PATH environment variable, from highest to lowest as follows:

#Project > Session > Global > System
$PWD/.vfox/sdks/nodejs/bin:~/.vfox/tmp/<pid>/nodejs/bin:~/.vfox/sdks/nodejs/bin:/usr/bin:...

For detailed usage, please refer to documentation

Additional Features

New Configuration Format Support

  • Introduces vfox.toml and .vfox.toml new configuration formats for a clearer configuration experience
  • Fully backward compatible with legacy .tool-versions format for smooth migration

Multi-user Support

  • Support for multi-user scenarios with independent configuration spaces for each user
  • Global configuration and SDK installation support, simplifying unified management in team environments

Exec Command

  • New exec command allows executing arbitrary commands with specified SDK versions
  • Seamlessly integrates with CI/CD pipelines and VSCode
  • Usage example: vfox x nodejs@20 -- node -v

🎉 核心改进:解决临时目录问题

问题背景

在 v1.0.0 之前,无论使用 sessionglobal 还是 project 作用域,所有 SDK 都会存储在临时目录中。这导致当 shell 关闭后,之前配置的版本信息立即失效,造成虚拟环境和 CI 流程中出现"目录不存在"的错误。

v1.0.0 方案

本版本将三个作用域的行为彻底拆分,采用更加合理的管理策略:

📍 Project 作用域(项目级)

  • 在当前项目目录下自动生成 .vfox/sdks/<sdk> 软链
  • 将项目路径加入 PATH,实现项目隔离
  • 可选参数:--unlink 禁用此行为(不推荐)
  • 建议:将生成的 .vfox/ 目录添加到 .gitignore

⏱️ Session 作用域(会话级)

  • 保持原有行为,SDK 存储在临时目录中
  • 与 shell 生命周期绑定,关闭 shell 自动清理

🌍 Global 作用域(全局)

  • ~/.vfox/sdks/<sdk> 下生成永久软链
  • 指向实际的 SDK 版本目录
  • 跨 shell 会话保持有效

优先级规则

通过 PATH 环境变量控制优先级,从高到低依次为:

#Project > Session > Global > System
$PWD/.vfox/sdks/nodejs/bin:~/.vfox/tmp/<pid>/nodejs/bin:~/.vfox/sdks/nodejs/bin:/usr/bin:...

具体用法请参考文档

其他功能

新配置格式支持

  • 引入 vfox.toml.vfox.toml 新配置格式,提供更清晰的配置体验
  • 完全兼容旧版 .tool-versions 格式,确保平滑迁移

多用户支持

  • 支持多用户场景,每个用户拥有独立配置空间
  • 支持全局配置和 SDK 安装,便于团队环境统一管理

Exec 命令

  • 新增 exec 命令,允许在指定 SDK 版本下执行任意命令
  • 完美支持 CI/CD 流程和 VSCode 集成
  • 用法示例vfox x nodejs@20 -- node -v

Changelog

🚀 New Features

🐛 Bug Fixes

♻️ Refactoring

Other Changes

  • 0c9f837: infra: use directory level symlink as base solution. (@aooohan)
  • 8026607: release v1.0.0 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v0.10.0...v1.0.0

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v0.10.0

02 Jan 10:05

Choose a tag to compare

🎉 What's Changed in v0.10.0

This version includes a critical bug fix for PowerShell on Windows.

Changelog

🚀 New Features

  • 7e3278e: feat: add --user flag to install.sh for user-local installation (#586) (@Copilot)
  • bbbe949: feat: compatible with a multiplexer environments(eg: tmux) (#592) (@aooohan)

🐛 Bug Fixes

  • 68157c6: fix(pwsh): fix regression from #448 that broke session-scoped env switching (@aooohan)
  • de24611: fix(shell): handle login shell dash prefix in Open() function (#579) (@Talbot3)
  • df862ce: fix: check if sudo command is available before using it in install.sh (#575) (@Copilot)
  • c8e8f25: fix: set __VFOX_SHELL in all shell hooks to prevent spawning subprocess on global use (#584) (@linghengqian)

🔧 Chores

Other Changes

  • 28447e7: bug: don't fail if profile directory doesn't exist (#572) (@JayBazuzi)
  • 4b0f379: release v0.10.0 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v0.9.2...v0.10.0

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v0.9.2

28 Oct 06:00

Choose a tag to compare

🎉 What's Changed in v0.9.2

Changelog

🚀 New Features

🐛 Bug Fixes

  • 7f31e65: fix: vfox upgrade unable to detect current version (#556) (@Copilot)

Full Changelog: v0.9.1...v0.9.2

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉

v0.9.1

09 Oct 12:56

Choose a tag to compare

🎉 What's Changed in v0.9.1

Changelog

🚀 New Features

  • 0df35eb: feat: add GitHub token authentication, and API error handling to install.sh script (#553) (@Copilot)
  • 323e4b1: feat: copy use command to clipboard after install in TTY mode (#548) (@Copilot)
  • f685b43: feat: support unuse command to remove version settings from different scopes (#541) (@Copilot)

🐛 Bug Fixes

  • e958ca7: fix: correct context usage for 'yes' flag in remove command (@aooohan)
  • 8afbfe4: fix: disable interactive shell prompts in CI environment (#551) (@bytemain)
  • 44cdd4d: fix: fix global scope to use stable path instead of temporary shell-specific path (#547) (@Copilot)

📝 Documentation

  • 16712af: doc: add uninstallation documentation (#546) (@Copilot)

🔧 Chores

Other Changes

  • 6a1b14c: release v0.9.1 🎉🎉🎉 (@github-actions[bot])

Full Changelog: v0.8.0...v0.9.1

Installation

See installation guide for more details.

Thanks

Thanks to all contributors who made this release possible! 🎉