待添加的内容
- https://kep.k8s.io/4222: 解码包含重复键的Map到GoMap会产生错误
- KEP-4222: Add duplicate key and field case-sensitivity CBOR decode tests. #123436: 解码包含重复键的Go结构会产生错误
- KEP-4222: Add duplicate key and field case-sensitivity CBOR decode tests. #123436: 当解码到Go结构时,键和字段标签名之间的不区分大小写匹配被视为与没有匹配相同:
json
- KEP-4222: Add duplicate key and field case-sensitivity CBOR decode tests. #123436: 编码具有重复字段名(
json
标签名)的结构不会导致包含重复键的Map产生结果:KEP-4222: Add tests for CBOR encoder handling of duplicate field names/tags. #123626 (在3月6日的apimachinery biweekly上讨论并同意将encoding/json的行为与此匹配,并添加了用于json序列化器的并行测试用例) - KEP-4222: Add decode and roundtrip tests for CBOR marshaling. #123267: 往返保持整数和浮点数字符类型的区别
- KEP-4222: Add decode and roundtrip tests for CBOR marshaling. #123267: 池缓冲区不应增长且永久保留
- KEP-4222: Don't pool large CBOR encode buffers #125676: 解码到Go接口{}中只存储具体值或类型为
nil
、bool
、string
、int64
、float64
、[]interface{}
或map[string]interface{}
的具体值(不对特殊内容进行特殊处理,如标记内容产生的time.Time
、math/big.Int
等):KEP-4222: Add unit tests for decoding CBOR into interface{} type #125068 - KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: "decoding cbor data tagged with 0 produces time.Time instead of RFC3339 timestamp string"
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: "decoding cbor data tagged with 1 produces time.Time instead of RFC3339 timestamp string"
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记无符号整数
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记float16
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记float32
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记float64
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记负整数
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记负float16
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记负float32
- KEP-4222: Decode CBOR time tags to interface{} as RFC 3339 timestamps. #125424: 标记负float64
- KEP-4222: Reject NaN or infinite floating-point values in the CBOR serializer. #125423: 标记Inf
- KEP-4222: Reject NaN or infinite floating-point values in the CBOR serializer. #125423: 标记-Inf
- KEP-4222: Reject NaN or infinite floating-point values in the CBOR serializer. #125423: 标记NaN
- KEP-4222: Reject math/big.Int on encode and bignum tags on decode for CBOR. #125420: "decoding bigint to interface{} must not produce math/big.Int"
- KEP-4222: Reject math/big.Int on encode and bignum tags on decode for CBOR. #125420: "decoding negative bigint to interface{} must not produce math/big.Int"
- KEP-4222: Reject CBOR simple values other than true, false, and null. #125421: "the undefined simple value should not successfully decode as nil"
- KEP-4222: Reject CBOR simple values other than true, false, and null. #125421: "simple values other than false, true, and null should be rejected"
- x2e28f2x: "decoding of tagged time into interface{} must produce RFC3339 timestamp compatible with JSON, not time.Time":x2e28f2x
- x2e29f2x: "decoding bigint to interface{} must not produce math/big.Int":x2e29f2x
- x2e30f2x: "the undefined simple value should not successfully decode as nil":x2e30f2x
- x2e33f2x: "decoding of tagged time into interface{} must produce RFC3339 timestamp compatible with JSON, not time.Time":x2e33f2x
- x2e34f2x: "Test: Conformance tests demonstrated to run against a non-Go Kubernetes client language":x2e34f2x
- x2e35f2x: "Test: Go strings that are not valid UTF-8 sequences can be roundtripped through CBOR without error":x2e35f2x
- x2e36f2x: "Test: Decoding a map into a Go struct produces a strict decoding error if the map contains a key that does not correspond to JSON tag name of one of the struct's fields":subtest in TestDecode of x2e37f2x
- x2e38f2x: "Test: Roundtrip preserves the distinction between absent, present-but-null, and present-and-empty for slices and maps":subtest in TestRoundtrip of x2e38f2x
- x2e39f2x: "Still need tests for the distinction being maintained when decoding into xm_n_xi_xx": x2e39f2
- 自定义资源存储
- 测试:集成:启用API服务器功能门后,存储中的自定义资源编码为CBOR和JSON
- 测试:集成:禁用API服务器功能门后,存储中的混合CBOR和JSON编码的单个自定义资源可以检索
- 测试:集成:禁用功能门后,响应内容类型协商正常工作并尊重指示的偏好(Protobuf > CBOR > JSON)
- 测试:集成:使用动态生成的客户端,所有本地类型都支持使用CBOR获取、列出、监视、更新、删除、删除集合、应用和缩放
- 序列化器实现中的流支持:KEP-4222: Implement runtime.Framer for CBOR Sequences. #126105
- 测试:集成:客户端功能门可以强制使用CBOR请求编码配置的其他客户端使用JSON
- 测试:集成:禁用功能门后,没有显式配置编码的客户端可以将默认请求编码更改为CBOR
- 测试:集成:对于给定(方法,目标资源)对,请求内容类型回退到JSON,不再尝试CBOR
- 支持响应的非确定性编码
- 测试:端到端:与1.17版本的样本API服务器进行请求和响应内容类型协商
- 功能门连接到kube-apiserver
- 动态客户端支持在客户端门后面使用CBOR
- 生成的客户端支持在客户端功能门后面使用CBOR
TODOs
随着我们合并,积累了债务。如果有一些边缘不起作用,我们希望避免失去对它们的跟踪,同时尽可能解锁。
- KEP-4222: Add CBOR Serializer implementation. #122881留下债务
- IntDecConvertSignedOrFail溢出时的错误,JSON会尝试回退到float64。3月6日2024年api-machinery双周讨论过,决定继续为这种情况返回错误,而不是模仿JSON的回退到float64。
- UnstructuredList SetUnstructuredContent的实现与unstructuredJSONScheme不完全相同:KEP-4222: Decode CBOR to UnstructuredList as UnstructuredJSONScheme does. #124775
- 应该支持Inf/-Inf/NaN吗?当前Protobuf会编码这个,但JSON会产生错误
- 3月6日2024年api-machinery双周讨论过:在这里匹配JSON的行为,编码和解码时出错:KEP-4222: Reject NaN or infinite floating-point values in the CBOR serializer. #125423
- DecOptions没有正确设置DefaultMapType,再次在这里设置它,直到修复被采用为止
- 缺少演示列表编码/解码的测试用例。可能已经在上面涵盖了,但仅此一提:KEP-4222: Decode CBOR to UnstructuredList as UnstructuredJSONScheme does. #124775
- 使用自定义json Marshaler/Unmarshaler实现处理带类型的CR客户端:KEP-4222: Check for and reject unsupported custom marshalers and unmarshalers. #125748
- 为特定类型添加处理数值强制转换为特定类型的Unstructured字段访问器,例如“NestedNumberAsFloat”
- CEL成本估算序列化假设
- 解码单元测试验证“自述CBOR”标签在不改变结果的情况下被接受:KEP-4222: Add CBOR decoder unit test that accepts tag 55799. #124799
- Go字节数组编组为CBOR整数数组,而不是字节字符串:KEP-4222: Encode byte array to CBOR as array of integer, not byte string. #125418
encoding.BinaryMarshaler
或encoding.BinaryUnmarshaler
的实现在编码或解码期间未被使用:KEP-4222: Disable recognition of Binary(Unm|M)arshaler in CBOR serializer. #125422- Decode分配模糊目标应覆盖除unstructured之外的目标go类型
- 为Kubernetes组件添加beta要求,以便自动将RawExtension和FieldsV1从JSON转码为其他格式:KEP-4222: Add transcoding opt-out as beta criteria. enhancements#4758
为什么需要这个?
这里跟踪的需求来自KEP alpha标准。
2条答案
按热度按时间polhcujo1#
/sig api-machinery
omtl5h9j2#
/assign @benluddy
For this is a TODO list
/triage accepted