proto v0.17 - Experimental Python support and canary releases
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.
- If
python-build
is available, we'll attempt to use it to build + install Python. This currently requirespyenv
to be installed, and does not work on Windows. - Furthermore, we only support
cpython
at the moment, and do not supportpypy
,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 .prototools
:
bun = "canary"
Other changes
View the official release for a full list of changes.
- Added colors to command line
--help
menus. - Updated the following locations to support partial versions and aliases:
- Tool versions in
.prototools
. - Pinning a default version with
proto install --pin
. - Setting global version with
proto global
. - Setting local version with
proto local
.
- Tool versions in
- Node, npm, pnpm, and yarn will again extract a version from
package.json
engines.