Shade Guava manually
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
It's suggested to create a module called "guava" in Druid that copies the Guava source tree (without tests) and prohibit using the real Guava in Druid source code via Checkstyle.
Shading Guava automatically using a plugin is not possible because Druid's dependencies depend on older Guava versions that are binary-incompatible with the freshest Guava. Repackaging all such dependencies doesn't seem to be a feasible task.
One could say that copying source code of a library is bad because we won't receive updates and bug fixes that happen in the upstream, but we aren't receiving them currently anyway, using the ancient 16.0.1 version!
Contributor guide
Research direction
Start by reviewing the proposed guava module and the Checkstyle rules that would prohibit real Guava usage in Druid source code. Trace the existing Guava dependencies and their versions to understand the incompatibility constraints. Done means Druid uses the copied module without the real Guava in its source code and the relevant checks pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100