Skip to content

Commit eecb476

Browse files
fix: protobuf namespace conflicts (#62)
* fix: protobuf namespace conflicts * replaced makefile with go generate commands
1 parent f04da83 commit eecb476

File tree

4 files changed

+60
-48
lines changed

4 files changed

+60
-48
lines changed

pb/Makefile

Lines changed: 0 additions & 10 deletions
This file was deleted.

pb/gen.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// These commands work around namespace conflicts that occur when multiple
2+
// repositories depend on .proto files with generic filenames. Due to the way
3+
// protobuf registers files (e.g., foo.proto or pb/foo.proto), naming
4+
// collisions can occur when the same filename is used across different
5+
// packages.
6+
//
7+
// The only way to generate a *.pb.go file that includes the full package path
8+
// (e.g., github.com/org/repo/pb/foo.proto) is to place the .proto file in a
9+
// directory structure that mirrors its package path.
10+
//
11+
// References:
12+
// - https://protobuf.dev/reference/go/faq#namespace-conflict
13+
// - https://github.com/golang/protobuf/issues/1122#issuecomment-2045945265
14+
//
15+
//go:generate mkdir -p github.com/libp2p/go-libp2p-record/pb
16+
//go:generate ln -f record.proto github.com/libp2p/go-libp2p-record/pb/
17+
//go:generate protoc --go_out=. github.com/libp2p/go-libp2p-record/pb/record.proto
18+
//go:generate mv -f github.com/libp2p/go-libp2p-record/pb/record.pb.go .
19+
//go:generate rm -rf github.com
20+
21+
package pb

pb/record.pb.go

Lines changed: 39 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

record.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
//go:generate protoc -I=pb --go_out=paths=source_relative:pb pb/record.proto
21
package record
32

43
import (

0 commit comments

Comments
 (0)