proto-plugins

Monorepo for proto WASM plugins

0
0
0
2
Rust
public

proto-plugins

WASM plugins for proto, managed as a Rust monorepo with moon.

Plugins

Plugin Package Locator
HK hk github://hebilicious/proto-plugins/hk
Nushell nu github://hebilicious/proto-plugins/nu
OCaml ocaml github://hebilicious/proto-plugins/ocaml

Installation

Add one or more plugins to .prototools:

[plugins]
hk = "github://hebilicious/proto-plugins/hk"
nu = "github://hebilicious/proto-plugins/nu"
ocaml = "github://hebilicious/proto-plugins/ocaml"

[tools.hk]
version = "1.46.0"

[tools.nu]
version = "0.112.2"

[tools.ocaml]
version = "5.4.1"

Or add them explicitly:

proto plugin add hk github://hebilicious/proto-plugins/hk
proto plugin add nu github://hebilicious/proto-plugins/nu
proto plugin add ocaml github://hebilicious/proto-plugins/ocaml

Development

proto install
moon run proto-plugins:fmt proto-plugins:test proto-plugins:build

Run a plugin-specific Docker e2e test:

moon run hk:e2e
moon run nu:e2e
moon run ocaml:e2e

Hooks

This repository includes hk configuration in hk.pkl.

cargo install hk
hk install --global

After the global install, hk is a no-op outside repositories that contain an hk.pkl.

Releases

Releases are handled by release-plz.

Each plugin is versioned independently and uses monorepo tags matching proto’s GitHub locator rules:

  • nu-vX.Y.Z
  • ocaml-vX.Y.Z
  • hk-vX.Y.Z

Merging normal changes into main opens or updates the release PR. Merging the release PR creates the package tags, builds the matching WASM plugin, attaches the .wasm and .sha256 assets to the GitHub release, and leaves Cargo publishing disabled.

v0.3.3[beta]