-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
question: .proto packaging / repository layout #1668
Comments
Hey @kudla Your question is long and has many parts, not all of which I understand. I’ll try to help as best as I can:
|
Hi
Trying to summarize the question is something like
How to write a pure reusable distributed proto packages with arbitrary depth of transitive dependencies.
E.g
A
,B
->A
,C
->(A
,B
) : whereA
,B
,C
- are all separated repos with a proto declarations. The same time in a way it works forgoogle/protobuf/empty.proto
.I'm not sure how better to structure the entire question. Instead there's a batch of tiny ones that looks contradicting the subject intention or just confusing the hole picture vision.
google/protobuf/empty.proto
is imported as some url(fs) path.import "some/other/mod.proto"
does it really mean the referring (linking) on an initial photo-source level or at the compiled to target language one. As we can seegoogle/protobuf/empty.proto
as a source reference. Still the result compilation refers the real golang "google.golang.org/protobuf/types/known/emptypb" module.3.1 So that how to keep code clean and consistent that case. As I can see every level of repo reference adds additional fs tree nesting to a target
E.g.
3.2 As well. How to avoid a code duplication in case of
C
->(B
,A
) ifB
is just a black box that doesn't leak it's dependancies and to compose all the reps withinC
as flat set.3.3 Anyway in case of
google/protobuf/empty.proto
we don't subtree/fetch/declare whatever manually at all. So how to achieve. the same with custom repos.4. How to make it even fluent and language agnostic in different packaging managers, e.g.
go mod
,npm
etc. as the mentionedgoogle/protobuf/empty.proto
does.Thank you
The text was updated successfully, but these errors were encountered: