Skip to main content

proto v0.36 - Static registry, plugin searching, and more

· 2 min read
Miles Johnson
Founder, developer

In this release, we're taking the first step in supporting a plugin registry.

New static registry

Our long-term plan for proto is to provide a server-based registry in which users could publish and manage plugins, and immediately make them available to the community. However, this is quite a mountain of work, and will take some time, but making plugins available now is a priority.

As a temporary solution, we're introducing a static registry, in which available plugins are defined in static JSON files, located in the official moonrepo/proto repository. This will help unblock new features moving forward.

New proto plugin search command

Because of the static registry work above, we're now able to introduce a new command, proto plugin search, that can be used to search for plugins provided by the community. No longer will you need to browse the documentation, or search Google for available plugins.

$ proto plugin search moon

Plugins
Available for query: moon

Plugin Author Format Description Locator
moon moonrepo TOML moon is a multi-language build system and codebase management tool. https://raw.githubusercontent.com/moonrepo/moon/master/proto-plugin.toml

New proto unpin command

Additionally, a command that probably should have existed from the start, but did not, is now available. The proto unpin command does exactly as its name says, it unpins (removes) a version from a .prototools file.

Plugin locator syntax changes

We've decided to slightly change the syntax of plugin locator strings by embracing the common protocol syntax. Instead of source: and github:, we now use file://, https://, and github://. The former syntax will continue to work for the time being, but will be removed entirely in the future.

  • source:./file.wasm -> file://./file.wasm
  • source:https://url.com/file.wasm -> https://url.com/file.wasm
  • github:org/repo -> github://org/repo

If a proto command modifies a .prototools file, the file will be saved with the new syntax. Don't be surprised when this happens!

Other changes

View the official release for a full list of changes.

  • Updated proto uninstall to also remove entries from .prototools if the version was uninstalled.
  • Updated some error messages to include copy for work arounds.
  • We now lock the bin/shims directory when creating/removing files.
    • This is an experiment to help avoid race conditions where multiple proto processes are all trying to write to the same location.
    • If this results in too large of a performance hit, we'll remove the locking.