Joe Tsai 8e9d5f6e8a internal/protolegacy: add stub v1 proto package for testing purposes
The protolegacy package is a minimal version of the v1 proto package.
This allows us to use this stub version as the dependency for
internal/testprotos/legacy packages and avoid a dependency
on the real v1 proto package.

The implementation of most v1 functionality will panic if called.
This way, we know if we the v2 code depends on one of those
unimplemented functions.

Updates golang/protobuf#962

Change-Id: I20b4091706fd456e4b01ae0931cce30a872639b0
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/199297
Reviewed-by: Damien Neil <dneil@google.com>
2019-10-05 23:12:32 +00:00

77 lines
3.6 KiB
Protocol Buffer

// Copyright 2018 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
syntax = "proto3";
package google.golang.org;
option go_package = "google.golang.org/protobuf/internal/testprotos/legacy";
// This file imports other files generated from a build of protoc-gen-go
// locked to a specific version. For all imports, they were built using
// Go v1.11 and protoc v3.5.1. This package is used to test compatibility with
// checked in generated code that cannot easily change.
// As such, there should never be a need to update these generated files.
//
// The specific version of protoc-gen-go used is encoded in the file path:
// $NAME.$VERSION-$COMMIT_DATE-$COMMIT_HASH/test.proto
//
// To avoid a dependency on the v1 module, we perform the following
// import path replacement to all generated .pb.go files:
// "github.com/golang/protobuf/proto" => "google.golang.org/protobuf/internal/protolegacy"
// The oldest supported version of protoc-gen-go is 2fc053c5,
// which finished adding descriptor methods to all protobuf types.
import "legacy/proto2.v0.0.0-20160225-2fc053c5/test.proto";
import "legacy/proto3.v0.0.0-20160225-2fc053c5/test.proto";
// Changes from 20160225 to 20160519:
// * Nothing noteworthy to generated code
import "legacy/proto2.v0.0.0-20160519-a4ab9ec5/test.proto";
import "legacy/proto3.v0.0.0-20160519-a4ab9ec5/test.proto";
// Changes from 20160519 to 20180125:
// * Removed ExtensionMap method and XXX_extensions field from messages
// * Added embedded proto.XXX_InternalExtensions field to messages
// * Added proto.ExtensionDesc.Filename field
// * Added registration for file descriptor
// * Added Get accessor methods for all fields in proto3 messages
// * Proto3 repeated primitives are packed by default
import "legacy/proto2.v1.0.0-20180125-92554152/test.proto";
import "legacy/proto3.v1.0.0-20180125-92554152/test.proto";
// Changes from 20180125 to 20180430:
// * Added XXX_unrecognized field to proto3 messages
// * Added XXX_NoUnkeyedLiteral field to messages
// * Added XXX_sizecache field to messages
// * Added XXX_Unmarshal method to messages
// * Added XXX_Marshal method to messages
// * Added XXX_Merge method to messages
// * Added XXX_Size method to messages
// * Added XXX_DiscardUnknown method to messages
// * Added dependency on proto.InternalMessageInfo for table-driven logic
// * Added registration for map types
import "legacy/proto2.v1.1.0-20180430-b4deda09/test.proto";
import "legacy/proto3.v1.1.0-20180430-b4deda09/test.proto";
// Changes from 20180430 to 20180814:
// * Added "proto3" struct tag to all fields in proto3 messages
import "legacy/proto2.v1.2.0-20180814-aa810b61/test.proto";
import "legacy/proto3.v1.2.0-20180814-aa810b61/test.proto";
// Changes from 20180814 to 20181126:
// * Changed the XXX_OneofFuncs method to XXX_OneofWrappers
// * Various syntactical changes to make the output more consistent
import "legacy/proto2.v1.2.1-20181126-8d0c54c1/test.proto";
import "legacy/proto3.v1.2.1-20181126-8d0c54c1/test.proto";
message Legacy {
google.golang.org.proto2_20160225.Message f1 = 1;
google.golang.org.proto3_20160225.Message f2 = 2;
google.golang.org.proto2_20160519.Message f3 = 3;
google.golang.org.proto3_20160519.Message f4 = 4;
google.golang.org.proto2_20180125.Message f5 = 5;
google.golang.org.proto3_20180125.Message f6 = 6;
google.golang.org.proto2_20180430.Message f7 = 7;
google.golang.org.proto3_20180430.Message f8 = 8;
google.golang.org.proto2_20180814.Message f9 = 9;
google.golang.org.proto3_20180814.Message f10 = 10;
google.golang.org.proto2_20181126.Message f11 = 11;
google.golang.org.proto3_20181126.Message f12 = 12;
}