This is an automated email from the ASF dual-hosted git repository.
gortiz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new a68bbcb769e Add pinot-bom: Bill of Materials for Pinot module versions
(#18542)
a68bbcb769e is described below
commit a68bbcb769eb9020025c77e6e4be5192be3dcee3
Author: Gonzalo Ortiz Jaureguizar <[email protected]>
AuthorDate: Wed May 27 13:00:24 2026 +0200
Add pinot-bom: Bill of Materials for Pinot module versions (#18542)
---
.github/workflows/pinot_unit_tests.yml | 2 +-
.../scripts/pr-tests/.pinot_tests_build.sh | 5 +-
pinot-bom/pom.xml | 507 +++++++++++++++++++++
pinot-plugins/assembly-descriptor/pom.xml | 4 +
pom.xml | 404 +---------------
5 files changed, 534 insertions(+), 388 deletions(-)
diff --git a/.github/workflows/pinot_unit_tests.yml
b/.github/workflows/pinot_unit_tests.yml
index 00079b17e1c..fe509903446 100644
--- a/.github/workflows/pinot_unit_tests.yml
+++ b/.github/workflows/pinot_unit_tests.yml
@@ -64,7 +64,7 @@ jobs:
timeout-minutes: 120
run: |
mvn clean install \
- -pl pinot-dependency-verifier \
+ -pl pinot-bom,pinot-dependency-verifier \
-am \
-DskipTests
- name: Linter Test
diff --git a/.github/workflows/scripts/pr-tests/.pinot_tests_build.sh
b/.github/workflows/scripts/pr-tests/.pinot_tests_build.sh
index e94d7447b8c..4bdee334cf3 100755
--- a/.github/workflows/scripts/pr-tests/.pinot_tests_build.sh
+++ b/.github/workflows/scripts/pr-tests/.pinot_tests_build.sh
@@ -27,11 +27,13 @@ netstat -i
if [ "$RUN_INTEGRATION_TESTS" != false ]; then
# Integration Tests
+ # pinot-bom is included to ensure it is installed into the local repo before
+ # the assembly-descriptor invoker plugin copies it to the isolated IT repo.
mvn clean install \
-DskipTests -Dcheckstyle.skip -Dspotless.skip -Denforcer.skip
-Dlicense.skip -Dmaven.plugin.appassembler.skip=true \
-am -B -T 16 -ntp \
-P github-actions,integration-tests \
- -pl 'pinot-integration-tests' || exit 1
+ -pl 'pinot-bom,pinot-integration-tests' || exit 1
else
# Unit Tests
# - TEST_SET#1 runs install and test together so the module list must
ensure no additional modules were tested
@@ -41,6 +43,7 @@ else
-DskipTests -Dcheckstyle.skip -Dspotless.skip -Denforcer.skip
-Dlicense.skip -Dmaven.plugin.appassembler.skip=true \
-am -B -T 16 -ntp \
-P github-actions \
+ -pl 'pinot-bom' \
-pl 'pinot-spi' \
-pl 'pinot-segment-spi' \
-pl 'pinot-common' \
diff --git a/pinot-bom/pom.xml b/pinot-bom/pom.xml
new file mode 100644
index 00000000000..fb6b1a5063e
--- /dev/null
+++ b/pinot-bom/pom.xml
@@ -0,0 +1,507 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-bom</artifactId>
+ <!--
+ PURPOSE: import this BOM in any project that depends on Pinot modules but
+ does not inherit from the Pinot parent POM (e.g. Pinot extensions, plugins,
+ or external consumers). It pins every org.apache.pinot artifact to a single
+ consistent version, so you only need one import instead of one entry per
+ module.
+
+ Third-party library versions are intentionally NOT in this BOM. Extension
+ developers pick up compatible transitive versions automatically by
depending
+ on the Pinot modules themselves. If you need to resolve a transitive
version
+ conflict, run `mvn dependency:tree` to see what version Pinot pulls in.
+
+ VERSION NOTE: this explicit <version> must always equal the root pom
version.
+ Do NOT change it manually — run `mvn versions:set -DnewVersion=X.Y.Z` from
+ the repository root and this module is updated automatically (the versions
+ plugin finds it in the reactor by matching this literal version).
+
+ WHY NO <parent>: the root pom imports this BOM via <scope>import</scope>.
+ Maven 3 rejects a cycle where the BOM also inherits from that same root
pom.
+ Omitting <parent> breaks the cycle; Maven resolves this POM independently.
+ -->
+ <version>1.6.0-SNAPSHOT</version>
+ <name>Pinot BOM</name>
+ <packaging>pom</packaging>
+
+ <build>
+ <plugins>
+ <!--
+ pinot-bom has no <parent>, so Maven cannot inherit the root pom's
+ pluginManagement entry for com.mycila:license-maven-plugin. Without
+ this explicit binding, `mvn license:check` resolves to
+ org.codehaus.mojo:license-maven-plugin which has no "check" goal.
+ We skip the check: the only file here is pom.xml, whose license
+ header is validated by the root-level Apache RAT execution.
+ -->
+ <plugin>
+ <groupId>com.mycila</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <version>5.0.0</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <!--
+ Same reason as the license plugin above: pinot-bom has no <parent>
+ so the spotless plugin is not in any of Maven's searched plugin groups.
+ `mvn spotless:check` would fail with "No plugin found for prefix
'spotless'".
+ Skip it; there are no Java source files to format here.
+ -->
+ <plugin>
+ <groupId>com.diffplug.spotless</groupId>
+ <artifactId>spotless-maven-plugin</artifactId>
+ <version>2.46.1</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <!-- enforcer:enforce has no rules without the parent; skip it. -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>3.6.3</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <!--
+ pinot-bom has no <parent>, so org.jacoco is not in Maven's discoverable
+ plugin groups unless explicitly declared here. Without this entry,
+ `mvn jacoco:report-aggregate@report -P codecoverage` fails with
+ "No plugin found for prefix 'jacoco'". This stub registers the groupId;
+ the actual execution is configured in the root pom's codecoverage
profile.
+ -->
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>0.8.14</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencyManagement>
+ <dependencies>
+ <!-- Pinot Modules -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-segment-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-segment-local</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-materialized-view</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-query-planner-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-query-planner</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-query-runtime</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-controller</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-broker</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-server</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-minion</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-java-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-jdbc-client</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-tools</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-perf</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-timeseries-spi</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-timeseries-planner</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-sql-ddl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-timeseries-m3ql</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-udf-test</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- Pinot Plug-in Modules -->
+ <!-- Batch Ingestion -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-batch-ingestion-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-batch-ingestion-hadoop</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-batch-ingestion-spark-base</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-batch-ingestion-spark-3</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-batch-ingestion-standalone</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Stream Ingestion -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kafka-base</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kafka-3.0</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kafka-3.0</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kafka-4.0</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kinesis</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-pulsar</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Input Format -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-avro-base</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-avro</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-confluent-avro</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-confluent-protobuf</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-confluent-json</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-orc</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-parquet</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-json</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-csv</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-thrift</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-protobuf</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-clp-log</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- File System -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-hdfs</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-s3</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-gcs</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-adls</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Environment -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-azure</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Metrics -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-yammer</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-dropwizard</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-compound-metrics</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Minion Tasks -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-minion-builtin-tasks</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Segment Writer -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-segment-writer-file-based</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <!-- Segment Uploader -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-segment-uploader-default</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- Pinot Connector Modules -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-spark-common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-spark-3-connector</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-flink-connector</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <!-- Pinot Test Jars -->
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-spi</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-common</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-segment-local</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-core</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-query-planner</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-controller</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-broker</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-server</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-minion</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-integration-test-base</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-integration-tests</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-query-runtime</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.pinot</groupId>
+ <artifactId>pinot-kafka-base</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+</project>
diff --git a/pinot-plugins/assembly-descriptor/pom.xml
b/pinot-plugins/assembly-descriptor/pom.xml
index a9bfffb9930..2c818bab7c5 100644
--- a/pinot-plugins/assembly-descriptor/pom.xml
+++ b/pinot-plugins/assembly-descriptor/pom.xml
@@ -48,6 +48,10 @@
<localRepositoryPath>${project.build.directory}/it-repo</localRepositoryPath>
<extraArtifacts>
<artifact>org.apache.pinot:pinot-spi:${project.version}:jar</artifact>
+ <!-- pinot-bom is imported by the root pom's dependencyManagement;
+ it must be present in the isolated IT repo so that Maven can
+ resolve pinot-spi's parent chain during the simple-assembly
build. -->
+
<artifact>org.apache.pinot:pinot-bom:${project.version}:pom</artifact>
</extraArtifacts>
<projectsDirectory>src/it/projects</projectsDirectory>
<cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
diff --git a/pom.xml b/pom.xml
index 42f9929fb44..e3efdba9829 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,6 +38,7 @@
<url>https://pinot.apache.org/</url>
<modules>
+ <module>pinot-bom</module>
<module>pinot-dependency-verifier</module>
<module>pinot-spi</module>
<module>pinot-segment-spi</module>
@@ -613,395 +614,26 @@
<dependencyManagement>
<dependencies>
- <!-- Pinot Modules -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-spi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-segment-spi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-segment-local</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-materialized-view</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-query-planner-spi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-query-planner</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-query-runtime</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-controller</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-broker</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-server</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-minion</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-java-client</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-jdbc-client</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-tools</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-perf</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-timeseries-spi</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-timeseries-planner</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-sql-ddl</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-timeseries-m3ql</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-udf-test</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- Pinot Plug-in Modules -->
- <!-- Batch Ingestion -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-batch-ingestion-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-batch-ingestion-hadoop</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-batch-ingestion-spark-base</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-batch-ingestion-spark-3</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-batch-ingestion-standalone</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Stream Ingestion -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kafka-base</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kafka-3.0</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kafka-3.0</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kafka-4.0</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kinesis</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-pulsar</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Input Format -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-avro-base</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-avro</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-confluent-avro</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-confluent-protobuf</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-confluent-json</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-orc</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-parquet</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-json</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-csv</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-thrift</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-protobuf</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-clp-log</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- File System -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-hdfs</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-s3</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-gcs</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-adls</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Environment -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-azure</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Metrics -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-yammer</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-dropwizard</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-compound-metrics</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Minion Tasks -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-minion-builtin-tasks</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Segment Writer -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-segment-writer-file-based</artifactId>
- <version>${project.version}</version>
- </dependency>
- <!-- Segment Uploader -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-segment-uploader-default</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- Pinot Connector Modules -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-spark-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-spark-3-connector</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-flink-connector</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <!-- Pinot Test Jars -->
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-spi</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-common</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-segment-local</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-core</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-query-planner</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-controller</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-broker</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-server</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-minion</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-integration-test-base</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-integration-tests</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
- <dependency>
- <groupId>org.apache.pinot</groupId>
- <artifactId>pinot-query-runtime</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- </dependency>
+ <!--
+ Pinot Modules — managed via pinot-bom (see pinot-bom/pom.xml).
+
+ When adding a new subproject (module) to this build, declare its
+ dependencyManagement entry in pinot-bom/pom.xml, NOT here. The BOM
+ is imported below and makes the version available to all modules in
+ this reactor as well as to external consumers who import the BOM.
+
+ Projects that set this root pom as their <parent> and use a different
+ version must import pinot-bom explicitly at their desired Pinot version
+ in their own <dependencyManagement> (before any inherited entries).
+ Maven's first-import-wins rule ensures that explicit child import takes
+ precedence and the inherited ${project.version} import is never
resolved.
+ -->
<dependency>
<groupId>org.apache.pinot</groupId>
- <artifactId>pinot-kafka-base</artifactId>
+ <artifactId>pinot-bom</artifactId>
<version>${project.version}</version>
- <type>test-jar</type>
+ <type>pom</type>
+ <scope>import</scope>
</dependency>
<!-- Arrow dependencies for Broker GRPC ResultTable Serde protocol -->
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]