Proto commits in stripe/skycfg

These 19 commits are when the Protocol Buffers files have changed:

Commit:bc2273f
Author:Timothy Gu
Committer:GitHub

Some more tooling upgrades (#132) * Downgrade minimum supported Go version in go.mod to 1.22. We test 1.22–1.24 in CI. This fixes #131. * Upgrade bazel-gazelle. * Add basic docs on how to contribute to this repo. * Add basic support for native `go` toolchain.

The documentation is generated from this commit.

Commit:ea707c9
Author:LINKIWI
Committer:GitHub

Accommodate Starlark reserved keywords as Protobuf message field names (#119) * Support construction of messages with reserved keyword fields * CONTRIBUTORS

Commit:a77cda5
Author:jbrown-stripe
Committer:GitHub

feat: support assigning arbitrary protobuf messages to `protobuf.Any` (#105) * feat: support assigning arbitrary protobuf messages to `protobuf.Any` * pr fixes

Commit:cc2f2d0
Author:seena-stripe
Committer:GitHub

Fix autoboxing (#100)

Commit:880a302
Author:Seena Burns
Committer:Seena Burns

Fix autoboxing

Commit:3410450
Author:seena-stripe
Committer:GitHub

Drop gogo support (#89) * Remove gogocompat * Remove gogo usage in internal/ * Remove gogo from go.mod * Update readme * Fix typo

Commit:f34679e
Author:Seena Burns

Remove gogo usage in internal/

Commit:dbbbdcc
Author:John Millikin
Committer:GitHub

Fix construction of multiply-nested message types. (#73)

Commit:40659e5
Author:John Millikin
Committer:GitHub

Move testdata protos under internal/ and use more compatible paths. (#65) * Move testdata protos under internal/ and use more compatible paths. * Add stub files in testdata dirs (for Go 1.13)

Commit:b7cd9ca
Author:yq-stripe
Committer:John Millikin

autoboxing scalars to their corresponding wrapper types (#56) If a message field is typed as a wrapper type (e.g. StringValue, BoolValue, IntValue) don't throw a type error, but autobox them correspondingly. See below, ``` syntax = "proto3"; package foo; import "google/protobuf/wrappers.proto"; message packet { google.protobuf.StringValue val = 1; } ``` ``` wkt = proto.package("google.protobuf") foo = proto.package("foo") def main(ctx): return [foo.packet(val = wkt.StringValue(value = "something"))] // instead we can write foo.packet(val = "something") ```

Commit:fd6aafa
Author:dilyevsky
Committer:jmillikin-stripe

Support gogoproto.stdduration option. (#35) Support `gogoproto.stdduration` gogo proto option that generates plain `time.Duration` as proto field via implicit conversion from gogo's `google.protobuf.Duration` proto. Example usage: ```python v2 = proto.package("envoy.api.v2") pb = proto.package("google.protobuf.Duration") cluster = v2.Cluster(connect_timeout = pb.Duration(seconds = 1)) ``` Fixes #32

Commit:8ce8088
Author:jmillikin-stripe
Committer:GitHub

Add LICENSE and SPDX headers. (#16) This PR updates AUTHORS and CONTRIBUTORS to match current state, adds a LICENSE file (Apache 2), and adds copyright headers to all the source files. From here on, new source files should contain that header.

Commit:4bd5168
Author:dilyevsky
Committer:jmillikin-stripe

Support "bytes" proto (v2/v3) type. (#13) * Support "bytes" proto (v2/v3) type. * Move special case block into scalarFromStarlark. Update Gogo message test. * Update README to include gogo msg generation command.

Commit:f62bbbf
Author:jmillikin-stripe
Committer:GitHub

Extend the wasm demo to use the upstream Address Book example. (#12) https://developers.google.com/protocol-buffers/docs/gotutorial This is easier for users to get started with than the full Kubernetes or Envoy APIs, and as a nice side-benefit reduces the size of the compiled WASM by ~60%. The demo page itself is also extended to support multiple output formats (YAML, JSON, and Text Protobuf).

Commit:51a8b49
Author:jmillikin-stripe
Committer:GitHub

Support setting and fetching oneof fields (#3) * Support oneof fields in go-protobuf generated code. * Add a shim for oneof field properties in GoGo generated code.

Commit:74afd3f
Author:jmillikin-stripe
Committer:GitHub

Fix message type name calculation for nested messages and gogo-proto. (#1) The previous code was using `proto.MessageName()` in some cases and a calculation from the descriptors in others. This caused multiple issues: * `proto.MessageName()` doesn't work for code generated by gogo-proto, so type checks based on the message name would fail. * The name calculation for descriptors worked the same between codegens, but returned incorrect names for nested messages. This PR switches to using only calculation from descriptors, with a correct implementation thereof.

Commit:33bd29a
Author:John Millikin

Add support for non-nullable message fields (gogo-protobuf option).

Commit:124b68f
Author:John Millikin

Add support for enums.

Commit:29bc11d
Author:John Millikin

Public release of Skycfg, a library for building complex typed configs.