This is an automated email from the ASF dual-hosted git repository.
tiagobento pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-tools.git
The following commit(s) were added to refs/heads/main by this push:
new 50ee6dc0fc6 NO-ISSUE: Stop depending on timestamped SNAPSHOTs (#3170)
50ee6dc0fc6 is described below
commit 50ee6dc0fc6a30e23315b751fa2d8aeae0f0e682
Author: Tiago Bento <[email protected]>
AuthorDate: Thu Jun 12 14:57:48 2025 -0400
NO-ISSUE: Stop depending on timestamped SNAPSHOTs (#3170)
Co-authored-by: Thiago Lugli <[email protected]>
---
.github/workflows/ci_build.yml | 2 +-
devbox.json | 3 +-
devbox.lock | 62 +++++
packages/dev-deployment-quarkus-blank-app/pom.xml | 6 +
.../.gitignore | 1 +
.../package.json | 9 +-
...MarshallerBackendCompatibilityTesterScript.java | 2 +-
.../src/index.ts | 7 +
packages/drools-and-kogito/.gitignore | 1 +
.../drools-and-kogito}/README.md | 8 +-
packages/drools-and-kogito/env/index.js | 102 +++++++++
packages/drools-and-kogito/install.js | 254 +++++++++++++++++++++
packages/drools-and-kogito/package.json | 14 ++
packages/extended-services/env/index.js | 10 +-
packages/extended-services/package.json | 12 +-
.../git-repo-content-src/pom.xml.envsubst | 2 +-
.../kn-plugin-workflow/e2e-tests/helper_test.go | 7 +-
packages/kn-plugin-workflow/package.json | 1 +
.../kogito-data-index-ephemeral-image/install.js | 7 +
.../kogito-data-index-ephemeral-image/package.json | 4 +-
.../kogito-data-index-postgresql-image/install.js | 7 +
.../package.json | 4 +-
packages/kogito-jit-runner-image/install.js | 7 +
packages/kogito-jit-runner-image/package.json | 4 +-
.../kogito-jobs-service-allinone-image/install.js | 7 +
.../package.json | 4 +-
.../kogito-jobs-service-ephemeral-image/install.js | 7 +
.../package.json | 4 +-
.../install.js | 7 +
.../package.json | 4 +-
packages/maven-base/index.js | 2 +-
packages/maven-base/package.json | 3 +
packages/maven-base/pom.xml | 2 +-
packages/maven-base/settings.xml | 2 +-
packages/root-env/env/index.js | 2 +-
.../package.json | 4 +-
packages/sonataflow-builder-image/package.json | 7 +-
.../maven-m2-repo-via-http-settings.xml.envsubst | 2 +-
packages/stunner-editors/package.json | 4 +-
packages/stunner-editors/pom.xml | 6 +
pnpm-lock.yaml | 56 ++++-
repo/KOGITO_UPGRADE_PROCESS.md | 99 ++++----
repo/graph.dot | 26 ++-
repo/graph.json | 19 +-
scripts/update-kogito-version/README.md | 6 +-
.../update-kogito-version/update_kogito_version.js | 62 ++++-
46 files changed, 753 insertions(+), 118 deletions(-)
diff --git a/.github/workflows/ci_build.yml b/.github/workflows/ci_build.yml
index 93f09344a54..16a3e16e83b 100644
--- a/.github/workflows/ci_build.yml
+++ b/.github/workflows/ci_build.yml
@@ -111,7 +111,7 @@ jobs:
if: steps.setup_build_mode.outputs.mode != 'none'
env:
MAVEN_ARGS: "-B -Puse-maven-repo-local-tail"
- MAVEN_OPTS: "-Xmx2g"
+ MAVEN_OPTS: "-Xmx3g"
uses: ./.github/actions/bootstrap
with:
pnpm_filter_string: ${{
steps.setup_build_mode.outputs.bootstrapPnpmFilterString }}
diff --git a/devbox.json b/devbox.json
index 7bc9d7ae054..8e268de043c 100644
--- a/devbox.json
+++ b/devbox.json
@@ -8,7 +8,8 @@
"gnumake": "4.4.1",
"go": "1.23.8",
"python": "3.12.2",
- "libxml2": "2.13.3"
+ "libxml2": "2.13.3",
+ "glibcLocales": "2.40-66"
},
"env": {
"PLAYWRIGHT_BROWSERS_PATH": "0",
diff --git a/devbox.lock b/devbox.lock
index c14675d9687..0963004976e 100644
--- a/devbox.lock
+++ b/devbox.lock
@@ -1,6 +1,34 @@
{
"lockfile_version": "1",
"packages": {
+ "[email protected]": {
+ "last_modified": "2025-05-16T20:19:48Z",
+ "resolved":
"github:NixOS/nixpkgs/12a55407652e04dcf2309436eb06fef0d3713ef3#glibcLocales",
+ "source": "devbox-search",
+ "version": "2.40-66",
+ "systems": {
+ "aarch64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/2hb8s2i45cx30qqhayzzsfbg12k8d8fs-glibc-locales-2.40-66",
+ "default": true
+ }
+ ],
+ "store_path":
"/nix/store/2hb8s2i45cx30qqhayzzsfbg12k8d8fs-glibc-locales-2.40-66"
+ },
+ "x86_64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/d91i3lzpkii5kabfx1kxvl3banc47min-glibc-locales-2.40-66",
+ "default": true
+ }
+ ],
+ "store_path":
"/nix/store/d91i3lzpkii5kabfx1kxvl3banc47min-glibc-locales-2.40-66"
+ }
+ }
+ },
"[email protected]": {
"last_modified": "2024-10-13T23:44:06Z",
"resolved":
"github:NixOS/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732#gnumake",
@@ -221,10 +249,44 @@
"source": "devbox-search",
"version": "17.0.9",
"systems": {
+ "aarch64-darwin": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/6dfds89qqlzg4rdp9bf3nlpisx05lmcj-temurin-bin-17.0.9",
+ "default": true
+ }
+ ],
+ "store_path":
"/nix/store/6dfds89qqlzg4rdp9bf3nlpisx05lmcj-temurin-bin-17.0.9"
+ },
"aarch64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/xbkf0hfcaw0jbqf7pm70xwinn655pz50-temurin-bin-17.0.9",
+ "default": true
+ }
+ ],
"store_path":
"/nix/store/xbkf0hfcaw0jbqf7pm70xwinn655pz50-temurin-bin-17.0.9"
},
+ "x86_64-darwin": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/rxi440bp4g1njffgrbl5w1209hclawxn-temurin-bin-17.0.9",
+ "default": true
+ }
+ ],
+ "store_path":
"/nix/store/rxi440bp4g1njffgrbl5w1209hclawxn-temurin-bin-17.0.9"
+ },
"x86_64-linux": {
+ "outputs": [
+ {
+ "name": "out",
+ "path":
"/nix/store/55gj16bms465y8giaf5jch2bbs12yrbf-temurin-bin-17.0.9",
+ "default": true
+ }
+ ],
"store_path":
"/nix/store/55gj16bms465y8giaf5jch2bbs12yrbf-temurin-bin-17.0.9"
}
}
diff --git a/packages/dev-deployment-quarkus-blank-app/pom.xml
b/packages/dev-deployment-quarkus-blank-app/pom.xml
index 0558c6650e4..114be03f593 100644
--- a/packages/dev-deployment-quarkus-blank-app/pom.xml
+++ b/packages/dev-deployment-quarkus-blank-app/pom.xml
@@ -410,6 +410,9 @@
<releases>
<enabled>false</enabled>
</releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
</repository>
</repositories>
<pluginRepositories>
@@ -420,6 +423,9 @@
<releases>
<enabled>false</enabled>
</releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
</pluginRepository>
</pluginRepositories>
</project>
diff --git a/packages/dmn-marshaller-backend-compatibility-tester/.gitignore
b/packages/dmn-marshaller-backend-compatibility-tester/.gitignore
new file mode 100644
index 00000000000..e3ab2736bdb
--- /dev/null
+++ b/packages/dmn-marshaller-backend-compatibility-tester/.gitignore
@@ -0,0 +1 @@
+dist-m2
\ No newline at end of file
diff --git a/packages/dmn-marshaller-backend-compatibility-tester/package.json
b/packages/dmn-marshaller-backend-compatibility-tester/package.json
index 9744e53ab2c..3c2d0150bac 100644
--- a/packages/dmn-marshaller-backend-compatibility-tester/package.json
+++ b/packages/dmn-marshaller-backend-compatibility-tester/package.json
@@ -20,17 +20,22 @@
"src"
],
"scripts": {
- "build:dev": "rimraf dist && tsc -p tsconfig.json && pnpm prefetch",
+ "build:dev": "rimraf dist dist-m2 && tsc -p tsconfig.json && pnpm
prefetch",
"build:prod": "pnpm build:dev",
- "prefetch": "node dist/dependenciesFetch.js"
+ "prefetch": "run-script-os",
+ "prefetch:darwin:linux": "cross-env JBANG_REPO=$(node -p
\"require('path').resolve('dist-m2')\") node dist/dependenciesFetch.js",
+ "prefetch:win32": "pnpm powershell \"cross-env JBANG_REPO=$(Resolve-Path .
| Write-Host)\\dist-m2 node dist/dependenciesFetch.js\""
},
"dependencies": {
"@jbangdev/jbang": "0.2.3"
},
"devDependencies": {
+ "@kie-tools-core/drools-and-kogito": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/tsconfig": "workspace:*",
+ "cross-env": "^7.0.3",
"rimraf": "^3.0.2",
+ "run-script-os": "^1.1.6",
"typescript": "^5.5.3"
}
}
diff --git
a/packages/dmn-marshaller-backend-compatibility-tester/src/DmnMarshallerBackendCompatibilityTesterScript.java
b/packages/dmn-marshaller-backend-compatibility-tester/src/DmnMarshallerBackendCompatibilityTesterScript.java
index e6a42b03242..fcd4066c03e 100644
---
a/packages/dmn-marshaller-backend-compatibility-tester/src/DmnMarshallerBackendCompatibilityTesterScript.java
+++
b/packages/dmn-marshaller-backend-compatibility-tester/src/DmnMarshallerBackendCompatibilityTesterScript.java
@@ -19,7 +19,7 @@
///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA 17
-//REPOS
mavencentral,apache=https://repository.apache.org/content/groups/public/
+//REPOS droolsAndKogito=file://${droolsAndKogitoLocalM2Repo},mavencentral
//DEPS org.kie:drools-build-parent:${kogito-runtime.version}@pom
//DEPS ch.qos.logback:logback-classic:1.2.13
//DEPS info.picocli:picocli:4.7.5
diff --git a/packages/dmn-marshaller-backend-compatibility-tester/src/index.ts
b/packages/dmn-marshaller-backend-compatibility-tester/src/index.ts
index 00c77f548bd..2daffc1f55f 100644
--- a/packages/dmn-marshaller-backend-compatibility-tester/src/index.ts
+++ b/packages/dmn-marshaller-backend-compatibility-tester/src/index.ts
@@ -82,6 +82,13 @@ function executeScript(scriptPath: string, args?: string[]) {
const jbangArgs = [] as string[];
jbangArgs.push("-Dkogito-runtime.version=" + env.versions.kogito);
+ jbangArgs.push(
+ "-DdroolsAndKogitoLocalM2Repo=" +
+ path.join(
+
path.dirname(require.resolve("@kie-tools-core/drools-and-kogito/package.json")),
+ "dist/1st-party-m2/repository"
+ )
+ );
jbangArgs.push(scriptPath);
args?.forEach((arg) => jbangArgs.push(quoteChar + arg + quoteChar));
diff --git a/packages/drools-and-kogito/.gitignore
b/packages/drools-and-kogito/.gitignore
new file mode 100644
index 00000000000..1171128a2c3
--- /dev/null
+++ b/packages/drools-and-kogito/.gitignore
@@ -0,0 +1 @@
+dist-tmp
\ No newline at end of file
diff --git a/scripts/update-kogito-version/README.md
b/packages/drools-and-kogito/README.md
similarity index 70%
copy from scripts/update-kogito-version/README.md
copy to packages/drools-and-kogito/README.md
index ab3821f640a..0abfa6aa6fd 100644
--- a/scripts/update-kogito-version/README.md
+++ b/packages/drools-and-kogito/README.md
@@ -15,13 +15,13 @@
under the License.
-->
-## @kie-tools-scripts/update-version
+## @kie-tools-core/drools-and-kogito
-Updates the default value of `KOGITO_RUNTIME_version` of `packages/root-env`
and runs `pnpm bootstrap` at the end.
+Builds Drools, OptaPlanner, Kogito Runtimes, and Kogito Apps without
installing any Maven artifacts to the local Maven repository. This package will
skip the `install` phase and deploy the build result to `./dist/1st-party-m2`,
so that there's no pollution of the local Maven repository.
-### Usage
+A build is only triggered when the Kogito version (defined in
`@kie-tools/root-env`, via `KOGITO_RUNTIME_version`) ends with `-local` (E.g.,
`999-20250511-local`). Otherwise, this package assumes that the version is
coming from a remote Maven repository, or is already installed locally in the
local Maven repository. For versions not ending on `-local`, you can still have
this package trigger a build by using the `DROOLS_AND_KOGITO__forceBuild` env
var.
-`pnpm update-kogito-version-to --maven [new-version]`
+This package has no build scripts, rather a single `install` script, meant to
run when the `kie-tools` repository is bootstrapping via `pnpm bootstrap`.
---
diff --git a/packages/drools-and-kogito/env/index.js
b/packages/drools-and-kogito/env/index.js
new file mode 100644
index 00000000000..4d8b8a27bf5
--- /dev/null
+++ b/packages/drools-and-kogito/env/index.js
@@ -0,0 +1,102 @@
+/*
+ * 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.
+ */
+
+const { varsWithName, composeEnv, getOrDefault, str2bool } =
require("@kie-tools-scripts/build-env");
+
+const rootEnv = require("@kie-tools/root-env/env");
+
+module.exports = composeEnv([rootEnv], {
+ vars: varsWithName({
+ DROOLS_AND_KOGITO__droolsRepoUrl: {
+ default: "https://github.com/apache/incubator-kie-drools",
+ description: "Git repository URL for Drools",
+ },
+ DROOLS_AND_KOGITO__droolsRepoGitRef: {
+ default: "878fe13a914a8fe274dd0fcc5dda40290e2c0e2b",
+ description: "Git ref for the Drools repository (SHA, branch, or tag)",
+ },
+ DROOLS_AND_KOGITO__optaplannerRepoUrl: {
+ default: "https://github.com/apache/incubator-kie-optaplanner",
+ description: "Git repository URL for OptaPlanner",
+ },
+ DROOLS_AND_KOGITO__optaplannerRepoGitRef: {
+ default: "55b583cd4dfaf9185c316e12a94dc159b36e2708",
+ description: "Git ref for the OptaPlanner repository (SHA, branch, or
tag)",
+ },
+ DROOLS_AND_KOGITO__kogitoRuntimesRepoUrl: {
+ default: "https://github.com/apache/incubator-kie-kogito-runtimes",
+ description: "Git repository URL for Kogito Runtimes",
+ },
+ DROOLS_AND_KOGITO__kogitoRuntimesRepoGitRef: {
+ default: "74159c722b1b4eb4a6f5ab70a7981bb5df93f136",
+ description: "Git ref for the Kogito Runtimes repository (SHA, branch,
or tag)",
+ },
+ DROOLS_AND_KOGITO__kogitoAppsRepoUrl: {
+ default: "https://github.com/apache/incubator-kie-kogito-apps",
+ description: "Git repository URL for Kogito Apps",
+ },
+ DROOLS_AND_KOGITO__kogitoAppsRepoGitRef: {
+ default: "0500270f74822858c717ee60e50c07dc18983fcb",
+ description: "Git ref for the Kogito Apps repository (SHA, branch, or
tag)",
+ },
+ DROOLS_AND_KOGITO__skip: {
+ default: `${false}`,
+ description:
+ "Whether or not to skip the entire package. No artifacts will be
downloaded nor built when this flag is 'true'.",
+ },
+ DROOLS_AND_KOGITO__forceBuild: {
+ default: `${false}`,
+ description: "Will always build, even if there's a cached build
available.",
+ },
+ DROOLS_AND_KOGITO__cacheDownloadCommand: {
+ default: `gh run download --name
drools-and-kogito-cached-build-for-${rootEnv.env.versions.kogito} --dir dist`,
+ description:
+ "Shell command that will try to restore a cached build matching the
build info supplied via this package's env vars.",
+ },
+ }),
+ get env() {
+ return {
+ droolsAndKogito: {
+ skip: str2bool(getOrDefault(this.vars.DROOLS_AND_KOGITO__skip)),
+ forceBuild:
str2bool(getOrDefault(this.vars.DROOLS_AND_KOGITO__forceBuild)),
+ repos: {
+ drools: {
+ url: getOrDefault(this.vars.DROOLS_AND_KOGITO__droolsRepoUrl),
+ gitRef:
getOrDefault(this.vars.DROOLS_AND_KOGITO__droolsRepoGitRef),
+ },
+ optaplanner: {
+ url: getOrDefault(this.vars.DROOLS_AND_KOGITO__optaplannerRepoUrl),
+ gitRef:
getOrDefault(this.vars.DROOLS_AND_KOGITO__optaplannerRepoGitRef),
+ },
+ kogitoRuntimes: {
+ url:
getOrDefault(this.vars.DROOLS_AND_KOGITO__kogitoRuntimesRepoUrl),
+ gitRef:
getOrDefault(this.vars.DROOLS_AND_KOGITO__kogitoRuntimesRepoGitRef),
+ },
+ kogitoApps: {
+ url: getOrDefault(this.vars.DROOLS_AND_KOGITO__kogitoAppsRepoUrl),
+ gitRef:
getOrDefault(this.vars.DROOLS_AND_KOGITO__kogitoAppsRepoGitRef),
+ },
+ },
+ cache: {
+ download:
getOrDefault(this.vars.DROOLS_AND_KOGITO__cacheDownloadCommand),
+ },
+ },
+ };
+ },
+});
diff --git a/packages/drools-and-kogito/install.js
b/packages/drools-and-kogito/install.js
new file mode 100644
index 00000000000..fd83212f669
--- /dev/null
+++ b/packages/drools-and-kogito/install.js
@@ -0,0 +1,254 @@
+/*
+ * 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.
+ */
+
+const execSync = require("child_process").execSync;
+const fs = require("fs");
+const path = require("path");
+const { env } = require("./env");
+const buildEnv = env;
+const execOpts = { stdio: "inherit" };
+
+///
+
+const DIST_REPO = path.resolve("./dist/1st-party-m2/repository");
+
+if (buildEnv.droolsAndKogito.skip) {
+ console.log(`[drools-and-kogito] Skip is on. Exiting.`);
+ console.log(`[drools-and-kogito] Done.`);
+ process.exit(0);
+}
+
+if (!buildEnv.versions.kogito.endsWith("-local") &&
!buildEnv.droolsAndKogito.forceBuild) {
+ console.log(`[drools-and-kogito] Detected a non-local version for Drools and
Kogito.`);
+ console.log(
+ `[drools-and-kogito] Building will not occur, as this version is expected
to be either present on the local Maven repository (E.g., ~/.m2), or published
in some publicly available Maven repository so that it can be downloaded.`
+ );
+ console.log(`[drools-and-kogito] Done.`);
+ process.exit(0);
+}
+
+const buildInfo = getBuildInfo();
+
+console.log(`[drools-and-kogito] Build info:`);
+console.log(JSON.stringify(buildInfo, null, 2));
+
+const buildInfoMatches =
+ buildInfo?.kogitoVersion === buildEnv.versions.kogito &&
+ buildInfo?.droolsRepoGitRef === buildEnv.droolsAndKogito.repos.drools.gitRef
&&
+ buildInfo?.optaplannerRepoGitRef ===
buildEnv.droolsAndKogito.repos.optaplanner.gitRef &&
+ buildInfo?.kogitoRuntimesRepoGitRef ===
buildEnv.droolsAndKogito.repos.kogitoRuntimes.gitRef &&
+ buildInfo?.kogitoAppsRepoGitRef ===
buildEnv.droolsAndKogito.repos.kogitoApps.gitRef;
+
+const localM2DirExists = fs.existsSync("./dist/1st-party-m2/repository");
+const forceBuild = buildEnv.droolsAndKogito.forceBuild;
+
+console.log(`[drools-and-kogito] Local m2 exists: ${localM2DirExists}`);
+console.log(`[drools-and-kogito] Build info matches: ${buildInfoMatches}`);
+console.log(`[drools-and-kogito] Force build: ${forceBuild}`);
+
+if (localM2DirExists && buildInfoMatches && !forceBuild) {
+ console.log(`[drools-and-kogito] Nothing to do.`);
+ console.log(`[drools-and-kogito] Done.`);
+ process.exit(0);
+} else if (localM2DirExists) {
+ console.log(`[drools-and-kogito] Cleaning up 'dist' directory...`);
+ fs.rmSync("./dist", { recursive: true });
+}
+fs.mkdirSync("./dist", { recursive: true });
+
+// TODO: cache restoration
+
+console.log(`[drools-and-kogito] Cleaning up 'dist' directory...`);
+if (fs.existsSync("./dist-tmp")) {
+ fs.rmSync("./dist-tmp", { recursive: true });
+}
+fs.mkdirSync("./dist-tmp", { recursive: true });
+
+// cloning
+
+const droolsRepoDir = path.join("dist-tmp", "drools");
+const optaplannerRepoDir = path.join("dist-tmp", "optaplanner");
+const kogitoRuntimesRepoDir = path.join("dist-tmp", "kogito-runtimes");
+const kogitoAppsRepoDir = path.join("dist-tmp", "kogito-apps");
+
+console.log(`[drools-and-kogito] Cloning Drools...`);
+
+execSync(
+ `git clone --branch ${buildEnv.root.streamName} --depth 50
${buildEnv.droolsAndKogito.repos.drools.url} "${droolsRepoDir}"`,
+ execOpts
+);
+execSync(`git checkout ${buildEnv.droolsAndKogito.repos.drools.gitRef}`, {
+ ...execOpts,
+ cwd: droolsRepoDir,
+});
+
+console.log(`[drools-and-kogito] Cloning OptaPlanner...`);
+execSync(
+ `git clone --branch ${buildEnv.root.streamName} --depth 50
${buildEnv.droolsAndKogito.repos.optaplanner.url} "${optaplannerRepoDir}"`,
+ execOpts
+);
+execSync(`git checkout ${buildEnv.droolsAndKogito.repos.optaplanner.gitRef}`, {
+ ...execOpts,
+ cwd: optaplannerRepoDir,
+});
+
+console.log(`[drools-and-kogito] Cloning Kogito Runtimes...`);
+execSync(
+ `git clone --branch ${buildEnv.root.streamName} --depth 50
${buildEnv.droolsAndKogito.repos.kogitoRuntimes.url}
"${kogitoRuntimesRepoDir}"`,
+ execOpts
+);
+execSync(`git checkout
${buildEnv.droolsAndKogito.repos.kogitoRuntimes.gitRef}`, {
+ ...execOpts,
+ cwd: kogitoRuntimesRepoDir,
+});
+
+console.log(`[drools-and-kogito] Cloning Kogito Apps...`);
+execSync(
+ `git clone --branch ${buildEnv.root.streamName} --depth 50
${buildEnv.droolsAndKogito.repos.kogitoApps.url} "${kogitoAppsRepoDir}"`,
+ execOpts
+);
+execSync(`git checkout ${buildEnv.droolsAndKogito.repos.kogitoApps.gitRef}`, {
+ ...execOpts,
+ cwd: kogitoAppsRepoDir,
+});
+
+// update versions
+const streamsMavenVersion =
+ buildEnv.root.streamName === "main"
+ ? `999-SNAPSHOT` //
+ : buildEnv.root.streamName.replace(".x", ".999-SNAPSHOT"); // 10.1.x
becomes 10.1.999-SNAPSHOT
+
+console.log(`[drools-and-kogito] Updating versions to
${streamsMavenVersion}...`);
+execSync(`find . -name "pom.xml" -exec sed -i.bak
"s/${streamsMavenVersion}/${buildEnv.versions.kogito}/g" {} ";"`, {
+ ...execOpts,
+ cwd: "./dist-tmp",
+});
+execSync(`find . -name "pom.xml.bak" -exec rm {} ";"`, {
+ ...execOpts,
+ cwd: "./dist-tmp",
+});
+
+// patching
+console.log(`[drools-and-kogito] Patching pom.xml files to remove Tests and
Integration Tests modules...`);
+removeMavenModule(`drools\\-test\\-coverage`);
+removeMavenModule(`.*integration\\-tests`);
+removeMavenModule(`integration\\-tests`);
+removeMavenModule(`.*integration\\-test`);
+removeMavenModule(`.*\\-integration\\-test\\-.*`);
+removeMavenModule(`.*\\-integrationtests`);
+removeMavenModule(`.*integration\\-tests\\-.*`);
+removeMavenModule(`.*\\-integrationtest`);
+removeMavenModule(`.*\\-it`);
+removeMavenModule(`.*\\-live\\-reload\\-test`);
+removeMavenModule(`kie\\-archetypes`);
+removeMavenModule(`apps\\-integration\\-tests`);
+removeMavenModule(`apps\\-integration\\-tests`);
+
+// building
+
+console.log(`[drools-and-kogito] Building Drools...`);
+try {
+ execSync(
+ `mvn deploy -ntp -DskipTests -DskipITs -T 0.5C -Dformatter.skip
-Denforcer.skip=true -Dcheckstyle.skip=true -Dmaven.install.skip=true
-DaltDeploymentRepository=drools-and-kogito--dist-1st-party-m2::default::file:${DIST_REPO}`,
+ {
+ ...execOpts,
+ cwd: droolsRepoDir,
+ }
+ );
+} catch (e) {
+ // Try it again!
+ execSync(
+ `mvn deploy -ntp -DskipTests -DskipITs -T 0.5C -Dformatter.skip
-Denforcer.skip=true -Dcheckstyle.skip=true -Dmaven.install.skip=true
-DaltDeploymentRepository=drools-and-kogito--dist-1st-party-m2::default::file:${DIST_REPO}`,
+ {
+ ...execOpts,
+ cwd: droolsRepoDir,
+ }
+ );
+}
+
+console.log(`[drools-and-kogito] Building OptaPlanner...`);
+execSync(
+ `mvn deploy -ntp -DskipTests -DskipITs -T 0.5C -Dformatter.skip
-Denforcer.skip=true -Dcheckstyle.skip=true -Dmaven.install.skip=true
-Dmaven.repo.local.tail=${DIST_REPO}
-DaltDeploymentRepository=drools-and-kogito--dist-1st-party-m2::default::file:${DIST_REPO}`,
+ {
+ ...execOpts,
+ cwd: optaplannerRepoDir,
+ }
+);
+
+console.log(`[drools-and-kogito] Building Kogito Runtimes...`);
+execSync(
+ `mvn deploy -ntp -DskipTests -DskipITs -T 0.5C -Dformatter.skip
-Denforcer.skip=true -Dcheckstyle.skip=true -Dmaven.install.skip=true
-Dmaven.repo.local.tail=${DIST_REPO}
-DaltDeploymentRepository=drools-and-kogito--dist-1st-party-m2::default::file:${DIST_REPO}`,
+ {
+ ...execOpts,
+ cwd: kogitoRuntimesRepoDir,
+ }
+);
+
+console.log(`[drools-and-kogito] Building Kogito Apps...`);
+execSync(
+ `mvn deploy -ntp -DskipTests -DskipITs -T 0.5C -Dformatter.skip
-Denforcer.skip=true -Dcheckstyle.skip=true -Dmaven.install.skip=true
-Dmaven.repo.local.tail=${DIST_REPO}
-DaltDeploymentRepository=snapshot-repo::default::file:${DIST_REPO}
-Dquarkus.container-image.build=false`,
+ {
+ ...execOpts,
+ cwd: kogitoAppsRepoDir,
+ }
+);
+
+console.log("[drools-and-kogito] Removing source code directory to free up
disk space... ");
+fs.rmSync("./dist-tmp", { recursive: true });
+
+console.log(`[drools-and-kogito] Finished building. Final artifacts are in
'${DIST_REPO}'`);
+
+console.log("[drools-and-kogito] Writing build info to ./dist/buildInfo.json");
+fs.writeFileSync(
+ "./dist/buildInfo.json",
+ JSON.stringify({
+ kogitoVersion: buildEnv.versions.kogito,
+ droolsRepoGitRef: buildEnv.droolsAndKogito.repos.drools.gitRef,
+ optaplannerRepoGitRef: buildEnv.droolsAndKogito.repos.optaplanner.gitRef,
+ kogitoRuntimesRepoGitRef:
buildEnv.droolsAndKogito.repos.kogitoRuntimes.gitRef,
+ kogitoAppsRepoGitRef: buildEnv.droolsAndKogito.repos.kogitoApps.gitRef,
+ }),
+ "utf-8"
+);
+
+console.log(`[drools-and-kogito] Done.`);
+
+//
+// utilities
+
+function removeMavenModule(moduleName) {
+ process.stdout.write(`[drools-and-kogito] Excluding Maven module pattern
${moduleName} from the build...`);
+ execSync(`find . -name "pom.xml" -exec sed -i.bak
"s#<module>${moduleName}</module>##g" {} ";"`, {
+ ...execOpts,
+ cwd: "./dist-tmp",
+ });
+ execSync(`find . -name "pom.xml.bak" -exec rm {} ";"`, {
+ ...execOpts,
+ cwd: "./dist-tmp",
+ });
+ console.log(" Done.");
+}
+
+function getBuildInfo() {
+ if (!fs.existsSync(`./dist/buildInfo.json`)) {
+ return undefined;
+ } else {
+ return JSON.parse(fs.readFileSync(`./dist/buildInfo.json`), "utf-8");
+ }
+}
diff --git a/packages/drools-and-kogito/package.json
b/packages/drools-and-kogito/package.json
new file mode 100644
index 00000000000..bb8627017d6
--- /dev/null
+++ b/packages/drools-and-kogito/package.json
@@ -0,0 +1,14 @@
+{
+ "private": true,
+ "name": "@kie-tools-core/drools-and-kogito",
+ "version": "0.0.0",
+ "keywords": [],
+ "scripts": {
+ "install": "node install.js"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "@kie-tools-scripts/build-env": "workspace:*",
+ "@kie-tools/root-env": "workspace:*"
+ }
+}
diff --git a/packages/extended-services/env/index.js
b/packages/extended-services/env/index.js
index b42ff71e86c..d069f5ca061 100644
--- a/packages/extended-services/env/index.js
+++ b/packages/extended-services/env/index.js
@@ -19,9 +19,7 @@
const { getOrDefault, varsWithName, composeEnv } =
require("@kie-tools-scripts/build-env");
-const rootEnv = require("@kie-tools/root-env/env");
-
-module.exports = composeEnv([rootEnv], {
+module.exports = composeEnv([require("@kie-tools/root-env/env")], {
vars: varsWithName({
EXTENDED_SERVICES__kieSandboxUrl: {
default: "https://localhost:9001",
@@ -40,15 +38,15 @@ module.exports = composeEnv([rootEnv], {
description: "HTTP port",
},
EXTENDED_SERVICES__nativeBinaryPath_macOS: {
- default:
`./dist-dev/jitexecutor-native-darwin-${rootEnv.env.versions.kogito}-runner`,
+ default:
`./dist-dev/jitexecutor-native-darwin-999-20250511-SNAPSHOT-runner`,
description: "",
},
EXTENDED_SERVICES__nativeBinaryPath_linux: {
- default:
`./dist-dev/jitexecutor-native-linux-${rootEnv.env.versions.kogito}-runner`,
+ default:
`./dist-dev/jitexecutor-native-linux-999-20250511-SNAPSHOT-runner`,
description: "",
},
EXTENDED_SERVICES__nativeBinaryPath_win32: {
- default:
`.\\dist-dev\\jitexecutor-native-win32-${rootEnv.env.versions.kogito}-runner.exe`,
+ default:
`.\\dist-dev\\jitexecutor-native-win32-999-20250511-SNAPSHOT-runner.exe`,
description: "",
},
}),
diff --git a/packages/extended-services/package.json
b/packages/extended-services/package.json
index ff25bdd3a75..bb01967b4ff 100644
--- a/packages/extended-services/package.json
+++ b/packages/extended-services/package.json
@@ -34,9 +34,9 @@
"copy-jitexecutor-linux-headless:linux": "cp $(build-env
extendedServices.jitexecutor.nativeBinaryPath.linux) jitexecutor && chmod +x
jitexecutor",
"copy-jitexecutor-linux-headless:win32": "pnpm powershell \"Copy-Item
$(build-env extendedServices.jitexecutor.nativeBinaryPath.win32) jitexecutor\"",
"download:mvn:jitexecutor-native": "run-script-os",
- "download:mvn:jitexecutor-native:darwin": "mvn dependency:get
-Dartifact=\"org.kie.kogito:jitexecutor-native-darwin:$(build-env
versions.kogito):jar:binaries\"",
- "download:mvn:jitexecutor-native:linux": "mvn dependency:get
-Dartifact=\"org.kie.kogito:jitexecutor-native-linux:$(build-env
versions.kogito):jar:binaries\"",
- "download:mvn:jitexecutor-native:win32": "pnpm powershell \"mvn
dependency:get `-Dartifact=org.kie.kogito:jitexecutor-native-win32:$(build-env
versions.kogito):jar:binaries\"",
+ "download:mvn:jitexecutor-native:darwin": "mvn dependency:get
-Dartifact=\"org.kie.kogito:jitexecutor-native-darwin:999-20250511-SNAPSHOT:jar:binaries\"",
+ "download:mvn:jitexecutor-native:linux": "mvn dependency:get
-Dartifact=\"org.kie.kogito:jitexecutor-native-linux:999-20250511-SNAPSHOT:jar:binaries\"",
+ "download:mvn:jitexecutor-native:win32": "pnpm powershell \"mvn
dependency:get
`-Dartifact=org.kie.kogito:jitexecutor-native-win32:999-20250511-SNAPSHOT:jar:binaries\"",
"install": "go mod tidy && pnpm download:mvn:jitexecutor-native && pnpm
unpack:mvn:jitexecutor-native",
"pack-app": "run-script-os",
"pack-app:darwin": "cd ./scripts/macos && ./build.sh",
@@ -45,9 +45,9 @@
"powershell": "@powershell -NoProfile -ExecutionPolicy Unrestricted
-Command",
"start": "cross-env ENV=dev make start",
"unpack:mvn:jitexecutor-native": "run-script-os",
- "unpack:mvn:jitexecutor-native:darwin": "mvn dependency:unpack
-DoutputDirectory=dist-dev
-Dartifact=\"org.kie.kogito:jitexecutor-native-darwin:$(build-env
versions.kogito):jar:binaries\"",
- "unpack:mvn:jitexecutor-native:linux": "mvn dependency:unpack
-DoutputDirectory=dist-dev
-Dartifact=\"org.kie.kogito:jitexecutor-native-linux:$(build-env
versions.kogito):jar:binaries\"",
- "unpack:mvn:jitexecutor-native:win32": "pnpm powershell \"mvn
dependency:unpack `-DoutputDirectory=dist-dev
`-Dartifact=org.kie.kogito:jitexecutor-native-win32:$(build-env
versions.kogito):jar:binaries\""
+ "unpack:mvn:jitexecutor-native:darwin": "mvn dependency:unpack
-DoutputDirectory=dist-dev
-Dartifact=\"org.kie.kogito:jitexecutor-native-darwin:999-20250511-SNAPSHOT:jar:binaries\"",
+ "unpack:mvn:jitexecutor-native:linux": "mvn dependency:unpack
-DoutputDirectory=dist-dev
-Dartifact=\"org.kie.kogito:jitexecutor-native-linux:999-20250511-SNAPSHOT:jar:binaries\"",
+ "unpack:mvn:jitexecutor-native:win32": "pnpm powershell \"mvn
dependency:unpack `-DoutputDirectory=dist-dev
`-Dartifact=org.kie.kogito:jitexecutor-native-win32:999-20250511-SNAPSHOT:jar:binaries\""
},
"devDependencies": {
"@kie-tools/root-env": "workspace:*",
diff --git
a/packages/kie-sandbox-accelerator-quarkus/git-repo-content-src/pom.xml.envsubst
b/packages/kie-sandbox-accelerator-quarkus/git-repo-content-src/pom.xml.envsubst
index a12432bcff0..a147e96bec9 100644
---
a/packages/kie-sandbox-accelerator-quarkus/git-repo-content-src/pom.xml.envsubst
+++
b/packages/kie-sandbox-accelerator-quarkus/git-repo-content-src/pom.xml.envsubst
@@ -59,7 +59,7 @@
<enabled>false</enabled>
</releases>
<snapshots>
- <enabled>true</enabled>
+ <enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
diff --git a/packages/kn-plugin-workflow/e2e-tests/helper_test.go
b/packages/kn-plugin-workflow/e2e-tests/helper_test.go
index c2f3575fdcb..a268a4771c4 100644
--- a/packages/kn-plugin-workflow/e2e-tests/helper_test.go
+++ b/packages/kn-plugin-workflow/e2e-tests/helper_test.go
@@ -277,8 +277,13 @@ func WriteMavenConfigFileWithTailDirs(projectDir string) {
fmt.Printf("Failed to resolve absolute path for
`@kie-tools/maven-base` package. %v", err)
os.Exit(1)
}
+ droolsAndKogitoM2, err :=
filepath.Abs("../../../node_modules/@kie-tools-core/drools-and-kogito/dist/1st-party-m2/repository")
+ if err != nil {
+ fmt.Printf("Failed to resolve absolute path for
`@kie-tools-core/drools-and-kogito` package. %v", err)
+ os.Exit(1)
+ }
- tail := mavenBaseM2 + "," + sonataflowQuarkusDevUiM2 + "\n"
+ tail := droolsAndKogitoM2 + "," + mavenBaseM2 + "," +
sonataflowQuarkusDevUiM2 + "\n"
err = os.WriteFile(filepath.Join(projectDir, ".mvn", "maven.config"),
[]byte("-Dmaven.repo.local.tail="+tail), 0644)
if err != nil {
diff --git a/packages/kn-plugin-workflow/package.json
b/packages/kn-plugin-workflow/package.json
index 4ad15ea5eb7..3adfb267afd 100644
--- a/packages/kn-plugin-workflow/package.json
+++ b/packages/kn-plugin-workflow/package.json
@@ -50,6 +50,7 @@
"test-e2e:quarkus:logs": "run-script-if --ignore-errors \"$(build-env
endToEndTests.ignoreFailures)\" --bool \"$(build-env endToEndTests.run)\"
--then \"pnpm go:test-e2e:quarkus:logs\" \"pnpm go:test-e2e:report\""
},
"dependencies": {
+ "@kie-tools-core/drools-and-kogito": "workspace:*",
"@kie-tools/maven-base": "workspace:*",
"@kie-tools/sonataflow-quarkus-devui": "workspace:*"
},
diff --git a/packages/kogito-data-index-ephemeral-image/install.js
b/packages/kogito-data-index-ephemeral-image/install.js
index 5e3e2c01d85..87cead623e8 100644
--- a/packages/kogito-data-index-ephemeral-image/install.js
+++ b/packages/kogito-data-index-ephemeral-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-data-index-ephemeral-image/package.json
b/packages/kogito-data-index-ephemeral-image/package.json
index 08f12e9cba1..86189e26f02 100644
--- a/packages/kogito-data-index-ephemeral-image/package.json
+++ b/packages/kogito-data-index-ephemeral-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env
kogitoDataIndexEphemeralImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env
kogitoDataIndexEphemeralImage.account) KOGITO_IMAGE_NAME=$(build-env
kogitoDataIndexEphemeralImage.name) KOGITO_IMAGE_TAG=$(build-env
kogitoDataIndexEphemeralImage.buildTag) QUARKUS_PLATFORM_GROUPID=$(build-env
kogitoImagesCekitModules.quarkusGroupId) QUARKUS_PLATFORM_VERSION=$(build-en
[...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/kogito-data-index-postgresql-image/install.js
b/packages/kogito-data-index-postgresql-image/install.js
index 9b61611cc10..c21e2cea7d2 100644
--- a/packages/kogito-data-index-postgresql-image/install.js
+++ b/packages/kogito-data-index-postgresql-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-data-index-postgresql-image/package.json
b/packages/kogito-data-index-postgresql-image/package.json
index f1dfdc58d14..a1194946d1f 100644
--- a/packages/kogito-data-index-postgresql-image/package.json
+++ b/packages/kogito-data-index-postgresql-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env
kogitoDataIndexPostgresqlImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env
kogitoDataIndexPostgresqlImage.account) KOGITO_IMAGE_NAME=$(build-env
kogitoDataIndexPostgresqlImage.name) KOGITO_IMAGE_TAG=$(build-env
kogitoDataIndexPostgresqlImage.buildTag) QUARKUS_PLATFORM_GROUPID=$(build-env
kogitoImagesCekitModules.quarkusGroupId) QUARKUS_PLATFORM_VERSION=$(buil [...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/kogito-jit-runner-image/install.js
b/packages/kogito-jit-runner-image/install.js
index 9be7a1027ef..0294693b81c 100644
--- a/packages/kogito-jit-runner-image/install.js
+++ b/packages/kogito-jit-runner-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-jit-runner-image/package.json
b/packages/kogito-jit-runner-image/package.json
index ce4b3dbb953..58da9a9219b 100644
--- a/packages/kogito-jit-runner-image/package.json
+++ b/packages/kogito-jit-runner-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env kogitoJitRunnerImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env kogitoJitRunnerImage.account)
KOGITO_IMAGE_NAME=$(build-env kogitoJitRunnerImage.name)
KOGITO_IMAGE_TAG=$(build-env kogitoJitRunnerImage.buildTag)
QUARKUS_PLATFORM_GROUPID=$(build-env kogitoImagesCekitModules.quarkusGroupId)
QUARKUS_PLATFORM_VERSION=$(build-env versions.quarkus) KOGITO_VERSION=$ [...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/kogito-jobs-service-allinone-image/install.js
b/packages/kogito-jobs-service-allinone-image/install.js
index 968e4e4e162..8bfc7d1293f 100644
--- a/packages/kogito-jobs-service-allinone-image/install.js
+++ b/packages/kogito-jobs-service-allinone-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-jobs-service-allinone-image/package.json
b/packages/kogito-jobs-service-allinone-image/package.json
index 9dbfbdcfd20..baa7c4b177a 100644
--- a/packages/kogito-jobs-service-allinone-image/package.json
+++ b/packages/kogito-jobs-service-allinone-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env
kogitoJobsServiceAllInOneImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env
kogitoJobsServiceAllInOneImage.account) KOGITO_IMAGE_NAME=$(build-env
kogitoJobsServiceAllInOneImage.name) KOGITO_IMAGE_TAG=$(build-env
kogitoJobsServiceAllInOneImage.buildTag) QUARKUS_PLATFORM_GROUPID=$(build-env
kogitoImagesCekitModules.quarkusGroupId) QUARKUS_PLATFORM_VERSION=$(buil [...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/kogito-jobs-service-ephemeral-image/install.js
b/packages/kogito-jobs-service-ephemeral-image/install.js
index 68c5fc634a6..65a384e676f 100644
--- a/packages/kogito-jobs-service-ephemeral-image/install.js
+++ b/packages/kogito-jobs-service-ephemeral-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-jobs-service-ephemeral-image/package.json
b/packages/kogito-jobs-service-ephemeral-image/package.json
index e6296250270..fe101aecd27 100644
--- a/packages/kogito-jobs-service-ephemeral-image/package.json
+++ b/packages/kogito-jobs-service-ephemeral-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env
kogitoJobsServiceEphemeralImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env
kogitoJobsServiceEphemeralImage.account) KOGITO_IMAGE_NAME=$(build-env
kogitoJobsServiceEphemeralImage.name) KOGITO_IMAGE_TAG=$(build-env
kogitoJobsServiceEphemeralImage.buildTag) QUARKUS_PLATFORM_GROUPID=$(build-env
kogitoImagesCekitModules.quarkusGroupId) QUARKUS_PLATFORM_VERSION=$( [...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/kogito-jobs-service-postgresql-image/install.js
b/packages/kogito-jobs-service-postgresql-image/install.js
index 10ca5359643..c9e38da2aec 100644
--- a/packages/kogito-jobs-service-postgresql-image/install.js
+++ b/packages/kogito-jobs-service-postgresql-image/install.js
@@ -62,3 +62,10 @@ replaceInFile.sync({
from: /@docker.io\/apache\/.*/g,
to: `@${imageUrl}`,
});
+
+/// Maven app
+
+const { setupMavenConfigFile, buildTailFromPackageJsonDependencies } =
require("@kie-tools/maven-base");
+setupMavenConfigFile(`
+ -Dmaven.repo.local.tail=${buildTailFromPackageJsonDependencies()}
+`);
diff --git a/packages/kogito-jobs-service-postgresql-image/package.json
b/packages/kogito-jobs-service-postgresql-image/package.json
index 1f55b59fd8f..40d7746f5c5 100644
--- a/packages/kogito-jobs-service-postgresql-image/package.json
+++ b/packages/kogito-jobs-service-postgresql-image/package.json
@@ -32,8 +32,10 @@
"mvn-build-app:win32": "echo \"Build skipped on Windows\"",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env
kogitoJobsServicePostgresqlImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env
kogitoJobsServicePostgresqlImage.account) KOGITO_IMAGE_NAME=$(build-env
kogitoJobsServicePostgresqlImage.name) KOGITO_IMAGE_TAG=$(build-env
kogitoJobsServicePostgresqlImage.buildTag) QUARKUS_PLATFORM_GROUPID=$(build-env
kogitoImagesCekitModules.quarkusGroupId) QUARKUS_PLATFORM_VERSIO [...]
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/sonataflow-image-common": "workspace:*",
diff --git a/packages/maven-base/index.js b/packages/maven-base/index.js
index 5860a133b9e..615e4f0f9c1 100755
--- a/packages/maven-base/index.js
+++ b/packages/maven-base/index.js
@@ -94,7 +94,7 @@ module.exports = {
* Builds a single Maven repository directory out of multiple local Maven
repositories using hard links.
*
* @param tmpM2Dir Relative path of this new Maven repository directory. It
will be deleted and recreated for each invocation.
- * @param dirname A list of paths representing additional Maven repository
directories, to be concatenated the default one (I.e, `maven.repo.local`)
+ * @param relativePackagePath A list of paths representing additional Maven
repository directories, to be concatenated the default one (I.e,
`maven.repo.local`)
* */
prepareHardLinkedM2ForPackage: (tmpM2Dir, relativePackagePath) => {
const resolvedTmpM2Dir = path.resolve(tmpM2Dir);
diff --git a/packages/maven-base/package.json b/packages/maven-base/package.json
index 093634bdfdd..5cdc9298721 100644
--- a/packages/maven-base/package.json
+++ b/packages/maven-base/package.json
@@ -23,6 +23,9 @@
"lint": "echo 'Linting'",
"powershell": "@powershell -NoProfile -ExecutionPolicy Unrestricted
-Command"
},
+ "dependencies": {
+ "@kie-tools-core/drools-and-kogito": "workspace:*"
+ },
"devDependencies": {
"@kie-tools/root-env": "workspace:*",
"run-script-os": "^1.1.6"
diff --git a/packages/maven-base/pom.xml b/packages/maven-base/pom.xml
index 854b2dfb5df..c0f8855e747 100644
--- a/packages/maven-base/pom.xml
+++ b/packages/maven-base/pom.xml
@@ -123,7 +123,7 @@
<version.maven.surefire.plugin>3.5.0</version.maven.surefire.plugin>
<!-- Apache KIE -->
- <version.org.kie.kogito>999-20250511-SNAPSHOT</version.org.kie.kogito>
+ <version.org.kie.kogito>999-20250511-local</version.org.kie.kogito>
<!-- Quarkus -->
<version.quarkus>3.15.3.1</version.quarkus>
diff --git a/packages/maven-base/settings.xml b/packages/maven-base/settings.xml
index 7b260596554..48466437569 100644
--- a/packages/maven-base/settings.xml
+++ b/packages/maven-base/settings.xml
@@ -39,7 +39,7 @@
<enabled>false</enabled>
</releases>
<snapshots>
- <enabled>true</enabled>
+ <enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
diff --git a/packages/root-env/env/index.js b/packages/root-env/env/index.js
index b77188cda66..88b2189dd49 100644
--- a/packages/root-env/env/index.js
+++ b/packages/root-env/env/index.js
@@ -74,7 +74,7 @@ module.exports = composeEnv([], {
},
/* (begin) This part of the file is referenced in
`scripts/update-kogito-version` */
KOGITO_RUNTIME_version: {
- default: "999-20250511-SNAPSHOT",
+ default: "999-20250511-local",
description: "Kogito version to be used on dependency declaration.",
},
/* (end) */
diff --git a/packages/serverless-workflow-diagram-editor/package.json
b/packages/serverless-workflow-diagram-editor/package.json
index fb839d54c83..5295647999e 100644
--- a/packages/serverless-workflow-diagram-editor/package.json
+++ b/packages/serverless-workflow-diagram-editor/package.json
@@ -27,8 +27,10 @@
"lint": "echo 'Linting'",
"powershell": "@powershell -NoProfile -ExecutionPolicy Unrestricted
-Command"
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"cpr": "^3.0.1",
"rimraf": "^3.0.2",
diff --git a/packages/sonataflow-builder-image/package.json
b/packages/sonataflow-builder-image/package.json
index c2bb075a731..776ca1c8adb 100644
--- a/packages/sonataflow-builder-image/package.json
+++ b/packages/sonataflow-builder-image/package.json
@@ -32,7 +32,8 @@
"image:test:linux": "pnpm copy-test-assets && pnpm setup:env make -C
./build test-image",
"install": "node install.js && pnpm format",
"m2-repo-via-http:container:kill": "(docker container kill
m2-repo-via-http || true) && (docker container rm m2-repo-via-http || true)",
- "m2-repo-via-http:container:run": "(pnpm m2-repo-via-http:container:kill
|| true) && docker run --name m2-repo-via-http -v \"$(mvn help:evaluate
-Dexpression=settings.localRepository -q -DforceStdout):/var/www/html\" -dit
$(build-env sonataflowBuilderImage.dev.mavenM2RepoViaHttpImage)",
+ "m2-repo-via-http:container:prepare-m2-repo-volume": "node -e
'require(`@kie-tools/maven-base`).prepareHardLinkedM2ForPackage(`./dist/tmp-m2/repository`,
`.`)'",
+ "m2-repo-via-http:container:run": "(pnpm m2-repo-via-http:container:kill
|| true) && pnpm m2-repo-via-http:container:prepare-m2-repo-volume && docker
run -p 8888:80 --name m2-repo-via-http -v
\"./dist/tmp-m2/repository:/var/www/html\" -dit $(build-env
sonataflowBuilderImage.dev.mavenM2RepoViaHttpImage)",
"setup:env": ". ./node_modules/@kie-tools/python-venv/venv/bin/activate &&
cross-env KOGITO_IMAGE_REGISTRY=$(build-env sonataflowBuilderImage.registry)
KOGITO_IMAGE_REGISTRY_ACCOUNT=$(build-env sonataflowBuilderImage.account)
KOGITO_IMAGE_NAME=$(build-env sonataflowBuilderImage.name)
KOGITO_IMAGE_TAG=$(build-env sonataflowBuilderImage.buildTag)
QUARKUS_PLATFORM_GROUPID=$(build-env kogitoImagesCekitModules.quarkusGroupId)
QUARKUS_PLATFORM_VERSION=$(build-env versions.quarkus) KOGITO_V [...]
"test": "run-script-os",
"test:cleanup": "mv dist-tests/report.xml dist-tests/junit-report.xml ||
true",
@@ -41,9 +42,11 @@
"test:setup": "pnpm copy-test-assets && mkdir -p dist-tests && rm -rf
dist-tests/*",
"test:win32": "echo \"Tests are skipped in Windows\""
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
"@kie-tools/image-builder": "workspace:*",
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/maven-m2-repo-via-http-image": "workspace:*",
"@kie-tools/python-venv": "workspace:*",
"@kie-tools/root-env": "workspace:*",
diff --git
a/packages/sonataflow-image-common/resources/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst
b/packages/sonataflow-image-common/resources/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst
index ad8a808e6c8..47a166ffc19 100644
---
a/packages/sonataflow-image-common/resources/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst
+++
b/packages/sonataflow-image-common/resources/modules/kogito-maven/common/maven/maven-m2-repo-via-http-settings.xml.envsubst
@@ -50,7 +50,7 @@
<enabled>false</enabled>
</releases>
<snapshots>
- <enabled>true</enabled>
+ <enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
diff --git a/packages/stunner-editors/package.json
b/packages/stunner-editors/package.json
index be5b4b6ab05..75b528830dd 100644
--- a/packages/stunner-editors/package.json
+++ b/packages/stunner-editors/package.json
@@ -32,8 +32,10 @@
"lint": "echo 'Linting'",
"powershell": "@powershell -NoProfile -ExecutionPolicy Unrestricted
-Command"
},
+ "dependencies": {
+ "@kie-tools/maven-base": "workspace:*"
+ },
"devDependencies": {
- "@kie-tools/maven-base": "workspace:*",
"@kie-tools/root-env": "workspace:*",
"@kie-tools/stunner-editors-dmn-loader": "workspace:*",
"rimraf": "^3.0.2",
diff --git a/packages/stunner-editors/pom.xml b/packages/stunner-editors/pom.xml
index bc1d722d68c..bc4c9ea729b 100644
--- a/packages/stunner-editors/pom.xml
+++ b/packages/stunner-editors/pom.xml
@@ -276,6 +276,9 @@
<releases>
<enabled>false</enabled>
</releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
</repository>
</repositories>
<pluginRepositories>
@@ -287,6 +290,9 @@
<releases>
<enabled>false</enabled>
</releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
</pluginRepository>
</pluginRepositories>
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8ebb41c0401..63cf57adb4b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4859,15 +4859,24 @@ importers:
specifier: 0.2.3
version: 0.2.3
devDependencies:
+ '@kie-tools-core/drools-and-kogito':
+ specifier: workspace:*
+ version: link:../drools-and-kogito
'@kie-tools/root-env':
specifier: workspace:*
version: link:../root-env
'@kie-tools/tsconfig':
specifier: workspace:*
version: link:../tsconfig
+ cross-env:
+ specifier: ^7.0.3
+ version: 7.0.3
rimraf:
specifier: ^3.0.2
version: 3.0.2
+ run-script-os:
+ specifier: ^1.1.6
+ version: 1.1.6
typescript:
specifier: ^5.5.3
version: 5.5.3
@@ -5055,6 +5064,15 @@ importers:
specifier: ^5.9.0
version: 5.9.0
+ packages/drools-and-kogito:
+ devDependencies:
+ '@kie-tools-scripts/build-env':
+ specifier: workspace:*
+ version: link:../../scripts/build-env
+ '@kie-tools/root-env':
+ specifier: workspace:*
+ version: link:../root-env
+
packages/editor:
dependencies:
'@kie-tools-core/envelope':
@@ -7312,6 +7330,9 @@ importers:
packages/kn-plugin-workflow:
dependencies:
+ '@kie-tools-core/drools-and-kogito':
+ specifier: workspace:*
+ version: link:../drools-and-kogito
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
@@ -7363,10 +7384,11 @@ importers:
version: 1.1.6
packages/kogito-data-index-ephemeral-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7390,10 +7412,11 @@ importers:
version: 1.1.6
packages/kogito-data-index-postgresql-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7461,10 +7484,11 @@ importers:
version: 1.1.6
packages/kogito-jit-runner-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7488,10 +7512,11 @@ importers:
version: 1.1.6
packages/kogito-jobs-service-allinone-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7515,10 +7540,11 @@ importers:
version: 1.1.6
packages/kogito-jobs-service-ephemeral-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7542,10 +7568,11 @@ importers:
version: 1.1.6
packages/kogito-jobs-service-postgresql-image:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/python-venv':
specifier: workspace:*
version: link:../python-venv
@@ -7636,6 +7663,10 @@ importers:
version: 5.5.3
packages/maven-base:
+ dependencies:
+ '@kie-tools-core/drools-and-kogito':
+ specifier: workspace:*
+ version: link:../drools-and-kogito
devDependencies:
'@kie-tools/root-env':
specifier: workspace:*
@@ -11127,10 +11158,11 @@ importers:
version: 5.9.0
packages/serverless-workflow-diagram-editor:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/root-env':
specifier: workspace:*
version: link:../root-env
@@ -11898,13 +11930,14 @@ importers:
version: 5.9.0
packages/sonataflow-builder-image:
+ dependencies:
+ '@kie-tools/maven-base':
+ specifier: workspace:*
+ version: link:../maven-base
devDependencies:
'@kie-tools/image-builder':
specifier: workspace:*
version: link:../image-builder
- '@kie-tools/maven-base':
- specifier: workspace:*
- version: link:../maven-base
'@kie-tools/maven-m2-repo-via-http-image':
specifier: workspace:*
version: link:../maven-m2-repo-via-http-image
@@ -12627,10 +12660,11 @@ importers:
version: 5.9.0
packages/stunner-editors:
- devDependencies:
+ dependencies:
'@kie-tools/maven-base':
specifier: workspace:*
version: link:../maven-base
+ devDependencies:
'@kie-tools/root-env':
specifier: workspace:*
version: link:../root-env
diff --git a/repo/KOGITO_UPGRADE_PROCESS.md b/repo/KOGITO_UPGRADE_PROCESS.md
index 2a118e9fd7b..78a6c2a9eb9 100644
--- a/repo/KOGITO_UPGRADE_PROCESS.md
+++ b/repo/KOGITO_UPGRADE_PROCESS.md
@@ -15,49 +15,82 @@
under the License.
-->
-This guide aims to assist you in the process of upgrading all Kogito
dependencies versions present in the kie-tools repository.
-Typically, these dependencies point to backend-side modules or images
+This guide aims to assist you in the process of upgrading the Kogito version
`kie-tools` depends on.
+
+Kogito dependencies are Maven libraries, and transitively bring in Drools,
OptaPlanner, and jBPM.
# When apply the upgrade
-The upgrade should be applied soon after a new Kogito version is released.
-At the writing time, it's still not planned to use pure SNAPSHOT versions, but
TAGGED and TIMESTAMPED SNAPSHOT versions only.
-It's mandatory to always upgrade the Kogito versions in case a new TAGGED
version is released, to keep the codebase consistent when releasing kie-tools.
-The approach with TIMESTAMPED SNAPSHOT may vary depending on the team's plans.
These versions are automatically released weekly.
-It's important to always apply the same TAG or TIMESTAMPED SNAPSHOT version in
the whole repository.
+The upgrade should be applied whenever you want to make `kie-tools` more
closely follow the development of other Apache KIE repositories it depends on.
+
+# Upgrading Kogito
+
+To make sure you're upgrading Kogito to a version that is consistent across
the many repositories which `kie-tools` depends on, the best way is to use a
date as referece.
+
+With the [GitHub CLI](https://cli.github.com/) installed, you can run:
+
+```bash
+
+DATE='2025-05-11' # CHANGE THIS TO WHATEVER DATE YOU'D LIKE TO UPGRADE TO.
+PAGER='cat'
+DROOLS_SHA=$(gh search commits --author-date "<${DATE}" -R
"apache/incubator-kie-drools" --sort author-date --order desc --json sha
--limit 1 --jq '.[].sha')
+OPTAPLANNER_SHA=$(gh search commits --author-date "<${DATE}" -R
"apache/incubator-kie-optaplanner" --sort author-date --order desc --json sha
--limit 1 --jq '.[].sha')
+KOGITO_RUNTIMES_SHA=$(gh search commits --author-date "<${DATE}" -R
"apache/incubator-kie-kogito-runtimes" --sort author-date --order desc --json
sha --limit 1 --jq '.[].sha')
+KOGITO_APPS_SHA=$(gh search commits --author-date "<${DATE}" -R
"apache/incubator-kie-kogito-apps" --sort author-date --order desc --json sha
--limit 1 --jq '.[].sha')
+VERSION=$(echo "${DATE//-/}")
+pnpm update-kogito-version-to --maven "999-${VERSION}-local" --droolsGitRef
"${DROOLS_SHA}" --optaplannerGitRef "${OPTAPLANNER_SHA}" --kogitoRuntimesGitRef
"${KOGITO_RUNTIMES_SHA}" --kogitoAppsGitRef "${KOGITO_APPS_SHA}"
+```
+
+Of course, a new Kogito version may lead to incompatibilities in the code and
with other dependencies. In such a case, an investigation and evetually a fix
is required to complete the process.
+
+You can find an example of the Kogito version upgrade in [this
PR](https://github.com/apache/incubator-kie-tools/pull/2229)
-# Prerequisites
+# Related upgrades
The following prerequisites must be assessed before beginning the procedure:
-- Retrieve the Kogito TAG version (eg. `10.0.0`) or TIMESTAMPED SNAPSHOT to
apply (eg. `10.1.0-20240218-SNAPSHOT`)
-- Check if the below Kogito version upgraded the Quarkus version (eg. from
`3.8.0` to `3.8.1`). In that case, we need to upgrade Quarkus version in
kie-tools accordingly.
-- Check if the below Kogito version upgraded to the Java version (eg. from
Java `17` to Java `21`). In such a case, we need to upgrade kie-tools Java
modules accordingly.
-- Check if the below Kogito version upgraded to the Maven version (eg. from
Maven `3.9.6` to Maven `3.9.7`). In such a case, we need to upgrade kie-tools
Maven modules accordingly.
+- Check if the below Kogito version upgraded the **Quarkus version** (E.g.,
from `3.8.0` to `3.8.1`). In that case, we need to upgrade Quarkus version in
`kie-tools` accordingly.
+- Check if the below Kogito version upgraded to the **Java version** (E.g.,
from Java `17` to Java `21`). In such a case, we need to upgrade `kie-tools`
Java modules accordingly.
+- Check if the below Kogito version upgraded to the **Maven version** (E.g.,
from Maven `3.9.6` to Maven `3.9.7`). In such a case, we need to upgrade
`kie-tools` Maven modules accordingly.
+
+## Upgrading Quarkus
+
+The Quarkus version is present in the following file categories:
+
+- `root-env/env/index.js` file
+- go test files
+
+The best (and fastest) way to catch all the Quarkus versions is to perform a
search a grep (or the IDE integrated search) and replace it with the new
version. So, as a key, you can use:
+
+- The version number (E.g., `3.8.0`);
+
+Of course, a new Quarkus version may lead to incompatibilities in the code and
with other dependencies. In such a case, an investigation and eventually a fix
are required to complete the process.
+
+You can find an example of the Quarkus upgrade in [this
PR](https://github.com/apache/incubator-kie-tools/pull/2193)
-# Upgrading Java & Maven
+## Upgrading Java & Maven
-To upgrade Java and Maven versions, you should first identify all the Java
modules currently present in the kie-tools guide.
+To upgrade Java and Maven versions, you should first identify all the Java
modules currently present in the `kie-tools` guide.
In detail, the involved module's categories are:
- Jenkins and GitHub actions configuration files;
- GWT based modules;
- Images generation modules;
-- Quarkus-based application (eg. extended-services-java)
-- Java application (eg. vscode-java-code-completion-extension-plugin-core)
-- JBang scripts (eg dmn-marshaller tests)
+- Quarkus-based application (E.g., extended-services-java)
+- Java application (E.g., vscode-java-code-completion-extension-plugin-core)
+- JBang scripts (E.g., dmn-marshaller tests)
The suggested strategy is to check all:
- pom.xml files for Java version references (typically in maven compiler
properties)
- Github Action yaml configuration files
- Images Dockerfile and Containerfile
-- JBang scripts (eg. Plain .java files that start with `///usr/bin/env jbang
"$0" "$@" ; exit $?`)
+- JBang scripts (E.g., Plain .java files that start with `///usr/bin/env jbang
"$0" "$@" ; exit $?`)
To double-check that all the versions are correctly updated, please perform a
search with grep (or the IDE-integrated search) if the old version is still
referenced somewhere. As a key, you can use:
-- The version number (eg. `17` for Java and `3.9.6` for Maven);
+- The version number (E.g., `17` for Java and `3.9.6` for Maven);
- OpenJDK references (`openjdk`);
- Apache Maven references (`apache-maven`);
- GitHub Action references (`java-version` and `maven-version`);
@@ -69,30 +102,7 @@ Don't forget to update the Java and Maven versions in this
file `repo/build-depe
You can find an example of the Java / Maven versions upgrade in [this
PR](https://github.com/apache/incubator-kie-tools/pull/2182)
-# Upgrading Quarkus
-
-The Quarkus version is present in the following file categories:
-
-- `root-env/env/index.js` file
-- go test files
-
-The best (and fastest) way to catch all the Quarkus versions is to perform a
search a grep (or the IDE integrated search) and replace it with the new
version. So, as a key, you can use:
-
-- The version number (eg. `3.8.0`);
-
-Of course, a new Quarkus version may lead to incompatibilities in the code and
with other dependencies. In such a case, an investigation and eventually a fix
are required to complete the process.
-
-You can find an example of the Quarkus upgrade in [this
PR](https://github.com/apache/incubator-kie-tools/pull/2193)
-
-# Upgrading Kogito
-
-In the root directory, run `pnpm update-kogito-version-to --maven [version]`.
-
-Of course, a new Kogito version may lead to incompatibilities in the code and
with other dependencies. In such a case, an investigation and evetually a fix
is required to complete the process.
-
-You can find an example of the Kogito version upgrade in [this
PR](https://github.com/apache/incubator-kie-tools/pull/2229)
-
-# Upgrading GraphQL schemas in `@kie-tools/runtime-tools-process-gateway-api`&
`@kie-tools/runtime-tools-swf-gateway-api`
+## Upgrading GraphQL schemas in `@kie-tools/runtime-tools-process-gateway-api`
& `@kie-tools/runtime-tools-swf-gateway-api`
The following commands will help to sync up the gateway apis the GraphQL
schema with the new Kogito Data Index GraphQL schema:
@@ -100,5 +110,4 @@ The following commands will help to sync up the gateway
apis the GraphQL schema
- Run `pnpm -F @kie-tools/runtime-tools-process-gateway-api graphql:codegen`
- Run `pnpm -F @kie-tools/runtime-tools-swf-gateway-api graphql:codegen`
-After upgrading the GraphQL schemas it is recommended to verify that the
incoming changes aren't breaking the consoles or
-devui's and fix any possible conflict if needed.
+After upgrading the GraphQL schemas it is recommended to verify that the
incoming changes aren't breaking the consoles or devui's and fix any possible
conflict if needed.
diff --git a/repo/graph.dot b/repo/graph.dot
index 4a2b9dfdc3e..5eb28eae501 100644
--- a/repo/graph.dot
+++ b/repo/graph.dot
@@ -116,10 +116,12 @@ digraph G {
"@kie-tools-core/switch-expression-ts" [ color = "purple", fontcolor =
"purple", style = "rounded" ];
"@kie-tools/dmn-marshaller-backend-compatibility-tester" [ color = "black",
fontcolor = "black", style = "dashed, rounded" ];
"@kie-tools/dmn-testing-models" [ color = "black", fontcolor = "black",
style = "dashed, rounded" ];
+ "@kie-tools-core/drools-and-kogito" [ color = "black", fontcolor = "black",
style = "dashed, rounded" ];
"@kie-tools/dmn-runner" [ color = "blue", fontcolor = "blue", style =
"rounded" ];
"@kie-tools/extended-services-api" [ color = "blue", fontcolor = "blue",
style = "rounded" ];
"dmn-vscode-extension" [ color = "blue", fontcolor = "blue", style =
"rounded" ];
"@kie-tools/scesim-editor-envelope" [ color = "blue", fontcolor = "blue",
style = "rounded" ];
+ "@kie-tools-scripts/build-env" [ color = "blue", fontcolor = "blue", style =
"rounded" ];
"@kie-tools-core/keyboard-shortcuts" [ color = "purple", fontcolor =
"purple", style = "rounded" ];
"@kie-tools-core/notifications" [ color = "purple", fontcolor = "purple",
style = "rounded" ];
"@kie-tools-core/envelope-bus" [ color = "purple", fontcolor = "purple",
style = "rounded" ];
@@ -218,7 +220,6 @@ digraph G {
"@kie-tools/yard-model" [ color = "black", fontcolor = "black", style =
"dashed, rounded" ];
"@kie-tools/yard-validator-worker" [ color = "black", fontcolor = "black",
style = "dashed, rounded" ];
"yard-vscode-extension" [ color = "blue", fontcolor = "blue", style =
"rounded" ];
- "@kie-tools-scripts/build-env" [ color = "blue", fontcolor = "blue", style =
"rounded" ];
"kie-tools-root" -> "@kie-tools-scripts/bootstrap" [ style = "dashed", color
= "black" ];
"kie-tools-root" -> "@kie-tools-scripts/check-junit-report-results" [ style
= "dashed", color = "black" ];
"kie-tools-root" -> "@kie-tools-scripts/run-script-if" [ style = "dashed",
color = "black" ];
@@ -382,8 +383,7 @@ digraph G {
"@kie-tools/dmn-marshaller" ->
"@kie-tools/dmn-marshaller-backend-compatibility-tester" [ style = "dashed",
color = "blue" ];
"@kie-tools/dmn-marshaller" -> "@kie-tools/dmn-testing-models" [ style =
"dashed", color = "blue" ];
"@kie-tools/dmn-marshaller" -> "@kie-tools/xml-parser-ts-codegen" [ style =
"dashed", color = "blue" ];
- "@kie-tools/dmn-marshaller-backend-compatibility-tester" ->
"@kie-tools/root-env" [ style = "dashed", color = "black" ];
- "@kie-tools/dmn-marshaller-backend-compatibility-tester" ->
"@kie-tools/tsconfig" [ style = "dashed", color = "black" ];
+ "@kie-tools/dmn-marshaller-backend-compatibility-tester" ->
"@kie-tools-core/drools-and-kogito" [ style = "dashed", color = "black" ];
"@kie-tools/dmn-runner" -> "@kie-tools-core/react-hooks" [ style = "solid",
color = "blue" ];
"@kie-tools/dmn-runner" -> "@kie-tools/extended-services-api" [ style =
"solid", color = "blue" ];
"@kie-tools/dmn-runner" -> "@kie-tools/uniforms-patternfly" [ style =
"solid", color = "blue" ];
@@ -394,6 +394,8 @@ digraph G {
"dmn-vscode-extension" -> "@kie-tools/scesim-editor-envelope" [ style =
"solid", color = "blue" ];
"dmn-vscode-extension" -> "@kie-tools/stunner-editors" [ style = "dashed",
color = "blue" ];
"dmn-vscode-extension" ->
"@kie-tools/vscode-java-code-completion-extension-plugin" [ style = "dashed",
color = "blue" ];
+ "@kie-tools-core/drools-and-kogito" -> "@kie-tools-scripts/build-env" [
style = "dashed", color = "black" ];
+ "@kie-tools-core/drools-and-kogito" -> "@kie-tools/root-env" [ style =
"dashed", color = "black" ];
"@kie-tools-core/editor" -> "@kie-tools-core/envelope" [ style = "solid",
color = "purple" ];
"@kie-tools-core/editor" -> "@kie-tools-core/keyboard-shortcuts" [ style =
"solid", color = "purple" ];
"@kie-tools-core/editor" -> "@kie-tools-core/notifications" [ style =
"solid", color = "purple" ];
@@ -475,26 +477,26 @@ digraph G {
"@kie-tools/kie-sandbox-webapp-image" -> "@kie-tools/image-builder" [ style
= "dashed", color = "black" ];
"@kie-tools/kn-plugin-workflow" -> "@kie-tools/sonataflow-operator" [ style
= "dashed", color = "black" ];
"@kie/kogito-base-builder-image" -> "@kie-tools/sonataflow-image-common" [
style = "dashed", color = "black" ];
- "@kie/kogito-data-index-ephemeral-image" -> "@kie-tools/maven-base" [ style
= "dashed", color = "black" ];
+ "@kie/kogito-data-index-ephemeral-image" -> "@kie-tools/maven-base" [ style
= "solid", color = "black" ];
"@kie/kogito-data-index-ephemeral-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
- "@kie/kogito-data-index-postgresql-image" -> "@kie-tools/maven-base" [ style
= "dashed", color = "black" ];
+ "@kie/kogito-data-index-postgresql-image" -> "@kie-tools/maven-base" [ style
= "solid", color = "black" ];
"@kie/kogito-data-index-postgresql-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
"@kie-tools/kogito-db-migrator-tool" -> "@kie-tools/maven-base" [ style =
"solid", color = "black" ];
"@kie-tools/kogito-db-migrator-tool-image" ->
"@kie-tools/kogito-db-migrator-tool" [ style = "solid", color = "black" ];
"@kie-tools/kogito-db-migrator-tool-image" ->
"@kie-tools/sonataflow-image-common" [ style = "solid", color = "black" ];
- "@kie/kogito-jit-runner-image" -> "@kie-tools/maven-base" [ style =
"dashed", color = "black" ];
+ "@kie/kogito-jit-runner-image" -> "@kie-tools/maven-base" [ style = "solid",
color = "black" ];
"@kie/kogito-jit-runner-image" -> "@kie-tools/sonataflow-image-common" [
style = "dashed", color = "black" ];
- "@kie/kogito-jobs-service-allinone-image" -> "@kie-tools/maven-base" [ style
= "dashed", color = "black" ];
+ "@kie/kogito-jobs-service-allinone-image" -> "@kie-tools/maven-base" [ style
= "solid", color = "black" ];
"@kie/kogito-jobs-service-allinone-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
- "@kie/kogito-jobs-service-ephemeral-image" -> "@kie-tools/maven-base" [
style = "dashed", color = "black" ];
+ "@kie/kogito-jobs-service-ephemeral-image" -> "@kie-tools/maven-base" [
style = "solid", color = "black" ];
"@kie/kogito-jobs-service-ephemeral-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
- "@kie/kogito-jobs-service-postgresql-image" -> "@kie-tools/maven-base" [
style = "dashed", color = "black" ];
+ "@kie/kogito-jobs-service-postgresql-image" -> "@kie-tools/maven-base" [
style = "solid", color = "black" ];
"@kie/kogito-jobs-service-postgresql-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
"@kie-tools/kogito-management-console" -> "@kie-tools/image-builder" [ style
= "dashed", color = "black" ];
"@kie-tools/kogito-management-console" -> "@kie-tools/image-env-to-json" [
style = "dashed", color = "black" ];
"@kie-tools/kogito-management-console" ->
"@kie-tools/runtime-tools-management-console-webapp" [ style = "dashed", color
= "black" ];
"@kie-tools-core/kubernetes-bridge" -> "@kie-tools/cors-proxy-api" [ style =
"solid", color = "purple" ];
- "@kie-tools/maven-base" -> "@kie-tools/root-env" [ style = "dashed", color =
"black" ];
+ "@kie-tools/maven-base" -> "@kie-tools-core/drools-and-kogito" [ style =
"solid", color = "black" ];
"@kie-tools/maven-m2-repo-via-http-image" -> "@kie-tools/image-builder" [
style = "dashed", color = "black" ];
"@kie-tools/maven-m2-repo-via-http-image" -> "@kie-tools/root-env" [ style =
"dashed", color = "black" ];
"@kie-tools-core/monaco-editor" -> "@kie-tools/eslint" [ style = "dashed",
color = "purple" ];
@@ -608,7 +610,7 @@ digraph G {
"@kie-tools/serverless-workflow-dev-ui-webapp" ->
"@kie-tools/runtime-tools-swf-webapp-components" [ style = "solid", color =
"black" ];
"@kie-tools/serverless-workflow-dev-ui-webapp" ->
"@kie-tools/serverless-workflow-dev-ui-monitoring-webapp" [ style = "solid",
color = "black" ];
"@kie-tools/serverless-workflow-dev-ui-webapp" ->
"@kie-tools/sonataflow-dev-app" [ style = "dashed", color = "black" ];
- "@kie-tools/serverless-workflow-diagram-editor" -> "@kie-tools/maven-base" [
style = "dashed", color = "black" ];
+ "@kie-tools/serverless-workflow-diagram-editor" -> "@kie-tools/maven-base" [
style = "solid", color = "black" ];
"@kie-tools/serverless-workflow-diagram-editor-assets" ->
"@kie-tools/serverless-workflow-diagram-editor" [ style = "dashed", color =
"blue" ];
"@kie-tools/serverless-workflow-diagram-editor-assets" ->
"@kie-tools/serverless-workflow-diagram-editor-envelope" [ style = "dashed",
color = "blue" ];
"@kie-tools/serverless-workflow-diagram-editor-envelope" ->
"@kie-tools/kie-bc-editors" [ style = "solid", color = "blue" ];
@@ -625,7 +627,7 @@ digraph G {
"swf-vscode-extension" -> "@kie-tools-core/webpack-base" [ style = "dashed",
color = "blue" ];
"swf-vscode-extension" ->
"@kie-tools/serverless-workflow-diagram-editor-assets" [ style = "dashed",
color = "blue" ];
"swf-vscode-extension" -> "@kie-tools/vscode-extension-common-test-helpers"
[ style = "dashed", color = "blue" ];
- "@kie-tools/sonataflow-builder-image" -> "@kie-tools/maven-base" [ style =
"dashed", color = "black" ];
+ "@kie-tools/sonataflow-builder-image" -> "@kie-tools/maven-base" [ style =
"solid", color = "black" ];
"@kie-tools/sonataflow-builder-image" ->
"@kie-tools/maven-m2-repo-via-http-image" [ style = "dashed", color = "black" ];
"@kie-tools/sonataflow-builder-image" ->
"@kie-tools/sonataflow-image-common" [ style = "dashed", color = "black" ];
"sonataflow-deployment-webapp" -> "@kie-tools-core/react-hooks" [ style =
"solid", color = "blue" ];
diff --git a/repo/graph.json b/repo/graph.json
index 533b0ccc1c4..a77841d69aa 100644
--- a/repo/graph.json
+++ b/repo/graph.json
@@ -74,6 +74,7 @@
},
{ "id": "@kie-tools-examples/process-accelerator" },
{ "id": "@kie-tools/maven-base" },
+ { "id": "@kie-tools-core/drools-and-kogito" },
{ "id": "@kie-tools-examples/process-business-calendar" },
{ "id": "@kie-tools/jbpm-quarkus-devui" },
{ "id": "@kie-tools/runtime-tools-process-dev-ui-webapp" },
@@ -690,6 +691,16 @@
},
{
"source": "@kie-tools/maven-base",
+ "target": "@kie-tools-core/drools-and-kogito",
+ "weight": 1
+ },
+ {
+ "source": "@kie-tools-core/drools-and-kogito",
+ "target": "@kie-tools-scripts/build-env",
+ "weight": 1
+ },
+ {
+ "source": "@kie-tools-core/drools-and-kogito",
"target": "@kie-tools/root-env",
"weight": 1
},
@@ -1640,12 +1651,7 @@
},
{
"source": "@kie-tools/dmn-marshaller-backend-compatibility-tester",
- "target": "@kie-tools/root-env",
- "weight": 1
- },
- {
- "source": "@kie-tools/dmn-marshaller-backend-compatibility-tester",
- "target": "@kie-tools/tsconfig",
+ "target": "@kie-tools-core/drools-and-kogito",
"weight": 1
},
{
@@ -2873,6 +2879,7 @@
["@kie-tools/dmn-runner", "packages/dmn-runner"],
["@kie-tools/dmn-testing-models", "packages/dmn-testing-models"],
["dmn-vscode-extension", "packages/dmn-vscode-extension"],
+ ["@kie-tools-core/drools-and-kogito", "packages/drools-and-kogito"],
["@kie-tools-core/editor", "packages/editor"],
["@kie-tools-core/envelope", "packages/envelope"],
["@kie-tools-core/envelope-bus", "packages/envelope-bus"],
diff --git a/scripts/update-kogito-version/README.md
b/scripts/update-kogito-version/README.md
index ab3821f640a..a0623dd4af4 100644
--- a/scripts/update-kogito-version/README.md
+++ b/scripts/update-kogito-version/README.md
@@ -15,13 +15,13 @@
under the License.
-->
-## @kie-tools-scripts/update-version
+## @kie-tools-scripts/update-kogito-version
-Updates the default value of `KOGITO_RUNTIME_version` of `packages/root-env`
and runs `pnpm bootstrap` at the end.
+Updates the default value of `KOGITO_RUNTIME_version` of `packages/root-env`,
optionally the Git refs of repositories `packages/drools-and-kogito`, and runs
`pnpm bootstrap` at the end.
### Usage
-`pnpm update-kogito-version-to --maven [new-version]`
+`pnpm update-kogito-version-to --maven {new-version} [--droolsGitRef {ref}
--optaplannerGitRef {ref} --kogitoRuntimesGitRef {ref} --kogitoAppsGitRef
{ref}]`
---
diff --git a/scripts/update-kogito-version/update_kogito_version.js
b/scripts/update-kogito-version/update_kogito_version.js
index df2396eb796..242602a588f 100755
--- a/scripts/update-kogito-version/update_kogito_version.js
+++ b/scripts/update-kogito-version/update_kogito_version.js
@@ -23,14 +23,32 @@ const execSync = require("child_process").execSync;
const newMavenVersion = process.argv[3];
if (!newMavenVersion) {
- console.error("Usage 'node update_kogito_version.js --maven [version]");
+ console.error(
+ "Usage 'node update_kogito_version.js --maven {version} [--droolsGitRef
{ref} --optaplannerGitRef {ref} --kogitoRuntimesGitRef {ref} --kogitoAppsGitRef
{ref}]"
+ );
return 1;
}
-if (process.argv[2] !== "--maven") {
+const newDroolsGitRef = process.argv[5] ?? "drools--n/a";
+const newOptaPlannerGitRef = process.argv[7] ?? "optaplanner--n/a";
+const newKogitoRuntimesGitRef = process.argv[9] ?? "kogito-runtimes--n/a";
+const newKogitoAppsGitRef = process.argv[11] ?? "kogito-apps--n/a";
+
+console.log(`[update-kogito-version] process.argv:`);
+console.log(process.argv);
+
+if (
+ process.argv[2] !== "--maven" ||
+ (process.argv[4] && process.argv[4] !== "--droolsGitRef") ||
+ (process.argv[6] && process.argv[6] !== "--optaplannerGitRef") ||
+ (process.argv[8] && process.argv[8] !== "--kogitoRuntimesGitRef") ||
+ (process.argv[10] && process.argv[10] !== "--kogitoAppsGitRef")
+) {
console.error("Arguments need to be passed in the correct order.");
console.error(`Argv: ${process.argv.join(", ")}`);
- console.error("Usage 'node update_kogito_version.js --maven [version]");
+ console.error(
+ "Usage 'node update_kogito_version.js --maven {version} [--droolsGitRef
{ref} --optaplannerGitRef {ref} --kogitoRuntimesGitRef {ref} --kogitoAppsGitRef
{ref}]"
+ );
process.exit(1);
}
@@ -48,6 +66,44 @@ try {
`KOGITO_RUNTIME_version: {\n default: "${newMavenVersion}"`
)
);
+ console.info("[update-kogito-version] Updating
'packages/drools-and-kogito/env/index.js'...");
+ const droolsAndKogitoEnvPath = path.resolve(__dirname,
"../../packages/drools-and-kogito/env/index.js");
+ fs.writeFileSync(
+ droolsAndKogitoEnvPath,
+ fs
+ .readFileSync(droolsAndKogitoEnvPath, "utf-8")
+ .replace(
+
/DROOLS_AND_KOGITO__droolsRepoGitRef:[\s\n]*{[\s\n]*default:[\s\n]*".*"/,
+ `DROOLS_AND_KOGITO__droolsRepoGitRef: {\n default:
"${newDroolsGitRef}"`
+ )
+ );
+ fs.writeFileSync(
+ droolsAndKogitoEnvPath,
+ fs
+ .readFileSync(droolsAndKogitoEnvPath, "utf-8")
+ .replace(
+
/DROOLS_AND_KOGITO__optaplannerRepoGitRef:[\s\n]*{[\s\n]*default:[\s\n]*".*"/,
+ `DROOLS_AND_KOGITO__optaplannerRepoGitRef: {\n default:
"${newOptaPlannerGitRef}"`
+ )
+ );
+ fs.writeFileSync(
+ droolsAndKogitoEnvPath,
+ fs
+ .readFileSync(droolsAndKogitoEnvPath, "utf-8")
+ .replace(
+
/DROOLS_AND_KOGITO__kogitoRuntimesRepoGitRef:[\s\n]*{[\s\n]*default:[\s\n]*".*"/,
+ `DROOLS_AND_KOGITO__kogitoRuntimesRepoGitRef: {\n default:
"${newKogitoRuntimesGitRef}"`
+ )
+ );
+ fs.writeFileSync(
+ droolsAndKogitoEnvPath,
+ fs
+ .readFileSync(droolsAndKogitoEnvPath, "utf-8")
+ .replace(
+
/DROOLS_AND_KOGITO__kogitoAppsRepoGitRef:[\s\n]*{[\s\n]*default:[\s\n]*".*"/,
+ `DROOLS_AND_KOGITO__kogitoAppsRepoGitRef: {\n default:
"${newKogitoAppsGitRef}"`
+ )
+ );
console.info(`[update-kogito-version] Bootstrapping with updated Kogito
version...`);
execSync(`pnpm bootstrap`, execOpts);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]