api-guidelines icon indicating copy to clipboard operation
api-guidelines copied to clipboard

unknownFutureValue in Evolvable enums

Open MScheleo opened this issue 3 years ago • 2 comments

About the unknownFutureValue from Evovable enums, I have some questions regarding to how it works.

  1. Do developers need to convert the values after unknownFutureValue to unknownFutureValue in the code? I heard this is automatically handled. If it's automatically handled, how is the value parsed/shows when the server receives it (is it converted from unknownFutureValue to all values after unknownFutureValue in the filter)?
  2. I see there's a sunset date for the process of deprecation to move the unknownFutureValue to the very bottom of the enum to make the values not hidden by default. Do we need to support the previous version of the unkonwnFutureValue until the sunset date? Again, is it automatically handled? If so, how? if not, how do we identify different versions
  3. When we change the order of unknownFutureValue user will need to change the code on their side anyways, which would defeat the purpose of unknownFutureValue(I suppose the original design was for user to include all values of the version it was using and include unknownFutureValue for additional values. But after changing the version unknownFutureValue actually doesn't contain the values it previously covered. This will also create confusion as user would suppose unknownFutureValue covers everything)

MScheleo avatar Jul 14 '22 22:07 MScheleo

@OlgaPodo Who is the best person to ask these information - and integrate this in the document?

XVincentX avatar Jul 22 '22 15:07 XVincentX

@MScheleo, I was trying to go through point-by-point, but I think maybe there are fewer questions if I try to address the biggest confusion. Moving unknownFutureValue is a breaking change. This is understood. Clients that have not moved on during the deprecation process will be broken. The service is not expected to support clients that are trying to consume a version of the API that is no longer modeled in the schema.

Does this address most of your questions?

corranrogue9 avatar Jul 22 '22 16:07 corranrogue9