From fa3974aee3fa88b16d17f5198265d061d419e39a Mon Sep 17 00:00:00 2001 From: JairusSW Date: Thu, 30 Jul 2026 18:02:31 -0700 Subject: [PATCH] manifest: adopt rolling v0 schema Why: - align plugin publishing with the breaking pre-release manifest model What: - use the hosted v0 schema and 0.0.0 package identity - keep reviewed capabilities and exact versions out of wago.json Proof: - go test ./... - manifest validates against the v0 JSON Schema Docs: - consumer examples updated where this repository documents manifest authority --- README.md | 31 ++++++++++++++++++++++++------- pool.go | 2 +- wago.json | 13 ++++--------- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 20d7d8a..8d808c7 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ The whole thing is bounded by construction: every pool has a worker ceiling, and service has aggregate caps on pools and total workers — on top of the hard ceiling enforced by the underlying `workers` service. -> **Stability:** experimental (`v0.1.0`). The API may change before `v1.0.0`. +> **Stability:** experimental (`v0.0.0`). The API may change without notice. ## Installation @@ -89,17 +89,34 @@ pool must therefore also register `workers` and grant it `instance.manage` and ```json { - "dependencies": ["github.com/JairusSW/pool", "github.com/wago-org/workers"], - "plugins": [ - { - "name": "github.com/wago-org/workers", + "$schema": "https://wago.sh/v0/schema.json", + "plugins": { + "JairusSW/pool": "^0.0.0", + "wago-org/workers": "^0.0.0" + } +} +``` + +The reviewed worker authority is recorded in `wago-lock.json`: + +```json +{ + "plugins": { + "wago-org/workers": { + "version": "0.0.0", + "requiredCapabilities": [ + "instance.manage", + "instance.lifecycle" + ], "capabilities": { "instance.manage": { "maxInstances": 256 }, "instance.lifecycle": true } }, - { "name": "github.com/JairusSW/pool" } - ] + "JairusSW/pool": { + "version": "0.0.0" + } + } } ``` diff --git a/pool.go b/pool.go index 2768998..6471a7f 100644 --- a/pool.go +++ b/pool.go @@ -352,7 +352,7 @@ func New(opts ...Option) *Plugin { func (*Plugin) Info() wago.ExtensionInfo { return wago.ExtensionInfo{ - ID: "wago.pool", Name: "Pool", Version: "0.1.0", + ID: "wago.pool", Name: "Pool", Version: "0.0.0", Description: "Elastic, load-balanced, self-healing pools of Wago workers", Stability: wago.Experimental, Repository: "https://github.com/JairusSW/pool", License: "Apache-2.0", diff --git a/wago.json b/wago.json index f807099..fef2c22 100644 --- a/wago.json +++ b/wago.json @@ -1,6 +1,5 @@ { - "$schema": "https://wago.sh/schema.json", - "schema": "wago-plugin/v1", + "$schema": "https://wago.sh/v0/schema.json", "module": "github.com/JairusSW/pool", "name": "Pool", "version": "0.0.0", @@ -12,11 +11,7 @@ "keywords": ["pool", "worker-pool", "workers", "load-balancing", "load-balancer", "autoscaling", "elastic", "supervision", "fleet", "dispatch", "concurrency", "webassembly", "wasm"], "category": "concurrency", "engines": { "wago": ">=0.1.0" }, - "dependencies": ["github.com/wago-org/workers"], - "plugins": [ - { - "name": "github.com/JairusSW/pool", - "capabilities": {} - } - ] + "plugins": { + "wago-org/workers": "^0.0.0" + } }