This release implements two long requested features, Python language support and canary releases.
Experimental Python support
It's been quite a while since we've introduced a new language into proto, and we're excited to announce the highly requested language, Python! Since Python is now an officially supported language, installing Python (and pip) is as simple as:
$ proto install python
However, we're marking language support as experimental for the time being. We expect our implementation to work for modern Python versions, but may not work for older versions, especially Python 2. The reasons for this are as follows:
- proto will install pre-built binaries from indygreg/python-build-standalone. This is an unofficial project, and does not support all Python versions.
python-buildis available, we'll attempt to use it to build + install Python. This currently requires
pyenvto be installed, and does not work on Windows.
- Furthermore, we only support
cpythonat the moment, and do not support
jython, or other Python implementations. It's unknown whether this functionality should be in the core Python plugin, or another plugin entirely.
In a future proto version, we want to support a true "build from source" approach for all tools. Once that functionality has landed, we can properly support Python on all platforms, but until then, let us know how this works for you!
Install canary releases
A canary release is a mechanism for rolling out new features and changes to a small subset of users, without it being an official release on an official channel. This allows users to opt-in and test functionality if they so choose. Canary releases are not meant to be used in production, and may contain bugs or breaking changes. A canary is similar to a nightly (or weekly) release, depending on the tool.
We now support this workflow in proto. To install a canary release, simply use the
--canary flag when installing a tool:
$ proto install <tool> --canary
This will install the latest canary release to
~/.proto/tools/<tool>/canary, and only the latest
release can be used. Re-installing with
--canary will overwrite the previous canary installation.
However, because we detect a version to run with at runtime, how should you actually run canary? The easiest way is to prefix the shim with an environment variable:
$ PROTO_BUN_VERSION=canary bun ./index.ts
Or to explicitly configure the version in
bun = "canary"
View the official release for a full list of changes.
- Added colors to command line
- Updated the following locations to support partial versions and aliases:
- Tool versions in
- Pinning a default version with
proto install --pin.
- Setting global version with
- Setting local version with
- Tool versions in
- Node, npm, pnpm, and yarn will again extract a version from