diff --git a/quest/m1/ffi-shape/README.md b/quest/m1/ffi-shape/README.md index f18042a408..5c167993d0 100644 --- a/quest/m1/ffi-shape/README.md +++ b/quest/m1/ffi-shape/README.md @@ -49,12 +49,16 @@ work no child does: - A layers guide under `doc/lib` mapping net, media, json, flate, audio, and video to each language's module, linked from every binding page. - The bindings section of the following release's upgrade page: old call to - new call per language. + new call per language, including every rename the children made (#4697: + `subscribe` to `consume`, Go's `All(ctx)` iterators and `ConnectionStatus*` + constants, Kotlin and Dart `announced().updates()`, config records in place + of setters and named parameters). - `just test interop --all` green on the finished line. ## Required - [Net](/quest/m1/ffi-shape/net.md) - client and server take config records, snapshots are records, and the verbs match moq-net +- [Request accept](/quest/m1/ffi-shape/request-accept.md) - a request's origins are `accept()` arguments, removing the last root setters - [Media](/quest/m1/ffi-shape/media.md) - catalog, import, and container consume move under `media` - [Codecs](/quest/m1/ffi-shape/codec.md) - audio and video encoders and decoders move under their own namespaces with one constructor shape diff --git a/quest/m1/ffi-shape/request-accept.md b/quest/m1/ffi-shape/request-accept.md new file mode 100644 index 0000000000..7daab7fd78 --- /dev/null +++ b/quest/m1/ffi-shape/request-accept.md @@ -0,0 +1,24 @@ +# [XS] A request's origins are accept() arguments + +## Goal + +`MoqRequest` loses its `set_publish`/`set_consume` setters. The origins a +server serves an incoming session with are arguments to `accept()`, in +moq-ffi and every wrapper, so the root namespace has no setters left. + +## Plan + +[Net](/quest/m1/ffi-shape/net.md) (#4697) replaced every other root setter +with config records but left these two. moq-net's server request takes its +origins through consuming `with_publisher`/`with_subscriber` builders before +`ok()`; a shared FFI handle can't consume itself, so the origins move onto +`accept()` instead. Use one optional argument per origin, or a small +record if the wrapper idioms read better with one. + +`MoqServerConfig.publish`/`consume` stay as the server defaults that seed each +request, and an omitted argument inherits them. Today `set_publish(None)` can +also clear an inherited origin; keep or drop that case on purpose, and test +inherited, overridden, and (if kept) cleared origins. Update the `doc/lib` +samples and the server examples in every binding. + +Public API: breaking in every binding, on `dev` with the line. Wire: none.