KEP-4222: CBOR encoding alpha requirement tracking #122921
Labels
kind/feature
Categorizes issue or PR as related to a new feature.
sig/api-machinery
Categorizes an issue or PR as relevant to SIG API Machinery.
triage/accepted
Indicates an issue or PR is ready to be actively worked on.
What would you like to be added?
Requirements for https://kep.k8s.io/4222:
As we check these off, please add links to the tests.
json
field tag names case-sensitively: KEP-4222: Add duplicate key and field case-sensitivity CBOR decode tests. #123436json
field tag name is treated the same as no match: KEP-4222: Add duplicate key and field case-sensitivity CBOR decode tests. #123436json
tag names) does not result in a map containing duplicate keys: KEP-4222: Add tests for CBOR encoder handling of duplicate field names/tags. #123626 (discussed at March 6 2024 api-machinery biweekly and agreed on matching the encoding/json behavior, with addition of parallel test cases for the json serializer)map[string]interface{}
KEP-4222: Make CBOR roundtrip tests pass through interface{}. #123536uint64(math.MaxUint64)
because it would overflow int64. Kube JSON cannot roundtrip this, either:uint64(math.MaxUint64)
-> JSON18446744073709551615
->float64(1.8446744073709552e+19)
-> JSON18446744073709552000
->json: cannot unmarshal number 18446744073709552000 into Go value of type uint64
: this was discussed in the apimachinery biweekly on march 6 and agreed to reject rather than decode to float64: https://docs.google.com/document/d/1x9RNaaysyO0gXHIr1y50QFbiL1x8OWnk2v3XnrdkT5Y/edit#heading=h.xzja5vbnkhk2nil
concrete values or concrete values of typebool
,string
,int64
,float64
,[]interface{}
, ormap[string]interface{}
(no special treatment of tagged content producingtime.Time
,math/big.Int
, etc.): KEP-4222: Add unit tests for decoding CBOR into interface{} type #125068map[string]interface{}
: KEP-4222: Make CBOR roundtrip tests pass through interface{}. #123536runtime.RawExtension
: Re-encoding preserves the original raw bytes: KEP-4222: Automatically transcode RawExtension between unstructured protocols. #125629runtime.RawExtension
: Decoding JSON-in-CBOR, JSON-in-Protobuf, CBOR-in-JSON, and CBOR-in-Protobuf is supported: KEP-4222: Automatically transcode RawExtension between unstructured protocols. #125629TODOs
Tracks debt built up as we merged. If there were some edges that didn't work, we want to avoid losing track of those, while unlocking as much as possible.
encoding.BinaryMarshaler
orencoding.BinaryUnmarshaler
are not used during encoding or decoding: KEP-4222: Disable recognition of Binary(Unm|M)arshaler in CBOR serializer. #125422Why is this needed?
The requirements tracked here originate from the KEP alpha criteria.
The text was updated successfully, but these errors were encountered: