From 710e40057c10ed8fc60a9ddb5effc804bc1b11f8 Mon Sep 17 00:00:00 2001 From: Harry Pierson Date: Fri, 13 Nov 2026 15:10:03 -0800 Subject: [PATCH 1/2] Keep transact-enterprise at its released version when testing the demo apps The JVM demo apps now depend on dev.dbos:transact-enterprise (demo-apps #493). The demo-app job rewrites every dev.dbos coordinate to this build's version, but only this repository's artifacts are published at that version. transact-enterprise is built in the enterprise repository, so every app failed to resolve it, on every PR. The job now leaves transact-enterprise at the version the app names. The apps only load it when connecting to Conductor, which CI doesn't do. Gradle resolves its transitive dev.dbos:transact to this build's newer version. --- .github/workflows/test_demo_apps.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_demo_apps.yml b/.github/workflows/test_demo_apps.yml index a31e09841..f1a8ee656 100644 --- a/.github/workflows/test_demo_apps.yml +++ b/.github/workflows/test_demo_apps.yml @@ -102,7 +102,9 @@ jobs: working-directory: dbos-demo-apps/${{ matrix.app }} run: | VERSION="${{ needs.publish.outputs.version }}" - sed -i "s|dev\.dbos:\([^:]*\):[^\"']*|dev.dbos:\1:${VERSION}|g" "${{ matrix.build_file }}" + # Only this repository's artifacts are published at VERSION. transact-enterprise is built + # elsewhere, so it keeps the app's released version; the apps only load it with Conductor. + sed -i "/dev\.dbos:transact-enterprise:/! s|dev\.dbos:\([^:]*\):[^\"']*|dev.dbos:\1:${VERSION}|g" "${{ matrix.build_file }}" sed -i 's/repositories {/repositories { mavenLocal();/' "${{ matrix.build_file }}" - name: Build and test ${{ matrix.app }} From 7f2a7bc62a3dcf3336cfb9ee56218c74f12d470b Mon Sep 17 00:00:00 2001 From: Harry Pierson Date: Fri, 13 Nov 2026 15:30:28 -0800 Subject: [PATCH 2/2] Leave transact-enterprise out of the demo apps under test Keeping it at its released version did not work. transact-enterprise 1.3.0's Gradle metadata requires dev.dbos:transact strictly 1.3.0, so it cannot sit beside this build's transact, and resolution failed. The apps only need the enterprise artifact to connect to Conductor, when DBOS_CONDUCTOR_KEY is set. This job doesn't set it, so the dependency is removed from the build file under test, and the other dev.dbos coordinates are rewritten as before. --- .github/workflows/test_demo_apps.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_demo_apps.yml b/.github/workflows/test_demo_apps.yml index f1a8ee656..941fdddf4 100644 --- a/.github/workflows/test_demo_apps.yml +++ b/.github/workflows/test_demo_apps.yml @@ -103,8 +103,11 @@ jobs: run: | VERSION="${{ needs.publish.outputs.version }}" # Only this repository's artifacts are published at VERSION. transact-enterprise is built - # elsewhere, so it keeps the app's released version; the apps only load it with Conductor. - sed -i "/dev\.dbos:transact-enterprise:/! s|dev\.dbos:\([^:]*\):[^\"']*|dev.dbos:\1:${VERSION}|g" "${{ matrix.build_file }}" + # in the enterprise repository, and a released one requires its own transact version + # exactly, so it cannot sit beside this build. The apps only need it to connect to + # Conductor (DBOS_CONDUCTOR_KEY), which this job doesn't do, so it is left out. + sed -i '/dev\.dbos:transact-enterprise:/d' "${{ matrix.build_file }}" + sed -i "s|dev\.dbos:\([^:]*\):[^\"']*|dev.dbos:\1:${VERSION}|g" "${{ matrix.build_file }}" sed -i 's/repositories {/repositories { mavenLocal();/' "${{ matrix.build_file }}" - name: Build and test ${{ matrix.app }}