Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: disallow unsigned integers for istio.* protobuf namespace #28

Closed
wora opened this issue Jan 20, 2017 · 0 comments
Closed

Proposal: disallow unsigned integers for istio.* protobuf namespace #28

wora opened this issue Jan 20, 2017 · 0 comments
Milestone

Comments

@wora
Copy link
Contributor

wora commented Jan 20, 2017

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.

@jasminejaksic-zz jasminejaksic-zz added this to the api beta milestone Mar 23, 2017
@geeknoid geeknoid modified the milestones: Istio 0.2, Istio 0.3 Sep 29, 2017
incfly pushed a commit to incfly/api that referenced this issue Jun 13, 2018
* Update to latest mixer api.

* Supports string_map type.

* Add Duration type.

* Change duration signature

* Use std::chrono:nanoseconds for duration.
nacx pushed a commit to nacx/api that referenced this issue Apr 15, 2020
Mirrored from https://github.com/tetrateio/tetrate @ c55e5b9d583a76971299d7e6af62d451c9d0b368
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants