digital-asset / daml

The Daml smart contract language
https://www.digitalasset.com/developers
797 stars 199 forks source link

Warning on ledger API version mismatches between client & server #12835

Open adriaanm-da opened 2 years ago

adriaanm-da commented 2 years ago

General warnings (but not errors except for maybe specific endpoints) for ledger API version mismatches between client & server. (Post 2.0)

Originally posted by @cocreature in https://github.com/digital-asset/daml/issues/12173#issuecomment-996881633

stefanobaghino-da commented 2 years ago

The Ledger API server and which client? Should this be part of our bindings?

EDIT: added labels speculatively/optimistically

adriaanm-da commented 2 years ago

Any client that could somehow end up being version-mismatched with the server. I don't know if this is common, so maybe the suggestion doesn't make sense. I feel like I've seen at least a couple support cases where we suspected this was the case.

stefanobaghino-da commented 2 years ago

Any client that could somehow end up being version-mismatched with the server. I don't know if this is common, so maybe the suggestion doesn't make sense. I feel like I've seen at least a couple support cases where we suspected this was the case.

If you want any client to be version aware we would somehow need to make this a gRPC codegen feature, which sounds unfeasible. We can make this part of our owned components and bindings, but it should probably be handled on a case by case basis. Furthermore, as of the current situation, one is not even supposed to use client and server components coming from different SDK versions, so that's a quite stricter constraint to consider.

adriaanm-da commented 2 years ago

any client

I meant "any of the clients that we develop"

one is not even supposed to use client and server components coming from different SDK versions, so that's a quite stricter constraint to consider.

That's how I interpret this: we should have a backstop in our code that ensures client and server are coming from the same sdk and issue a warning if not, so that customers are aware of the danger, and we can easily check for this in support cases.

Maybe this is too rare to bother checking for. In which case feel free to close the ticket.

cocreature commented 2 years ago

We make explicit compatibility guarantees that you can use client & servers from different versions https://docs.daml.com/support/compatibility.html#ledger-api-compatibility-application-portability. I think a warning can be useful in some cases so you know that this is happening but we support it and shouldn’t error out.