Skip to content

Commit

Permalink
fix: ipns protobuf namespace conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaumemichel committed Jan 17, 2025
1 parent b7d0d20 commit 70a5a10
Show file tree
Hide file tree
Showing 5 changed files with 303 additions and 271 deletions.
31 changes: 31 additions & 0 deletions ipns/pb/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# This Makefile is designed to work around namespace conflicts that occur when
# multiple repositories depend on .proto files with generic filenames. Due to
# the way protobuf registers files (e.g., foo.proto or pb/foo.proto), naming
# collisions can occur when the same filename is used across different
# packages.
#
# The only way to generate a *.pb.go file that includes the full package path
# (e.g., github.com/org/repo/pb/foo.proto) is to place the .proto file in a
# directory structure that mirrors its package path.
#
# References:
# * https://protobuf.dev/reference/go/faq#namespace-conflict
# * https://github.com/golang/protobuf/issues/1122#issuecomment-2045945265

PKG_PATH = github.com/ipfs/boxo/ipns/pb
PROTONAME = record
PROTOFILE = ${PROTONAME}.proto

all: clean build

build:
mkdir -p ${PKG_PATH}
cp ${PROTOFILE} ${PKG_PATH}
protoc --go_out=. ${PKG_PATH}/${PROTOFILE}
mv ${PKG_PATH}/${PROTONAME}.pb.go .
rm -rf $(firstword $(subst /, ,${PKG_PATH}))

clean:
rm -f *.pb.go

.PHONY: all build clean
270 changes: 0 additions & 270 deletions ipns/pb/ipns-record.pb.go

This file was deleted.

Loading

0 comments on commit 70a5a10

Please sign in to comment.