This is an automated email from the ASF dual-hosted git repository.
tkobayas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new fa8e05b9bb4 [incubator-kie-drools-6761]CI scoped build misses Quarkus
extension runtime <-> deployment pairing, causing extension-descriptor failures
on PRs (#6772)
fa8e05b9bb4 is described below
commit fa8e05b9bb43558580d41fad29ffa28ac685ba4b
Author: Toshiya Kobayashi <[email protected]>
AuthorDate: Tue Jul 7 17:02:27 2026 +0900
[incubator-kie-drools-6761]CI scoped build misses Quarkus extension runtime
<-> deployment pairing, causing extension-descriptor failures on PRs (#6772)
Inject synthetic dependency edges in CiComputeBuildScopes for Quarkus
extension runtime/deployment pairs so both halves land in the same
Maven reactor during scoped PR builds.
Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
---
.rat-excludes | 4 ++
script/ci/CiComputeBuildScopes.java | 14 +++++
.../12-quarkus-extension-pairing/README.md | 27 ++++++++++
.../12-quarkus-extension-pairing/changed-files.txt | 1 +
.../expected-affected.txt | 14 +++++
.../expected-changed.txt | 1 +
.../expected-upstream.txt | 61 ++++++++++++++++++++++
7 files changed, 122 insertions(+)
diff --git a/.rat-excludes b/.rat-excludes
index 78a1d1c92f4..770fd1f3cdb 100644
--- a/.rat-excludes
+++ b/.rat-excludes
@@ -45,6 +45,10 @@
script/ci/tests/scenarios-compute-build-scopes/11-fully-removed-subtree/changed-
script/ci/tests/scenarios-compute-build-scopes/11-fully-removed-subtree/expected-affected.txt
script/ci/tests/scenarios-compute-build-scopes/11-fully-removed-subtree/expected-changed.txt
script/ci/tests/scenarios-compute-build-scopes/11-fully-removed-subtree/expected-upstream.txt
+script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/changed-files.txt
+script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-affected.txt
+script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-changed.txt
+script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-upstream.txt
script/ci/tests/scenarios-summary/01-no-tests-no-scope/env.properties
script/ci/tests/scenarios-summary/01-no-tests-no-scope/expected-summary.md
script/ci/tests/scenarios-summary/01-no-tests-no-scope/root/.gitkeep
diff --git a/script/ci/CiComputeBuildScopes.java
b/script/ci/CiComputeBuildScopes.java
index 4a90a30200a..2608c81189c 100644
--- a/script/ci/CiComputeBuildScopes.java
+++ b/script/ci/CiComputeBuildScopes.java
@@ -127,6 +127,20 @@ public class CiComputeBuildScopes {
}
}
+ // 3b. Quarkus extension pairing: the extension-descriptor goal on a
+ // runtime module resolves its -deployment counterpart at build
time.
+ // Inject a synthetic edge so both land in the same build set.
+ // This matches any <ga> / <ga>-deployment pair, not just Quarkus
+ // extensions — that is safe: the worst case is a non-extension
pair
+ // gets pulled into the same set, which is conservative, not wrong.
+ for (String ga : List.copyOf(gaToDir.keySet())) {
+ String deploymentGa = ga + "-deployment";
+ if (gaToDir.containsKey(deploymentGa)) {
+ upstreamOf.computeIfAbsent(ga, k -> new
HashSet<>()).add(deploymentGa);
+ downstreamOf.computeIfAbsent(deploymentGa, k -> new
HashSet<>()).add(ga);
+ }
+ }
+
// 4. resolve changed dirs -> GA
Map<Path, String> dirToGa = gaToDir.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getValue,
Map.Entry::getKey));
diff --git
a/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/README.md
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/README.md
new file mode 100644
index 00000000000..f3f8abd71a2
--- /dev/null
+++
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/README.md
@@ -0,0 +1,27 @@
+<!--
+ 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.
+ -->
+
+Quarkus extension runtime / deployment pairing.
+
+A change to `drools-quarkus-util-deployment` pulls in
`drools-quarkus-deployment`
+and `drools-quarkus-ruleunits-deployment` as affected (downstream Maven deps).
+The synthetic Quarkus extension edge ensures the paired runtime modules
+(`drools-quarkus`, `drools-quarkus-ruleunits`) also land in the affected set
+rather than the upstream set, so that `extension-descriptor` can resolve the
+deployment artifact within the same Maven reactor.
diff --git
a/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/changed-files.txt
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/changed-files.txt
new file mode 100644
index 00000000000..53009718825
--- /dev/null
+++
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/changed-files.txt
@@ -0,0 +1 @@
+drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
diff --git
a/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-affected.txt
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-affected.txt
new file mode 100644
index 00000000000..e0968a40486
--- /dev/null
+++
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-affected.txt
@@ -0,0 +1,14 @@
+org.drools:drools-quarkus
+org.drools:drools-quarkus-deployment
+org.drools:drools-quarkus-examples-multiunit
+org.drools:drools-quarkus-examples-reactive
+org.drools:drools-quarkus-integration-test
+org.drools:drools-quarkus-integration-test-hotreload
+org.drools:drools-quarkus-integration-test-kmodule
+org.drools:drools-quarkus-integration-test-multimodule-main
+org.drools:drools-quarkus-quickstart-test
+org.drools:drools-quarkus-ruleunit-integration-test
+org.drools:drools-quarkus-ruleunit-integration-test-norest
+org.drools:drools-quarkus-ruleunits
+org.drools:drools-quarkus-ruleunits-deployment
+org.drools:drools-quarkus-util-deployment
diff --git
a/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-changed.txt
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-changed.txt
new file mode 100644
index 00000000000..79f5bb27db9
--- /dev/null
+++
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-changed.txt
@@ -0,0 +1 @@
+org.drools:drools-quarkus-util-deployment
diff --git
a/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-upstream.txt
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-upstream.txt
new file mode 100644
index 00000000000..55d6caf2ce3
--- /dev/null
+++
b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/expected-upstream.txt
@@ -0,0 +1,61 @@
+org.drools:drools-base
+org.drools:drools-bom
+org.drools:drools-canonical-model
+org.drools:drools-codegen-common
+org.drools:drools-commands
+org.drools:drools-compiler
+org.drools:drools-core
+org.drools:drools-decisiontables
+org.drools:drools-drl
+org.drools:drools-drl-ast
+org.drools:drools-drl-extensions
+org.drools:drools-drl-parser
+org.drools:drools-drlonyaml-model
+org.drools:drools-drlonyaml-parent
+org.drools:drools-drlonyaml-schemagen
+org.drools:drools-drlonyaml-todrl
+org.drools:drools-ecj
+org.drools:drools-io
+org.drools:drools-kiesession
+org.drools:drools-model
+org.drools:drools-model-codegen
+org.drools:drools-model-compiler
+org.drools:drools-model-prototype
+org.drools:drools-mvel
+org.drools:drools-mvel-compiler
+org.drools:drools-mvel-parser
+org.drools:drools-quarkus-examples
+org.drools:drools-quarkus-extension
+org.drools:drools-quarkus-integration-test-multimodule
+org.drools:drools-quarkus-integration-test-multimodule-dep
+org.drools:drools-ruleunits
+org.drools:drools-ruleunits-api
+org.drools:drools-ruleunits-dsl
+org.drools:drools-ruleunits-engine
+org.drools:drools-ruleunits-impl
+org.drools:drools-templates
+org.drools:drools-tms
+org.drools:drools-util
+org.drools:drools-wiring
+org.drools:drools-wiring-api
+org.drools:drools-wiring-dynamic
+org.drools:drools-wiring-static
+org.drools:drools-xml-support
+org.kie:drools-build-parent
+org.kie:drools-parent
+org.kie:kie-api
+org.kie:kie-core-bom
+org.kie:kie-dmn-bom
+org.kie:kie-efesto-bom
+org.kie:kie-internal
+org.kie:kie-memory-compiler
+org.kie:kie-no-dependency-management-enforcer-rule
+org.kie:kie-no-external-managed-dependency-enforcer-rule
+org.kie:kie-parent
+org.kie:kie-parent-drools
+org.kie:kie-pmml-bom
+org.kie:kie-quarkus-build-parent
+org.kie:kie-test-util
+org.kie:kie-util
+org.kie:kie-util-maven-support
+org.kie:kie-util-xml
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]