Skip to content

Commit bc1253a

Browse files
jhumpstapelberg
authored andcommitted
types/descriptorpb: regenerate using latest protobuf v22.0 release
This updates all generated code to match the contents of the latest v22.0 release of Protobuf. This involved a couple of changes to the script that does the sync'ing: 1. The new Protobuf version no longer includes autoconf configuration and instead requires using bazel to build things. 2. The new Protobuf release does not have an artifact named "protobuf-all-${VERSION}.tar.gz", but the one named "protobuf-${VERSION}.tar.gz" has all of the sources and was sufficient for the regenerate.bash script to complete. This change does NOT regenerate the protos related to benchmarks. The Protobuf repo no longer includes benchmarks. The CL removing them says they are superceded by google/fleetbench: protocolbuffers/protobuf@83c499d But that project's proto benchmark files are very different: https://github.com/google/fleetbench/tree/main/fleetbench/proto So I commented out those steps in the generation code since the benchmarks will need some work to reconcile with fleetbench. This code adds known failing tests for conformance. New test cases were added in protocolbuffers/protobuf#9534, but the Go protojson package does not behave according to the new tests. There is an existing issue in GitHub about this: golang/protobuf#1208 Change-Id: Iad796ec7889bc2a74b58db5224facf850cd1a1cd Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/469255 Reviewed-by: Michael Stapelberg <[email protected]> Reviewed-by: Damien Neil <[email protected]>
1 parent 246af0d commit bc1253a

File tree

37 files changed

+1582
-1033
lines changed

37 files changed

+1582
-1033
lines changed

cmd/protoc-gen-go/testdata/comments/comments.pb.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/protoc-gen-go/testdata/fieldnames/fieldnames.pb.go

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/protoc-gen-go/testdata/import_public/sub/a.pb.go

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/protoc-gen-go/testdata/issue780_oneof_conflict/test.pb.go

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/protoc-gen-go/testdata/proto2/fields.pb.go

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integration_test.go

+11-14
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ var (
3535
regenerate = flag.Bool("regenerate", false, "regenerate files")
3636
buildRelease = flag.Bool("buildRelease", false, "build release binaries")
3737

38-
protobufVersion = "21.5"
38+
protobufVersion = "22.0"
3939
protobufSHA256 = "" // ignored if protobufVersion is a git hash
4040

4141
golangVersions = func() []string {
@@ -45,7 +45,7 @@ var (
4545
default:
4646
vers = []string{"1.13.15", "1.14.15", "1.15.15"}
4747
}
48-
return append(vers, "1.16.15", "1.17.12", "1.18.4")
48+
return append(vers, "1.16.15", "1.17.13", "1.18.10", "1.19.6")
4949
}()
5050
golangLatest = golangVersions[len(golangVersions)-1]
5151

@@ -244,23 +244,20 @@ func mustInitDeps(t *testing.T) {
244244
protobufPath = startWork("protobuf-" + protobufVersion)
245245
if _, err := os.Stat(protobufPath); err != nil {
246246
fmt.Printf("download %v\n", filepath.Base(protobufPath))
247-
if isCommit := strings.Trim(protobufVersion, "0123456789abcdef") == ""; isCommit {
248-
command{Dir: testDir}.mustRun(t, "git", "clone", "https://github.com/protocolbuffers/protobuf", "protobuf-"+protobufVersion)
249-
command{Dir: protobufPath}.mustRun(t, "git", "checkout", protobufVersion)
250-
} else {
251-
url := fmt.Sprintf("https://github.com/google/protobuf/releases/download/v%v/protobuf-all-%v.tar.gz", protobufVersion, protobufVersion)
252-
downloadArchive(check, protobufPath, url, "protobuf-"+protobufVersion, protobufSHA256)
247+
checkoutVersion := protobufVersion
248+
if isCommit := strings.Trim(protobufVersion, "0123456789abcdef") == ""; !isCommit {
249+
// release tags have "v" prefix
250+
checkoutVersion = "v" + protobufVersion
253251
}
252+
command{Dir: testDir}.mustRun(t, "git", "clone", "https://github.com/protocolbuffers/protobuf", "protobuf-"+protobufVersion)
253+
command{Dir: protobufPath}.mustRun(t, "git", "checkout", checkoutVersion)
254254

255255
fmt.Printf("build %v\n", filepath.Base(protobufPath))
256-
command{Dir: protobufPath}.mustRun(t, "./autogen.sh")
257-
command{Dir: protobufPath}.mustRun(t, "./configure")
258-
command{Dir: protobufPath}.mustRun(t, "make")
259-
command{Dir: filepath.Join(protobufPath, "conformance")}.mustRun(t, "make")
256+
command{Dir: protobufPath}.mustRun(t, "bazel", "build", ":protoc", "//conformance:conformance_test_runner")
260257
}
261258
check(os.Setenv("PROTOBUF_ROOT", protobufPath)) // for generate-protos
262-
registerBinary("conform-test-runner", filepath.Join(protobufPath, "conformance", "conformance-test-runner"))
263-
registerBinary("protoc", filepath.Join(protobufPath, "src", "protoc"))
259+
registerBinary("conform-test-runner", filepath.Join(protobufPath, "bazel-bin", "conformance", "conformance_test_runner"))
260+
registerBinary("protoc", filepath.Join(protobufPath, "bazel-bin", "protoc"))
264261
finishWork()
265262

266263
// Download each Go toolchain version.

internal/cmd/generate-protos/main.go

+24-17
Original file line numberDiff line numberDiff line change
@@ -195,23 +195,30 @@ func generateRemoteProtos() {
195195
{"src", "google/protobuf/test_messages_proto3.proto", "google.golang.org/protobuf/internal/testprotos/conformance;conformance"},
196196

197197
// Benchmark protos.
198-
{"benchmarks", "benchmarks.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks;benchmarks"},
199-
{"benchmarks", "datasets/google_message1/proto2/benchmark_message1_proto2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2;proto2"},
200-
{"benchmarks", "datasets/google_message1/proto3/benchmark_message1_proto3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3;proto3"},
201-
{"benchmarks", "datasets/google_message2/benchmark_message2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2;google_message2"},
202-
{"benchmarks", "datasets/google_message3/benchmark_message3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
203-
{"benchmarks", "datasets/google_message3/benchmark_message3_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
204-
{"benchmarks", "datasets/google_message3/benchmark_message3_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
205-
{"benchmarks", "datasets/google_message3/benchmark_message3_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
206-
{"benchmarks", "datasets/google_message3/benchmark_message3_4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
207-
{"benchmarks", "datasets/google_message3/benchmark_message3_5.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
208-
{"benchmarks", "datasets/google_message3/benchmark_message3_6.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
209-
{"benchmarks", "datasets/google_message3/benchmark_message3_7.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
210-
{"benchmarks", "datasets/google_message3/benchmark_message3_8.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
211-
{"benchmarks", "datasets/google_message4/benchmark_message4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
212-
{"benchmarks", "datasets/google_message4/benchmark_message4_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
213-
{"benchmarks", "datasets/google_message4/benchmark_message4_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
214-
{"benchmarks", "datasets/google_message4/benchmark_message4_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
198+
// TODO: The protobuf repo no longer includes benchmarks.
199+
// CL removing them says they are superceded by google/fleetbench:
200+
// https://github.com/protocolbuffers/protobuf/commit/83c499de86224538e5d59adc3d0fa7fdb45b2c72
201+
// But that project's proto benchmark files are very different:
202+
// https://github.com/google/fleetbench/tree/main/fleetbench/proto
203+
// For now, commenting these out until benchmarks in this repo can be
204+
// reconciled with new fleetbench stuff.
205+
//{"benchmarks", "benchmarks.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks;benchmarks"},
206+
//{"benchmarks", "datasets/google_message1/proto2/benchmark_message1_proto2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto2;proto2"},
207+
//{"benchmarks", "datasets/google_message1/proto3/benchmark_message1_proto3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message1/proto3;proto3"},
208+
//{"benchmarks", "datasets/google_message2/benchmark_message2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message2;google_message2"},
209+
//{"benchmarks", "datasets/google_message3/benchmark_message3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
210+
//{"benchmarks", "datasets/google_message3/benchmark_message3_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
211+
//{"benchmarks", "datasets/google_message3/benchmark_message3_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
212+
//{"benchmarks", "datasets/google_message3/benchmark_message3_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
213+
//{"benchmarks", "datasets/google_message3/benchmark_message3_4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
214+
//{"benchmarks", "datasets/google_message3/benchmark_message3_5.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
215+
//{"benchmarks", "datasets/google_message3/benchmark_message3_6.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
216+
//{"benchmarks", "datasets/google_message3/benchmark_message3_7.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
217+
//{"benchmarks", "datasets/google_message3/benchmark_message3_8.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message3;google_message3"},
218+
//{"benchmarks", "datasets/google_message4/benchmark_message4.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
219+
//{"benchmarks", "datasets/google_message4/benchmark_message4_1.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
220+
//{"benchmarks", "datasets/google_message4/benchmark_message4_2.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
221+
//{"benchmarks", "datasets/google_message4/benchmark_message4_3.proto", "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4;google_message4"},
215222
}
216223

217224
opts := "module=" + modulePath

internal/conformance/conformance_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ func Test(t *testing.T) {
4040
if !*execute {
4141
t.SkipNow()
4242
}
43-
binPath := filepath.Join(*protoRoot, "conformance", "conformance-test-runner")
43+
binPath := filepath.Join(*protoRoot, "bazel-bin", "conformance", "conformance_test_runner")
4444
cmd := exec.Command(binPath,
4545
"--failure_list", "failing_tests.txt",
4646
"--text_format_failure_list", "failing_tests_text_format.txt",
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInMapValue.ProtobufOutput
2+
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInOptionalField.ProtobufOutput
3+
Recommended.Proto3.JsonInput.IgnoreUnknownEnumStringValueInRepeatedField.ProtobufOutput

internal/filedesc/build_test.go

+2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ func TestInit(t *testing.T) {
5353
// The protoreflect descriptors don't include source info.
5454
descPkg.Append("FileDescriptorProto.source_code_info"): true,
5555
descPkg.Append("FileDescriptorProto.syntax"): true,
56+
// Nothing is using edition yet.
57+
descPkg.Append("FileDescriptorProto.edition"): true,
5658

5759
// Impossible to test proto3 optional in a proto2 file.
5860
descPkg.Append("FieldDescriptorProto.proto3_optional"): true,

0 commit comments

Comments
 (0)