Skip to content

Commit 5fe1ca4

Browse files
author
Github Action
committed
chore: synced pact-plugins docs
1 parent a02dd5f commit 5fe1ca4

2 files changed

Lines changed: 31 additions & 3 deletions

File tree

website/docs/implementation_guides/pact_plugins/docs/proposals/proposal_007_driver_plugin_callback_model.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,10 +227,22 @@ between gRPC, WASM, and Lua. Only the transport differs.
227227

228228
This proposal ships as one vertical slice through the mechanism, not the full capability surface:
229229

230-
1. The registry/trait pattern (`core_capabilities` module, generalising `PluginLogSink`).
231-
2. The extended `PluginHost` gRPC service with cycle detection and deadline propagation.
232-
3. Wiring the two existing `is_core()` branches in `content.rs` to call through instead of panicking.
230+
1. ✅ The registry/trait pattern (`core_capabilities` module, generalising `PluginLogSink`). Done in both
231+
drivers: Rust (`core_capabilities.rs`) and JVM (`CoreCapabilities.kt`).
232+
2. ✅ The extended `PluginHost` gRPC service with cycle detection and deadline propagation. Done in both
233+
drivers: Rust (`call_chain.rs`, `plugin_host.rs`) and JVM (`CallChain.kt`, `PluginHostServer.kt`).
234+
3. ✅ Wiring the two existing `is_core()` branches in `content.rs` to call through instead of panicking. Done in
235+
both drivers, including the plugin-forwarding branch calling through the chain-aware RPC methods added in
236+
step 2.
233237
4. The Lua and WASM host-function equivalents.
238+
- ✅ Lua: `host_compare_contents`/`host_generate_content` global functions, reachable from
239+
`match_contents`/`generate_content`. Done in both drivers, each of which has its own Lua
240+
plugin runtime: Rust (`lua_plugin.rs`, via `mlua`) and JVM (`LuaPactPlugin.kt`/
241+
`LuaPluginRpcClient.kt`, via `luajava`). Both reuse the same resolver added in step 2 -
242+
`catalogue_manager::resolve_capability` (Rust) / `CatalogueManager.resolveCapability` (JVM) -
243+
shared with the gRPC `PluginHost` callback path.
244+
- ⬜ WASM: not yet started (blocked on [003](/implementation_guides/pact_plugins/docs/proposals/proposal_003_support_wasm_plugins) landing WASM plugin
245+
support at all).
234246

235247
This is deliberately the smallest slice that proves the mechanism end-to-end, because `is_core()` already exists as an
236248
unfinished seam. [006](/implementation_guides/pact_plugins/docs/proposals/proposal_006_field_level_matchers_and_generators) then adds new capability trait shapes

website/docs/implementation_guides/pact_plugins/docs/proposals/proposal_009_host_provided_core_matching_and_generation.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,22 @@ generator set through the 007 mechanism, and confirming the 006 field-level shap
5353
context where the rule requires it — e.g. a `date` generator needing the current time, or a rule needing sibling
5454
values).
5555

56+
### Sequencing
57+
58+
1. ✅ 007's content-level mechanism (the `CoreContentMatcher`/`CoreContentGenerator` registry and the extended
59+
`PluginHost` gRPC service with cycle detection and deadline propagation). Done in both drivers — Rust
60+
(`core_capabilities.rs`, `call_chain.rs`, `plugin_host.rs`) and JVM (`CoreCapabilities.kt`, `CallChain.kt`,
61+
`PluginHostServer.kt`) — see [007](/implementation_guides/pact_plugins/docs/proposals/proposal_007_driver_plugin_callback_model#sequencing). This unblocks registering
62+
any *content-level* standard matcher/generator (a whole content type, not a single field) through the mechanism
63+
today.
64+
2.[006](/implementation_guides/pact_plugins/docs/proposals/proposal_006_field_level_matchers_and_generators)'s field-level operation shape. Not started. Blocks
65+
registering the field-level standard rules (`type`, `regex`, `equality`, etc. applied to a single field rather
66+
than a whole content type), which is most of what this proposal is actually for.
67+
3. ⬜ Register the standard Pact matcher/generator set as `CORE` catalogue entries with handlers implementing 007's
68+
traits (content-level now possible; field-level blocked on step 2). Not started.
69+
4. ⬜ WASM and Lua host-function equivalents, following [007](/implementation_guides/pact_plugins/docs/proposals/proposal_007_driver_plugin_callback_model#sequencing)'s
70+
step 4. Not started.
71+
5672
## Recommended direction
5773

5874
- Treat standard Pact matching and generation as host capabilities registered through the [007](/implementation_guides/pact_plugins/docs/proposals/proposal_007_driver_plugin_callback_model)

0 commit comments

Comments
 (0)