-
Notifications
You must be signed in to change notification settings - Fork 15.5k
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
Provide step-by-step instructions to compile and install Protobuf #12787
Comments
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment. This issue is labeled |
AFAICT this is still not resolved. |
That's correct. The inactive label was applied by a bot, but I still have this on my to-do list. |
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment. This issue is labeled |
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please reopen it. This issue was closed and archived because there has been no new activity in the 14 days since the |
I still plan to work on this. |
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment. This issue is labeled |
We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please reopen it. This issue was closed and archived because there has been no new activity in the 14 days since the |
What language does this apply to?
C++
Describe the problem you are trying to solve.
Developers trying to install Protobuf from source may miss critical dependencies and/or fail to notice that some dependencies need to be installed too. The top-level instructions redirect to the src directory which redirect to the cmake directory.
The instructions there are a bit scattered. They mention Abseil being installed in passing. And they mention
-Dprotobuf_ABSL_PROVIDER=package
only for Windows. The instructions for Linux are near the bottom and one needs to skip stuff about running unit tests, getting submodules, DLLs, compiler warnings, etc.It is too easy for developers on other platforms to miss the Abseil flags, and get confused using Abseil as a submodule.
Describe the solution you'd like
I think you should break your build instructions into separate use-cases. The instructions to compile Protobuf as a contributor (with the intention of running tests and sending patches) should be separate from the instructions to compile the code as a consumer (with the intention of just using Protobuf).
For example, the how-to guides for contributors could start with:
while the instructions for consumers of the library could start with:
The instructions for each platform should be complete. Ideally tested, I have used Docker scripts to test the instructions and then treat the Dockerfiles as the source of truth to ensure they stay in sync. They should say something like:
Only once you have completed the instructions for the easy case you may want to discuss variations (using
ZLIB
, using DLLs, etc.)Describe alternatives you've considered
Additional context
N/A
The text was updated successfully, but these errors were encountered: