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]

Reply via email to