From 81a046dd4c7d2d93f7704767b5ed7307fe078679 Mon Sep 17 00:00:00 2001 From: i590648 Date: Thu, 5 Nov 2026 12:22:09 +0100 Subject: [PATCH 1/3] feat: [DevOps] Add minimal dependencies check (#388) Add a 'floor-deps' Maven profile that pins consumer-facing dependencies to their minimum supported versions, plus a CI step that compiles against them so the SDK cannot accidentally rely on newer-version APIs. Documents the verified minimum versions in the release notes. --- .github/workflows/continuous-integration.yaml | 5 ++ docs/release_notes.md | 2 +- pom.xml | 66 +++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index d23f043a7..dc9661d82 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -82,6 +82,11 @@ jobs: MVN_ARGS="${{ env.MVN_MULTI_THREADED_ARGS }} org.jacoco:jacoco-maven-plugin:prepare-agent surefire:test org.jacoco:jacoco-maven-plugin:report org.jacoco:jacoco-maven-plugin:check@default-check" mvn $MVN_ARGS + - name: "Check Minimal Dependencies" + run: | + MVN_ARGS="${{ env.MVN_MULTI_THREADED_ARGS }} ${{ env.MVN_SKIP_CI_PLUGINS }} test-compile -P floor-deps" + mvn $MVN_ARGS + - name: "Slack Notification" if: ${{ github.ref == 'refs/heads/main' && failure() }} uses: slackapi/slack-github-action@v4.0.0 diff --git a/docs/release_notes.md b/docs/release_notes.md index 606813d59..ac5561330 100644 --- a/docs/release_notes.md +++ b/docs/release_notes.md @@ -8,7 +8,7 @@ ### 🔧 Compatibility Notes -- +- The SDK is verified to build against these minimum supported dependency versions: SAP Cloud SDK `5.28.0`, Jackson `2.18.0`, Apache HttpComponents `5.2.1`, SLF4J `2.0.0`, Spring AI `1.1.0` (optional). ### ✨ New Functionality diff --git a/pom.xml b/pom.xml index 935260efc..ddc0b82e2 100644 --- a/pom.xml +++ b/pom.xml @@ -117,6 +117,13 @@ /tmp/baseline.jar ${project.build.directory}/${project.build.finalName}.jar + + 5.28.0 + 2.18.0 + 5.2.1 + 5.2.1 + 2.0.0 + 1.1.0 @@ -998,6 +1005,65 @@ https://gitbox.apache.org/repos/asf?p=maven-pmd-plugin.git;a=blob_plain;f=src/ma + + + floor-deps + + + + com.sap.cloud.sdk + sdk-bom + ${floor.cloud-sdk.version} + pom + import + + + + org.springframework.ai + spring-ai-bom + ${floor.spring-ai.version} + pom + import + + + com.fasterxml.jackson.core + jackson-databind + ${floor.jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${floor.jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${floor.jackson.version} + + + org.apache.httpcomponents.core5 + httpcore5 + ${floor.httpcomponents-core5.version} + + + org.apache.httpcomponents.core5 + httpcore5-h2 + ${floor.httpcomponents-core5.version} + + + org.apache.httpcomponents.client5 + httpclient5 + ${floor.httpcomponents-client5.version} + + + org.slf4j + slf4j-api + ${floor.slf4j.version} + + + + non-release From a3d9757e01843a29b9c5d0c575524cd7b8ccc79f Mon Sep 17 00:00:00 2001 From: i590648 Date: Fri, 6 Nov 2026 10:46:17 +0100 Subject: [PATCH 2/3] Apply batched suggestions from code review Added Jonas' suggestions test instead of test-compile, and clean test Co-authored-by: Jonas-Isr --- .github/workflows/continuous-integration.yaml | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index dc9661d82..58e24c3a7 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -84,7 +84,7 @@ jobs: - name: "Check Minimal Dependencies" run: | - MVN_ARGS="${{ env.MVN_MULTI_THREADED_ARGS }} ${{ env.MVN_SKIP_CI_PLUGINS }} test-compile -P floor-deps" + MVN_ARGS="${{ env.MVN_MULTI_THREADED_ARGS }} ${{ env.MVN_SKIP_CI_PLUGINS }} clean test -P floor-deps" mvn $MVN_ARGS - name: "Slack Notification" diff --git a/pom.xml b/pom.xml index ddc0b82e2..bc27a8b16 100644 --- a/pom.xml +++ b/pom.xml @@ -1007,7 +1007,7 @@ https://gitbox.apache.org/repos/asf?p=maven-pmd-plugin.git;a=blob_plain;f=src/ma + Run with: mvn test -P floor-deps --> floor-deps From 7dee7ba5e49ce0d5c189abb3a3fe1d3faf69d65e Mon Sep 17 00:00:00 2001 From: i590648 Date: Fri, 6 Nov 2026 14:20:45 +0100 Subject: [PATCH 3/3] fix: [DevOps] Correct HttpComponents floor to match Cloud SDK 5.28 (#388) The floor build now runs tests (not just compile), which revealed that SAP Cloud SDK 5.28.0 calls HttpClient5 5.4+ APIs at runtime (TlsSocketStrategy, RequestConfig.setProtocolUpgradeEnabled). The old 5.2.1 floor compiled but failed at runtime. Raise the HttpComponents floor to the versions Cloud SDK 5.28 brings in (httpcore5 5.4.2, httpclient5 5.6). --- docs/release_notes.md | 2 +- pom.xml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/release_notes.md b/docs/release_notes.md index ac5561330..55a6bcb29 100644 --- a/docs/release_notes.md +++ b/docs/release_notes.md @@ -8,7 +8,7 @@ ### 🔧 Compatibility Notes -- The SDK is verified to build against these minimum supported dependency versions: SAP Cloud SDK `5.28.0`, Jackson `2.18.0`, Apache HttpComponents `5.2.1`, SLF4J `2.0.0`, Spring AI `1.1.0` (optional). +- The SDK is verified to build against these minimum supported dependency versions: SAP Cloud SDK `5.28.0`, Jackson `2.18.0`, Apache HttpComponents `5.4.2`, SLF4J `2.0.0`, Spring AI `1.1.0` (optional). ### ✨ New Functionality diff --git a/pom.xml b/pom.xml index bc27a8b16..91b347deb 100644 --- a/pom.xml +++ b/pom.xml @@ -120,8 +120,9 @@ 5.28.0 2.18.0 - 5.2.1 - 5.2.1 + + 5.4.2 + 5.6 2.0.0 1.1.0