merge druid-core, extendedset, and druid-hll into druid-processing to simplify everything#13698
Conversation
… simplify everything
This reverts commit 0cac846.
|
Made an interesting find in this PR due to the travis consistently timing out during compared to just running the specific test: Breaking out the profiler, and profiling both the individual test and the entire suite made me notice an interesting difference in the flame graph of all "What was I added these tests - they weren't actually mocking a buffer, and the code shouldn't actually use a buffer, so it seemed harmless to use a mock, but my bad, i realize this is certainly not the case at least with Mockito. Modifying this test to use an empty but very regular heap So, moral of the story, it might be worth going over the tests and ensuring we limit usage of Mockito to uses that truly require it to avoid cross test strangeness like this. |
|
hmm, except Travis is still hanging on |
paul-rogers
left a comment
There was a problem hiding this comment.
Thanks for the refactoring. Did a quick survey: looks right. This is the kind of change which is mechanical (if quite tedious). If the build passes, we're good.
Looks like a few additional minor improvements were slipped in. Those seem OK also.
This change will impact any extension which depended on the now-defunct druid-core. Is that a concern? Such extensions will need two distinct versions to compile against releases before and after this change. How do we usually handle such cases?
This kind of change sometimes looses the commit history of files. However, the diff seems to indicate that Git has worked out that you moved files. Will this cause the commit history to persist?
Otherwise, LGTM.
I did some testing and was able to use older extensions which were built with split druid-core and druid-processing dependencies on a newer druid build and everything worked ok. I didn't try newer extensions on older druid, but it might be ok too. I think because none of the actual packages changed on any of the classes everything ends up working out at runtime. |
|
The change set looks good. I agree with Paul, need green checks from build and then we are good. |
|
I made another minor adjustment to add a method to |
|
the two failing CI (CodeQL and Static Checks) are expected to fail since they consider all of |
paul-rogers
left a comment
There was a problem hiding this comment.
Thanks for doing the grunt work to make this happen. This should be a nice improvement to the development experience. LGTM.

Description
This PR picks up where #6443 left off and merges
druid-core,extendedset, anddruid-hllintodruid-processing.My hope is that this is minimally disruptive to all open PRs, since its largely a straight move, the only expected conflicts coming from files which were newly added to the removed modules (which should be a very simple fix to move to the corresponding
processing/src/path of the same package) as well as poms which have added dependency references.I chose
druid-processinginstead ofdruid-corebecause the latter was smaller, but I guess I don't feel super strongly either way about the final name, but have a slight affinity for this since it does contain basically all you need to make and query segments. Regardless of destination, all of these packages needed combined for this to work, since extendedset and hll depended on core, and processing depended on all 3.I tested that using pre-built extensions from older versions with these libraries split up continue to work when used with newer builds with consolidated
druid-processing.Release note
druid-core,extendedset, anddruid-hllmodules have been consolidated intodruid-processingto simplify dependencies. Any extensions referencing these should be updated to usedruid-processinginstead. Existing extension binaries should continue to function normally when used with newer versions of Druid.This PR has: