infinyon / fluvio

Lean and mean distributed stream processing system written in rust and web assembly. Alternative to Kafka + Flink in one.
https://www.fluvio.io/
Apache License 2.0
3.88k stars 491 forks source link

Show Client and Platform version #383

Closed sehz closed 3 years ago

sehz commented 4 years ago

Currently when version command is perform in the CLI. It shows following:

fluvio version
Fluvio version : 0.6.0-alpha.2
Git Commit     : 9534b85bc34866acf50a13f777ee57ebf43e35fa
OS Details     : Darwin 19.6.0 x86_64
Rustc Version  : 1.46.0 (04488af 2020-08-24)

We should separate in terms of client and current server version. So it should be something like:

fluvio version
Fluvio Client version : 0.6.0-alpha.2
Fluvio Platform version : 0.6.0-alpha.3
Git Commit     : 9534b85bc34866acf50a13f777ee57ebf43e35fa
OS Details     : Darwin 19.6.0 x86_64
Rustc Version  : 1.46.0 (04488af 2020-08-24)
sehz commented 4 years ago

Questions?

nicholastmosher commented 4 years ago

Does the client currently have any way to access the cluster version information? It seems like no. Is that something that would be added to fluvio-protocol somewhere? Can we make a specific request type that reports version information? Or could we pack the version information into a header somewhere?

sehz commented 4 years ago

We could add server version to Version Request which is already implemented as part of client to server negotiation

nicholastmosher commented 3 years ago

@sehz I'm planning on picking this up as my next task and I'm looking around for a starting point and I've got a few questions about what exists already:

Thanks for any tips you have :)

nicholastmosher commented 3 years ago

Alright I'm looking in src/client/src/client/client.rs and I'm seeing a Versions type wrapped around fluvio_spu_schema::server::versions::ApiVersions.

https://github.com/infinyon/fluvio/blob/f7268a5031b2012fc537560bfc3f51b939680360/src/client/src/client/client.rs#L188-L206

What does this "version" information represent? Since it's coming from spu_schema it seems like it would be reporting SPU versions. I don't think that's exactly what we want. If I'm not mistaken, this issue is about getting the SC server version. Would we need to simply follow a similar pattern with fluvio_sc_schema::versions::ApiVersions?

sehz commented 3 years ago

Updated comment to reflect current Fluvio version schema. Instead of reporting sc version which is not well defined now, report platform version. This can be added to ApiVersionsResponse

ajhunyady commented 3 years ago

How about?

Fluvio Client   : 0.6.0-alpha.2
Fluvio Platform : 0.6.0-alpha.3

without version.