diff --git a/.rat-excludes b/.rat-excludes index 78a1d1c92f46..770fd1f3cdbd 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/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java index 8e669eb9d98c..f3824f884094 100644 --- a/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java +++ b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java @@ -76,7 +76,7 @@ public class AbstractDroolsAssetsProcessor { private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDroolsAssetsProcessor.class); - + // test private static final String CONFIG_PREFIX = "drools.kbase."; diff --git a/script/ci/CiComputeBuildScopes.java b/script/ci/CiComputeBuildScopes.java index 4a90a30200a5..2608c81189cf 100644 --- a/script/ci/CiComputeBuildScopes.java +++ b/script/ci/CiComputeBuildScopes.java @@ -127,6 +127,20 @@ public static void main(String[] args) throws Exception { } } + // 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 / -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 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 000000000000..f3f8abd71a28 --- /dev/null +++ b/script/ci/tests/scenarios-compute-build-scopes/12-quarkus-extension-pairing/README.md @@ -0,0 +1,27 @@ + + +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 000000000000..530097188255 --- /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 000000000000..e0968a404866 --- /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 000000000000..79f5bb27db9b --- /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 000000000000..55d6caf2ce39 --- /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