Skip to content

Releases: moonrepo/proto

0.56.4

18 Apr 02:47

Choose a tag to compare

Release Notes

πŸš€ Updates

  • Added file system locking to temporary files while downloading plugins. This should mitigate issues where multiple processes are attempting to download the same plugin at the same time.
  • Updated the OCI client to inherit settings from settings.http when applicable.

🐞 Fixes

  • Fixed an issue where different URLs with the same file name could conflict while writing temporary files.

Install proto_cli 0.56.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.56.4/proto_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.56.4/proto_cli-installer.ps1 | iex"

Download proto_cli 0.56.4

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

0.56.3

16 Apr 18:06

Choose a tag to compare

Release Notes

πŸ’₯ Breaking

  • Reverted the proto exec --raw changes from v0.56 until we can properly handle all edge cases.

πŸš€ Updates

  • Added in-memory locking for plugin downloads with the same URL, to avoid race conditions where multiple threads attempt to download/rename/copy files at the same time. This primarily applies to the npm, pnpm, and yarn plugins, as they all utilize the same underlying WASM plugin.

🐞 Fixes

  • Fixed an issue where arguments with spaces or special characters were not quoted correctly when running in a shell, resulting in a syntax parse error.
  • Potential fix for the "Failed to load and create plugin: expected at least one module field" error.

βš™οΈ Internal

  • Updated Rust to v1.95.0.
  • Updated dependencies.

Install proto_cli 0.56.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.56.3/proto_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.56.3/proto_cli-installer.ps1 | iex"

Download proto_cli 0.56.3

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

0.56.2

15 Apr 18:29

Choose a tag to compare

Release Notes

πŸš€ Updates

  • Added request retry support, that will retry up to 3 times with exponential backoff for transient errors (network issues, rate limits, etc).
  • Updated PowerShell commands to use -EncodedCommand instead of -Command to avoid quoting/escaping issues. Let us know if you run into any issues with this change.

🐞 Fixes

  • Fixed an issue where file paths may be too long when downloading plugins, triggering an OS error.

🧰 Tools

  • pnpm
    • Added support for pnpm v11 pn and pnx shims.

πŸ›‘οΈ Security

  • Fixed a zip slip vulnerability in the tar archive extraction logic.

βš™οΈ Internal

  • Updated dependencies.

Install proto_cli 0.56.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.56.2/proto_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.56.2/proto_cli-installer.ps1 | iex"

Download proto_cli 0.56.2

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

0.56.1

11 Apr 18:40

Choose a tag to compare

Release Notes

🐞 Fixes

  • Fixed an issue where commands with -- would be considered a complex command and force run within a shell.
  • Fixed some PowerShell quoting issues.

Install proto_cli 0.56.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.56.1/proto_cli-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/moonrepo/proto/releases/download/v0.56.1/proto_cli-installer.ps1 | iex"

Download proto_cli 0.56.1

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

0.56.0

10 Apr 04:06

Choose a tag to compare

Release Notes

πŸ’₯ Breaking

  • Made some changes to the proto exec command as we no longer auto-quote/escape the command arguments.
    • Removed the --raw flag as it's not needed anymore.
    • If you need to use quotes/escapes, you can quote the entire command to execute:
      • Before: proto exec node -- node -e "console.log('hello world')"
      • After: proto exec node -- 'node -e "console.log('hello world')"'
  • Updated child processes executed from WASM plugins to not always run in a shell by default, as it adds too much overhead.
  • Removed the --on-init flag from proto activate, as the initialization hook now runs by default.

πŸš€ Updates

  • Updated proto activate and proto exec to resolve and execute tools in dependency chain order, ensuring environment variables and PATH entries are set in the correct order.
    • This allows tools that depend on other tools to work correctly in these workflows. For example, npm depends on node, but npm should take precedence.
  • Added support for shell aliases, that will be injected into the environment during proto activate.
    • Aliases can be configured with the new shell.aliases setting.
  • Added support for base64 encoded data:// locators for plugins. This is primarily for tools built around proto, like moon.
  • Added dash shell support.
  • Improved performance of environment variable collection, and virtual path conversions.
  • Improved shim creation error handling.
  • WASM API
    • Added ExecCommandInput.paths field, which allows plugins to specify a list of real or virtual paths to prepend to the PATH environment variable when executing a command.
    • Added ExecCommandOutput.streamed field, which indicates whether the command was executed with streaming output or not.
    • Added PluginContext.working_dir and PluginUnresolvedContext.working_dir fields, which provide the current working directory as a virtual path.

🧩 Plugins

  • npm, pnpm, yarn
    • Added .npmrc and .yarnrc.yml support. Will parse local and user rc files to extract auth token information.
    • Will pass authorization HTTP headers when making requests for downloading prebuilts.
  • Python, Ruby
    • Updated build from source system dependencies and added apk (Alpine) support.

🐞 Fixes

  • Fixed settings.url-rewrites not applying to the schema_tool plugin.

βš™οΈ Internal

  • Updated quoting/escaping for many shells.
  • Updated dependencies.

Install proto_cli 0.56.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/moonrepo/proto/releases/download/v0.56.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.56.0/proto_cli-installer.ps1 | iex"

Download proto_cli 0.56.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

0.55.4

05 Mar 23:03

Choose a tag to compare

Release Notes

πŸš€ Updates

  • WASM API
    • Added a ActivateEnvironmentInput.globals_dir field.

🧩 Plugins

  • Updated deno_tool to v0.15.9.
    • Added Windows Arm64 support.
  • Updated node_depman_tool to v0.17.6.
    • Updated shared-globals-dir to also work with proto activate and not just proto run.
    • Now sets pnpm_config_global_dir and pnpm_config_global_bin_dir environment variables.

🐞 Fixes

  • Fixed an issue executing paths on Windows that contain special characters.
  • Potential fix for issues where proto is used outside of the user directory and WASM doesn't have file system access.

βš™οΈ Internal

  • Updated Rust to v1.94.0.
  • Updated dependencies.

Download proto_cli 0.55.4

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

0.55.3

19 Feb 19:49

Choose a tag to compare

Release Notes

🐞 Fixes

  • Fixed an issue when attempting to link binaries and a "failed to create" error occurs. This mainly affects the moonx binary.
  • Fixed an issue with (un)pin/(un)alias commands that would print broken output when the version contains > or <.

βš™οΈ Internal

  • Updated dependencies.

Download proto_cli 0.55.3

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

0.55.2

04 Feb 05:37

Choose a tag to compare

Release Notes

πŸš€ Updates

  • When writing package.json files, we'll now respect .editorconfig settings.

🐞 Fixes

  • Fixed a regression where bins/shims would not be created if the toolchain was restored from a cache and the tools were already installed. This only affects CI environments like GitHub Actions.

Download proto_cli 0.55.2

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

0.55.1

02 Feb 02:57

Choose a tag to compare

Release Notes

🐞 Fixes

  • Temporary fix for HTTP request cache failing with invalid UTF8/deserialization errors.
  • Potential fix for package.json fields being re-ordered when un/pinning versions.

Download proto_cli 0.55.1

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

0.55.0

01 Feb 07:00

Choose a tag to compare

Release Notes

This release is light on new features, but a large portion of the internals were rewritten to better scale with Rust's borrow checker and ownership model. This should lead to less bugs, easier maintenance, and more extensibility in the future. This should be fully backwards compatible, but please report any issues you may find.

πŸš€ Updates

  • Improved proto run to automatically detect when a requested command is a bin provided by another tool (e.g., npx from npm, bunx from bun) by checking the local shims registry, and redirect to the parent tool with the correct executable.
  • Added a --tool-native flag to proto pin that will pin the version to a native tool file using the tool itself (via a plugin call), instead of pinning to .prototools.
    • For example, proto pin node lts --tool-native will pin to package.json devEngines.
  • Added a --tool-native flag to proto unpin that will unpin the version from a native tool file using the tool itself (via a plugin call), instead of unpinning from .prototools.
  • WASM API
    • Added pin_version and unpin_version plugin functions.
    • Added PinVersionInput, PinVersionOutput, UnpinVersionInput, and UnpinVersionOutput types.

🐞 Fixes

  • Fixed an issue with multi-proto install where if one tool failed to install, the others that required it would never resolve.
  • Fixed an issue with IPv6 IPs not resolving correctly during offline detection.

🧩 Plugins

  • Updated bun_tool to v0.16.6.
    • Added pin_version and unpin_version support, which maps to package.json devEngines.
    • Fixed some package.json version parsing issues.
  • Updated node_tool to v0.17.7.
    • Added pin_version and unpin_version support, which maps to package.json devEngines.runtime.
    • Fixed some package.json version parsing issues.
  • Updated node_depman_tool to v0.17.3.
    • Added a registry-url config setting.
    • Added pin_version and unpin_version support, which maps to package.json devEngines.packageManager.
    • Fixed some package.json version parsing issues.

βš™οΈ Internal

  • Updated Rust to v1.93.0.
  • Updated dependencies.

Download proto_cli 0.55.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