eclipse-zenoh / zenoh

zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
https://zenoh.io
Other
1.52k stars 161 forks source link

improve plugin compatibility check #1584

Open milyin opened 2 weeks ago

milyin commented 2 weeks ago

Describe the feature

Currently plugin version verification checks rust compiler version, features enabled and zenoh structures version (see plugins/zenoh-plugin-trait/src/compatibility.rs) It's known that this information is not enough to guarantee compatibility, but on the other hand the full guarantee should include e.g. total equivalence of versions of all crates used, which seems too strict. But at least some crates versions need to be verified. This is report from @Charles-Schleich about zenoh-ts:

it looks like websocket connection failure during the meeting was completely unrelated to the actual connection: I was building the plugin targeting 1.0.1 , with running zenohd 1.0.0-beta4, and the tokio executor wasn't progressing the Websocket task forward. Updating everything to 1.0.1 seems to have fixed the issue.

We need to add list of crates which versions should match. This list will definitely include zenoh itself and tokyo