github moonrepo/proto v0.62.0
0.62.0

6 hours ago

Release Notes

💥 Breaking

  • Renamed the functions that the proto activate hook defines, from _proto_activate_hook and _proto_deactivate_hook, to proto_activate and proto_deactivate.

  • Updated the generated Nushell code to be consumed with source instead of use, as the appended proto_activate call stages the initial activation, which the first prompt applies. If you saved the output to a file, regenerate it and update your config.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 activate to return PATH as a paths list, instead of a pre-joined path string. Nushell models PATH as 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 = false in [settings], or PROTO_COMMUNITY_TOOLS=false, to disable this behavior.
  • Added proto activate support for the following shells: ash, dash, sh, powershell (5.1+), xonsh
  • Added a new proto deactivate command, that turns off a previous activation for the current shell session, by unsetting environment variables, removing shell aliases, and removing the injected PATH entries.
    • The activation hook now also defines a proto_deactivate function, which runs the command, unregisters the hook, and removes both functions. Re-activate by evaluating proto activate again.
    • In Nushell, the teardown is staged like every other statement, so it applies on the trigger that follows the call, instead of immediately.
  • Updated proto activate workflows 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!
  • Updated proto activate to no longer remove PATH entries that were inherited from outside of the activation, even when the same directory is being activated. This keeps ~/.proto/shims and ~/.proto/bin on PATH after deactivating, when a shell profile had already added them.
  • Updated proto activate nu to apply our shell syntax like every other shell, instead of a JSON payload. Nushell has no runtime eval, so its hook stages the statements in a file and applies them with source, 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 | sh

Install 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

Don't miss a new proto release

NewReleases is sending notifications on new releases.