gortiz commented on issue #12676: URL: https://github.com/apache/pinot/issues/12676#issuecomment-2020439630
I'm fine with this approach. Maybe I would suggest to: 1. Do not use properties if we expect to only use it once. Otherwise we need to add one extra line per dependency family and it is less direct to know the dependency version (once the dependency declaration is found we need to go to the property). 2. Create a subproject that can be used as the Pinot BOM, where all the dependencies included in Pinot are defined. Simplify the `dependencyManagement` section to import that bom. This should be effectively the same as we have right now, but: 1. The parent pom should be significantly sorter 2. Plugins could import that BOM instead the whole Pinot parent pom (although the could still inherit). 3. On plugins: 1. Import the bom or declare pinot pom as the parent. 2. For each library used by the plugin: 1. If the library is included in the BOM and the plugin use that version: * Do not shade that dependency * Consume it with `scope` dependency 2. If the library is not included in the bom or (is included in the BOM and the plugin use other version): * That dependency _must_ be shaded * Objects of that type _must not_ be sent to Pinot or other plugins 3.2.1 should reduce the total package size, the build time and possible errors related to shading. 3.2.2 should reduce errors related to shading. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org