Closed
Description
I would like to formally suggest to disallow unsigned integers for istio.* protobuf namespace for the following reasons.
- If we allow unsigned integers, people inevitably will use mismatched signed and unsigned types for the same concept, such as network port. It leads to undefined behavior in different languages like C/C++/Java.
- istio attributes only support signed integer. Adding unsigned integer increase system complexity for no real benefit.
- Istio namespace is mostly for configs. The workflow for config is like this: proto schema => documentation => human => yaml => tools => proto config. The critical step is human => yaml. It is very unlikely humans can reliably remember the data types. And mismatch types will confuse users in practice.
- Many important systems, like Java, Stackdriver monitoring, don't support unsigned types at all. If we want to build a generic system, it is better to avoid this unnecessary risk.
- Google have discouraged unsigned integers for over a decade and we have not seen much downside across wide range of products.
To avoid unnecessary complexity to the system, I think we should avoid unsigned type for istio namespace.
Metadata
Metadata
Assignees
Labels
No labels