Releases: version-fox/vfox
v1.0.6
🎉 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!)
🎉 What's Changed in v1.0.5
Changelog
🚀 New Features
- e795326: feat(windows): support vfox use -g without hook environment (#611, #620) (@aooohan)
- fbc7e73: feat(windows): support vfox use without hook environment (#611, #620) (@aooohan)
🐛 Bug Fixes
- c98eb4f: fix: preserve system PATH when no vfox paths exist (#622) (@aooohan)
- 717c219: fix: preserve virtualenv PATH priority when vfox hook re-evaluates PATH (#622) (@aooohan)
📝 Documentation
🔧 Chores
- 2d5da33: chore(deps): bump actions/checkout from 4 to 6 (#617) (@dependabot[bot])
- 15a75c5: chore(deps): bump actions/download-artifact from 4 to 7 (#616) (@dependabot[bot])
- e4052f5: chore(deps): bump actions/upload-artifact from 4 to 6 (#618) (@dependabot[bot])
- 9aa9963: chore(deps): bump anchore/sbom-action from 0.19.0 to 0.22.1 (#624) (@dependabot[bot])
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
🎉 What's Changed in v1.0.4
Changelog
🐛 Bug Fixes
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
🎉 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
🎉 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
🎉 What's Changed in v1.0.1
Changelog
🐛 Bug Fixes
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
🎉 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:
--unlinkto 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.tomland.vfox.tomlnew configuration formats for a clearer configuration experience - Fully backward compatible with legacy
.tool-versionsformat 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
execcommand 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 之前,无论使用 session、global 还是 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
- 3bbb664: feat: divide the shim directory into three layers and add it to the $PATH (@aooohan)
- 48d020c: feat: improve CreateDirSymlink to use FILE_FLAG_OPEN_REPARSE_POINT (@aooohan)
- 50d8a84: feat: put
.vfox/into .gitignore if exists. (@aooohan) - 619915d: feat: support
@latesttag forinstallandusecommand (@aooohan) - 2468c92: feat: support
execcommand for CI or IDE (@aooohan) - 4fbe31f: feat: support
vfox.tomlconfiguration format. (@aooohan) - 6032a91: feat: support share configuration (@aooohan)
- 4351c2b: feat: support shared root installed (@aooohan)
- ed4001f: feat: swallow 'v' letter in version while installing (@aooohan)
🐛 Bug Fixes
- 0e1ce5e: fix: Use YYYYMMDD as the temporary path prefix instead of a timestamp. (@aooohan)
- 18a008d: fix: compatible with old vfox home directory name. (@aooohan)
- addfad5: fix: correct cache for Available Hook (@aooohan)
- b4dc195: fix: correct preUse behavior (@aooohan)
- 5e7e763: fix: panic when Windows username contains non-ASCII characters (#594) (@Copilot)
- e276951: fix: put absolutely path of project scope into PATH. (@aooohan)
- 60f3747: fix: windows junction (@aooohan)
♻️ Refactoring
- a6cdae3: refactor:
activatecommand (@aooohan) - 9b8930b: refactor:
envcommand (@aooohan) - 54bb382: refactor:
usecommand && add--unlinkarg for project scope (@aooohan) - b46b1fc: refactor: restructuring package level (@aooohan)
- 05217f7: refactor: use
vfox.tomlinstead of '.tool-versions' (@aooohan)
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
🎉 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_SHELLin all shell hooks to prevent spawning subprocess on global use (#584) (@linghengqian)
🔧 Chores
- 1ca4237: chore(deps): bump actions/cache from 4 to 5 (#574) (@dependabot[bot])
- fc0a221: chore(deps): bump actions/checkout from 5 to 6 (#570) (@dependabot[bot])
- a379f7b: chore(deps): bump anchore/sbom-action from 0.15.1 to 0.19.0 (#565) (@dependabot[bot])
- 1d21708: chore(deps): bump sigstore/cosign-installer from 3.10.0 to 3.10.1 (@dependabot[bot])
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
🎉 What's Changed in v0.9.2
Changelog
🚀 New Features
🐛 Bug Fixes
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
🎉 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
unusecommand 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
🔧 Chores
- 3833412: chore(deps): bump actions/checkout from 3 to 5 (@dependabot[bot])
- c066c91: chore(deps): bump sigstore/cosign-installer from 3.3.0 to 3.10.0 (@dependabot[bot])
- d296f61: chore(deps-dev): bump vite from 5.2.8 to 5.4.20 in /docs (#544) (@dependabot[bot])
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! 🎉