examples/bsr-quickstart pins the remote plugin buf.build/anthropics/buffa:v0.5.2 in buf.gen.yaml but builds against the in-tree buffa runtime via a path dependency, and the checked-in src/gen/example.v1.rs (hand-patched in #184, #284 and #409 since it was generated) no longer compiles against it. On main (1f5d80e, v0.9.2), cargo check in that directory fails with four errors:
error[E0046]: not all trait items implemented, missing: `merge_view_field`
--> src/gen/example.v1.rs:814:9
error[E0599]: no method named `_merge_into_view` found for mutable reference `&mut TimestampView<'a>`
--> src/gen/example.v1.rs:734:60
error[E0599]: no associated item named `_decode_ctx` found for struct `TimestampView<'a>`
--> src/gen/example.v1.rs:737:104
error[E0308]: mismatched types (`to_owned_message` now infallible on `OwnedView`)
--> src/gen/example.v1.rs:1141:17
The example is in the workspace exclude list, so no CI job builds it and the drift went unnoticed across 0.7 → 0.9.
Two ways to fix, either is fine:
- Bump the pin to the newest published BSR plugin and re-run
task gen-bsr-quickstart-example, then repeat at each release (the buf.gen.yaml comment already says to). This keeps the example honest about what a BSR user gets, but it can only ever track the published plugin, so it will lag main between releases.
- Switch the example's
Cargo.toml back to the crates.io buffa/buffa-types at the version matching the pinned plugin (the commented-out lines are already there), so plugin output and runtime always agree, and add a cheap CI step that runs cargo check in the directory.
Option 2 plus a release-checklist line to bump both pins together seems the more durable of the two.
examples/bsr-quickstartpins the remote pluginbuf.build/anthropics/buffa:v0.5.2inbuf.gen.yamlbut builds against the in-treebuffaruntime via a path dependency, and the checked-insrc/gen/example.v1.rs(hand-patched in #184, #284 and #409 since it was generated) no longer compiles against it. Onmain(1f5d80e, v0.9.2),cargo checkin that directory fails with four errors:The example is in the workspace
excludelist, so no CI job builds it and the drift went unnoticed across 0.7 → 0.9.Two ways to fix, either is fine:
task gen-bsr-quickstart-example, then repeat at each release (thebuf.gen.yamlcomment already says to). This keeps the example honest about what a BSR user gets, but it can only ever track the published plugin, so it will lagmainbetween releases.Cargo.tomlback to the crates.iobuffa/buffa-typesat the version matching the pinned plugin (the commented-out lines are already there), so plugin output and runtime always agree, and add a cheap CI step that runscargo checkin the directory.Option 2 plus a release-checklist line to bump both pins together seems the more durable of the two.