-
Notifications
You must be signed in to change notification settings - Fork 28
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
fix proto files compilation #664
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM (linux)
@ndegory At some point a while ago, I used *.proto files as the prerequisites for other build rules, the rationale being if if any proto file was updated, then we needed to run protoc on it. At some point it seems that it was removed and I had commented about this previously. I'm just taking a quick cursory look, but it seems that this has gotten more complicated and the dependency is on *.pb.go files, which in reality depend on *.proto files. I want to take a closer look at this, and which rules list depend on these prerequisites. @bquenin As a reminder, I don't want PRs merged without at least two LGTMs on it, and for the time being, one of those being me. Thanks. |
@subfuzion Sorry about that, I was eager to make compilation time back to normal again. |
@subfuzion please don't blame on Bertrand, I pushed him in merging it. But you're right, I should have waited for 2 LGTMs. About the dependency, it is restored, there a dynamic variable for the *.proto source files, another for the *.pb.go targets and another for the .pb.gw.go targets. Then there's an explicit rule for the compilation of these targets, and all install- targets depend on these targets plus their own go source files.
|
fixes #658
The dynamic list for *.pb.gw.go targets was broken, the resulting list contained files that were never generated, triggering systematically the proto compilation, loosing a lot of time.
How to compare
Timing below are on a Mac, YMMV.
You can notice a big difference in the total cpu time.
Before modification
After the modification