google / google/protobuf-gradle-plugin
Make the generation and/or execution of the extractIncludedProto task smarter
- Dominant language
- Groovy
- Stars
- 1.8k
- Forks
- 288
- PR merge metrics
- No merged PRs in 30d
Description
I have a large, multi-project gradle build with the follow scenarios:
project1: Has protos to generate, but no dependencies that include protobuf files
project2: Has protos to generate, and a dependency on project1/external dependency that includes protos, but project proto's don't include any in project1 (no external protos)
project3: Has protos to generate, and a dependency on project1/external dependency, and project protos do include files from project1 (external protos).
Our project includes all three of these scenarios in some variation or another. The sum of the extractIncluded proto tasks takes some 15%-20% of our build time. Because the files are not in a single dependency, we can't use the Gradle task cache the results of the extractIncluded tasks.
We are using Gradle 3.5, with the task cache, parallel and parallel.intra enabled.
Contributor guide
Research direction
Start by examining the extractIncluded proto tasks and how they behave across the three project scenarios described, using the Gradle 3.5 build configuration as the entry point. Measure their contribution to build time and determine when extraction is unnecessary or safely cacheable; done means preserving required external proto handling while reducing redundant task work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- groovy
- Domain
- build-system, performance
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100