plugin-example-deploy
| Version | 2026.180.0001 |
| Repo | superproject |
| Plugin | yes — see the plugin reference |
Reference OUT-OF-TREE charly DEPLOY plugin — a standalone Go module
(go.mod + main.go) serving the exampledeploy deploy TARGET over
go-plugin gRPC via the charly plugin SDK (github.com/opencharly/sdk). It proves
the E3b ExecutorService reverse channel end-to-end for the deploy class,
including the F2 executable deploy channel: charly’s loader host-builds
this candy’s provider binary and serves it OUT-OF-PROCESS via
LocalTransport, then the host’s plugin-side deploy target’s Add Invokes it
(OpExecute) with the deployment’s InstallPlan views — now carrying the serializable
per-step IR — plus a venue descriptor; the plugin dials BACK through the
SDK Executor to (a) write apply/probe markers, (b) WALK + EXECUTE the
plan’s steps on the venue (the file-write step below + an env shell-hook),
(c) PUSH a file via the reverse-channel PutFile leg, and (d) — when the plan
carries a BuilderStep or LocalPkgInstallStep, the two kinds the F2
RunSystem/PutFile legs cannot execute because they need the HOST build ENGINE
— drive the RunHostStep host-engine reverse leg so the host builds the artifact and
installs it onto the venue (proven by composing examplebuild-localpkg, whose
charly-f3-witness package is built with makepkg + installed with pacman -U
over the channel). It returns plugin-script reverse ops the host records in
the install ledger and replays at charly bundle del. The deploy-class
companion of the verb-class candy/plugin-example-external.
Acceptance plan
Section titled “Acceptance plan”This candy’s plan: — the runnable spec charly check executes against a live deployment. check: steps are idempotent probes; run: steps change state.
| Intent | Step |
|---|---|
run |
place a marker file on the venue — a file-write step the external deploy plugin EXECUTES from the round-tripped per-step InstallPlan IR (proves InstallPlan.Steps travel author -> host -> wire -> plugin AND the dest is honored) |
check |
the out-of-tree deploy plugin ships a buildable Go module (go.mod + the provider main) the host can build + serve out-of-process |