mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-06 00:55:51 +00:00
0567a55b47
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>
23 lines
824 B
Go
23 lines
824 B
Go
// 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
|
|
|
|
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"
|
|
|
|
// Ensure that any program using "google.golang.org/genproto"
|
|
// uses a version that forwards their generated well-known types
|
|
// to reference the ones declared in this module.
|
|
_ "google.golang.org/genproto/protobuf/api"
|
|
_ "google.golang.org/genproto/protobuf/field_mask"
|
|
_ "google.golang.org/genproto/protobuf/ptype"
|
|
_ "google.golang.org/genproto/protobuf/source_context"
|
|
)
|