Release Notes
💥 Breaking
-
Renamed the functions that the
proto activatehook defines, from_proto_activate_hookand_proto_deactivate_hook, toproto_activateandproto_deactivate. -
Updated the generated Nushell code to be consumed with
sourceinstead ofuse, as the appendedproto_activatecall stages the initial activation, which the first prompt applies. If you saved the output to a file, regenerate it and update yourconfig.nu:proto activate nu | save --force ($nu.default-config-dir | path join "proto-hook.nu") # In config.nu, replace `use proto-hook.nu` with: source proto-hook.nu
-
Updated the JSON output of
proto activateto returnPATHas apathslist, instead of a pre-joinedpathstring. Nushell modelsPATHas a list, and would otherwise lose its path semantics.
🚀 Updates
- Added unstable Zig (and ZLS) support:
proto install zig. - Added automatic plugin resolution for tools in the official community plugins registry. Community tools can now be used by ID without first configuring a plugin locator.
- Set
community-tools = falsein[settings], orPROTO_COMMUNITY_TOOLS=false, to disable this behavior.
- Set
- Added
proto activatesupport for the following shells:ash,dash,sh,powershell(5.1+),xonsh - Added a new
proto deactivatecommand, that turns off a previous activation for the current shell session, by unsetting environment variables, removing shell aliases, and removing the injectedPATHentries.- The activation hook now also defines a
proto_deactivatefunction, which runs the command, unregisters the hook, and removes both functions. Re-activate by evaluatingproto activateagain. - In Nushell, the teardown is staged like every other statement, so it applies on the trigger that follows the call, instead of immediately.
- The activation hook now also defines a
- Updated
proto activateworkflows to also trigger on prompt changes, so that configuration changes in the current directory are reflected.- Applied to the following shells:
elvish,fish,nu,pwsh,xonsh,zsh - If you notice any performance regression, please report it to us!
- Applied to the following shells:
- Updated
proto activateto no longer removePATHentries that were inherited from outside of the activation, even when the same directory is being activated. This keeps~/.proto/shimsand~/.proto/binonPATHafter deactivating, when a shell profile had already added them. - Updated
proto activate nuto apply our shell syntax like every other shell, instead of a JSON payload. Nushell has no runtimeeval, so its hook stages the statements in a file and applies them withsource, which delays each application to the next prompt. The JSON output remains available for tooling.
🐞 Fixes
- Fixed
[shell.aliases]not being applied in Nushell and Elvish.- Nushell can only define an alias when code is parsed, which its previous hook had no way to reach.
- Elvish evaluates our statements in a restricted namespace, so a defined alias was discarded as soon as it returned. Aliases now also receive arguments, but are only available in an interactive session.
- Fixed Elvish activation breaking for the rest of the session after leaving a directory that configured
[shell.aliases], as removing the alias failed to compile, which aborted every other statement alongside it. - Fixed
[env]variables failing to apply in Murex and PowerShell, as the values were not quoted, and both shells parse the right side of an assignment as an expression. - Fixed Nushell not unsetting a previous directory's
[env]variables when changing directories, as the activation was not tracking what it applied.
⚙️ Internal
- Updated dependencies.
Install proto_cli 0.62.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.62.0/proto_cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.62.0/proto_cli-installer.ps1 | iex"Download proto_cli 0.62.0
| File | Platform | Checksum |
|---|---|---|
| proto_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| proto_cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| proto_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| proto_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| proto_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| proto_cli-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| proto_cli-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |