Release Notes
💥 Breaking
- Made some changes to the
proto execcommand as we no longer auto-quote/escape the command arguments.- Removed the
--rawflag 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')"'
- Before:
- Removed the
- 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-initflag fromproto activate, as the initialization hook now runs by default.
🚀 Updates
- Updated
proto activateandproto execto 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,
npmdepends onnode, butnpmshould take precedence.
- This allows tools that depend on other tools to work correctly in these workflows. For example,
- Added support for shell aliases, that will be injected into the environment during
proto activate.- Aliases can be configured with the new
shell.aliasessetting.
- Aliases can be configured with the new
- Added support for base64 encoded
data://locators for plugins. This is primarily for tools built around proto, like moon. - Added
dashshell support. - Improved performance of environment variable collection, and virtual path conversions.
- Improved shim creation error handling.
- WASM API
- Added
ExecCommandInput.pathsfield, which allows plugins to specify a list of real or virtual paths to prepend to thePATHenvironment variable when executing a command. - Added
ExecCommandOutput.streamedfield, which indicates whether the command was executed with streaming output or not. - Added
PluginContext.working_dirandPluginUnresolvedContext.working_dirfields, which provide the current working directory as a virtual path.
- Added
🧩 Plugins
- npm, pnpm, yarn
- Added
.npmrcand.yarnrc.ymlsupport. Will parse local and user rc files to extract auth token information. - Will pass authorization HTTP headers when making requests for downloading prebuilts.
- Added
- Python, Ruby
- Updated build from source system dependencies and added
apk(Alpine) support.
- Updated build from source system dependencies and added
🐞 Fixes
- Fixed
settings.url-rewritesnot applying to theschema_toolplugin.
⚙️ 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 | shInstall 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 |