protobuf-go/internal/weakdeps/weakdeps.go

15 lines
465 B
Go
Raw Normal View History

// Copyright 2020 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.
// +build weak_dependency
package weakdeps
all: add weak dependency on google.golang.org/genproto module This is step 4 of 6 in a multi-stage migration to move the well-known types from the google.golang.org/genproto module to the google.golang.org/protobuf module. The generated Go packages for field_mask.proto, api.proto, type.proto, and source_context.proto are being moved over to this module alongside all the other well-known types. In order to move these types between two modules, there needs to be a sequence of changes submitted in decently rapid succession. It is impossible to atomically make these changes, so a brief breakage is inevitable. The steps are as follows: Step 1: Submit a change to cloud.google.com/go/internal/gapicgen to avoid generating the well-known types. Otherwise, the tool will undo the changes made in step 3. See https://code-review.googlesource.com/c/gocloud/+/56810 Step 2: Submit a change to google.golang.org/protobuf that adds the generated well-known types being migrated to that module. In order to prevent the situation where a user links in too old a version of the genproto module such that duplicate registration occurs for the well-known types, the registry is specially modified to provide an error message that instructs users to upgrade the genproto module. See https://golang.org/cl/234937 Step 3: Submit a change to google.golang.org/genproto that switches all generated well-known types to be aliases to the ones declared in google.golang.org/protobuf from the previous step. This will cause the genproto module to incur an dependency on an unreleased version of the protobuf module. See https://github.com/googleapis/go-genproto/pull/372 Step 4: Submit a change to google.golang.org/protobuf that adds a weak module depdency on the genproto module at the revision from the previous step. See https://golang.org/cl/235297 Step 5: Release google.golang.org/protobuf@v1.24.0. See https://golang.org/cl/235299 Step 6: Submit a change to google.golang.org/genproto that updates the protobuf module dependency to v1.24.0. Change-Id: I22d496e7496446becad742eab05b169abb735ae2 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/235297 Reviewed-by: Damien Neil <dneil@google.com>
2020-05-26 20:30:59 +00:00
import (
// Ensure that any program using "github.com/golang/protobuf"
// uses a version that wraps this module so that there is a
// unified view on what protobuf types are globally registered.
// _ "github.com/golang/protobuf/proto" // TODO: add this back
all: add weak dependency on google.golang.org/genproto module This is step 4 of 6 in a multi-stage migration to move the well-known types from the google.golang.org/genproto module to the google.golang.org/protobuf module. The generated Go packages for field_mask.proto, api.proto, type.proto, and source_context.proto are being moved over to this module alongside all the other well-known types. In order to move these types between two modules, there needs to be a sequence of changes submitted in decently rapid succession. It is impossible to atomically make these changes, so a brief breakage is inevitable. The steps are as follows: Step 1: Submit a change to cloud.google.com/go/internal/gapicgen to avoid generating the well-known types. Otherwise, the tool will undo the changes made in step 3. See https://code-review.googlesource.com/c/gocloud/+/56810 Step 2: Submit a change to google.golang.org/protobuf that adds the generated well-known types being migrated to that module. In order to prevent the situation where a user links in too old a version of the genproto module such that duplicate registration occurs for the well-known types, the registry is specially modified to provide an error message that instructs users to upgrade the genproto module. See https://golang.org/cl/234937 Step 3: Submit a change to google.golang.org/genproto that switches all generated well-known types to be aliases to the ones declared in google.golang.org/protobuf from the previous step. This will cause the genproto module to incur an dependency on an unreleased version of the protobuf module. See https://github.com/googleapis/go-genproto/pull/372 Step 4: Submit a change to google.golang.org/protobuf that adds a weak module depdency on the genproto module at the revision from the previous step. See https://golang.org/cl/235297 Step 5: Release google.golang.org/protobuf@v1.24.0. See https://golang.org/cl/235299 Step 6: Submit a change to google.golang.org/genproto that updates the protobuf module dependency to v1.24.0. Change-Id: I22d496e7496446becad742eab05b169abb735ae2 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/235297 Reviewed-by: Damien Neil <dneil@google.com>
2020-05-26 20:30:59 +00:00
)