From d0b4a1138b5f7aaf2a23117c98498df0419b6c9a Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 09:27:59 +0100 Subject: [PATCH 1/6] Upgrade project keeper --- .github/workflows/broken_links_checker.yml | 4 +- .github/workflows/ci-build.yml | 43 +++++++++++------ .github/workflows/dependencies_check.yml | 13 ++++-- .github/workflows/dependencies_update.yml | 15 ++++-- .github/workflows/release.yml | 54 ++++++++++++++++------ dependencies.md | 9 ++-- doc/changes/changelog.md | 1 + doc/changes/changes_3.6.4.md | 51 ++++++++++++++++++++ pk_generated_parent.pom | 43 +++++++++-------- pom.xml | 40 +++++++--------- 10 files changed, 187 insertions(+), 86 deletions(-) create mode 100644 doc/changes/changes_3.6.4.md diff --git a/.github/workflows/broken_links_checker.yml b/.github/workflows/broken_links_checker.yml index 09e4bac..ee8df76 100644 --- a/.github/workflows/broken_links_checker.yml +++ b/.github/workflows/broken_links_checker.yml @@ -23,7 +23,7 @@ jobs: steps: - { id: checkout, - uses: actions/checkout@v4 + uses: actions/checkout@v5 } - id: configure-broken-links-checker name: Configure broken links checker @@ -36,7 +36,7 @@ jobs: '{"pattern": "^https?://projects.eclipse.org"}' \ ']}' > ./target/broken_links_checker.json - id: run-broken-links-checker - uses: gaurav-nelson/github-action-markdown-link-check@v1 + uses: tcort/github-action-markdown-link-check@v1 with: { use-quiet-mode: yes, use-verbose-mode: yes, diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 0036bff..aa273bf 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -3,7 +3,8 @@ name: CI Build on: push: branches: [ - main + main, + release/* ] pull_request: @@ -42,19 +43,22 @@ jobs: sudo rm -rf /usr/share/dotnet - name: Checkout the repository id: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: { fetch-depth: 0 } - name: Set up JDKs id: setup-java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- 11 17 cache: maven + server-id: ossindex + server-username: OSSINDEX_USERNAME + server-password: OSSINDEX_API_TOKEN - name: Cache SonarCloud packages id: cache-sonar uses: actions/cache@v4 @@ -74,6 +78,10 @@ jobs: mvn --batch-mode clean verify \ -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \ -DtrimStackTrace=false + env: { + OSSINDEX_USERNAME: '${{ secrets.OSSINDEX_USERNAME }}', + OSSINDEX_API_TOKEN: '${{ secrets.OSSINDEX_API_TOKEN }}' + } - name: Sonar analysis id: sonar-analysis if: ${{ env.SONAR_TOKEN != null }} @@ -110,7 +118,7 @@ jobs: '{"pattern": "^https?://(www.)?eclipse.org"}' \ '{"pattern": "^https?://projects.eclipse.org"}' \ ']}' > ./target/broken_links_checker.json - - uses: gaurav-nelson/github-action-markdown-link-check@v1 + - uses: tcort/github-action-markdown-link-check@v1 id: run-link-check with: { use-quiet-mode: yes, @@ -133,23 +141,28 @@ jobs: steps: - name: Checkout the repository id: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: { fetch-depth: 0 } - name: Set up JDK 17 id: setup-java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: { distribution: temurin, java-version: '17', - cache: maven + cache: maven, + server-id: ossindex, + server-username: OSSINDEX_USERNAME, + server-password: OSSINDEX_API_TOKEN } - - { - name: Run tests and build with Maven 17, - id: build-next-java, + - name: Run tests and build with Maven 17 + id: build-next-java run: mvn --batch-mode clean package -DtrimStackTrace=false -Djava.version=17 - } + env: { + OSSINDEX_USERNAME: '${{ secrets.OSSINDEX_USERNAME }}', + OSSINDEX_API_TOKEN: '${{ secrets.OSSINDEX_API_TOKEN }}' + } build: needs: [ build-and-test, @@ -170,13 +183,13 @@ jobs: steps: - name: Checkout the repository id: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: { fetch-depth: 0 } - name: Set up JDKs id: setup-java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- @@ -185,7 +198,7 @@ jobs: cache: maven - name: Check if release is needed id: check-release - if: ${{ github.ref == 'refs/heads/main' }} + if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') }} run: | if mvn --batch-mode com.exasol:project-keeper-maven-plugin:verify-release --projects .; then echo "### ✅ Release preconditions met, start release" >> "$GITHUB_STEP_SUMMARY" @@ -200,7 +213,7 @@ jobs: } start_release: needs: build - if: ${{ github.ref == 'refs/heads/main' && needs.build.outputs.release-required == 'true' }} + if: ${{ needs.build.outputs.release-required == 'true' }} concurrency: { cancel-in-progress: false, group: release diff --git a/.github/workflows/dependencies_check.yml b/.github/workflows/dependencies_check.yml index 41c1253..b0877fc 100644 --- a/.github/workflows/dependencies_check.yml +++ b/.github/workflows/dependencies_check.yml @@ -28,17 +28,20 @@ jobs: - { name: Checkout, id: checkout, - uses: actions/checkout@v4 + uses: actions/checkout@v5 } - name: Set up JDKs id: setup-jdks - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- 11 17 cache: maven + server-id: ossindex + server-username: OSSINDEX_USERNAME + server-password: OSSINDEX_API_TOKEN - name: Generate ossindex report id: ossindex-report run: | @@ -46,9 +49,13 @@ jobs: org.sonatype.ossindex.maven:ossindex-maven-plugin:audit-aggregate \ -Dossindex.reportFile=$(pwd)/ossindex-report.json \ -Dossindex.fail=false + env: { + OSSINDEX_USERNAME: '${{ secrets.OSSINDEX_USERNAME }}', + OSSINDEX_API_TOKEN: '${{ secrets.OSSINDEX_API_TOKEN }}' + } - name: Create GitHub Issues id: create-security-issues - uses: exasol/python-toolbox/.github/actions/security-issues@1.1.0 + uses: exasol/python-toolbox/.github/actions/security-issues@1.9.0 with: { format: maven, command: cat ossindex-report.json, diff --git a/.github/workflows/dependencies_update.yml b/.github/workflows/dependencies_update.yml index 007215d..2ba2785 100644 --- a/.github/workflows/dependencies_update.yml +++ b/.github/workflows/dependencies_update.yml @@ -8,6 +8,15 @@ on: required: true, type: string } + secrets: + INTEGRATION_TEAM_SLACK_NOTIFICATION_WEBHOOK: { + description: Slack webhook URL for notifications about failed builds., + required: true + } + INTEGRATION_TEAM_SECURITY_UPDATES_WEBHOOK: { + description: Slack webhook URL for notifications about new Pull Requests., + required: true + } workflow_dispatch: null jobs: update_dependencies: @@ -25,14 +34,14 @@ jobs: cancel-in-progress: false } steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 id: checkout with: { fetch-depth: 0 } - name: Set up JDKs id: setup-jdks - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- @@ -49,7 +58,7 @@ jobs: - name: Fail if not running on a branch id: check-branch if: ${{ !startsWith(github.ref, 'refs/heads/') }} - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | core.setFailed('Not running on a branch, github.ref is ${{ github.ref }}. Please start this workflow only on main or a branch') diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index db9d10a..dbc1ea2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,6 +15,27 @@ on: type: boolean, default: true } + secrets: + OSSRH_GPG_SECRET_KEY: { + description: Base64 encoded GPG secret key for signing artifacts for deployment to Maven Central., + required: false + } + OSSRH_GPG_SECRET_KEY_PASSWORD: { + description: 'Password for the GPG key. Must not contain special characters, only letters and numbers.', + required: false + } + MAVEN_CENTRAL_PORTAL_USERNAME: { + description: Username for the Maven Central Portal., + required: false + } + MAVEN_CENTRAL_PORTAL_TOKEN: { + description: Password for the Maven Central Portal., + required: false + } + INTEGRATION_TEAM_SLACK_NOTIFICATION_WEBHOOK: { + description: Slack webhook URL for notifications about failed and succesful releases., + required: true + } workflow_dispatch: inputs: skip-maven-central: { @@ -54,14 +75,14 @@ jobs: steps: - name: Checkout the repository id: checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: { fetch-depth: 0 } - name: Set up Maven Central Repository id: configure-maven-central-credentials if: ${{ true }} - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- @@ -76,27 +97,28 @@ jobs: - name: Set up JDKs id: setup-jdks if: ${{ ! true }} - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: |- 11 17 cache: maven - - name: Fail if not running on main branch - id: check-main-branch - if: ${{ github.ref != 'refs/heads/main' }} - uses: actions/github-script@v7 + - name: Fail if not running on main or release branch + id: check-main-or-release-branch + if: ${{ github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/release/') }} + uses: actions/github-script@v8 with: script: | - core.setFailed('Not running on main branch, github.ref is ${{ github.ref }}. Please start this workflow only on main') + core.setFailed('Not running on main or release branch, github.ref is ${{ github.ref }}. Please start this workflow only on main or a branch starting with release/') - name: Check CI build of this commit succeeded id: check-ci-build-status if: ${{ ! inputs.started-from-ci }} run: | echo "Commit SHA: $COMMIT_SHA" - gh run list --workflow ci-build.yml --branch main --event push --commit $COMMIT_SHA - ci_build_status=$(gh run list --workflow ci-build.yml --branch main --event push --commit $COMMIT_SHA --json conclusion --template '{{range .}}{{.conclusion}}{{"\n"}}{{end}}') + echo "Branch: $BRANCH_NAME" + gh run list --workflow ci-build.yml --branch $BRANCH_NAME --event push --commit $COMMIT_SHA + ci_build_status=$(gh run list --workflow ci-build.yml --branch $BRANCH_NAME --event push --commit $COMMIT_SHA --json conclusion --template '{{range .}}{{.conclusion}}{{"\n"}}{{end}}') echo "CI build status at commit $COMMIT_SHA was '$ci_build_status'" if [[ "$ci_build_status" != "success" ]]; then gh run list --workflow ci-build.yml --commit $COMMIT_SHA >> $GITHUB_STEP_SUMMARY @@ -106,7 +128,8 @@ jobs: fi env: { COMMIT_SHA: '${{ github.sha }}', - GH_TOKEN: '${{ github.token }}' + GH_TOKEN: '${{ github.token }}', + BRANCH_NAME: '${{ github.ref_name }}' } - name: Verify release preconditions id: verify-release @@ -119,7 +142,7 @@ jobs: - { name: Build project, id: build, - run: mvn --batch-mode -DskipTests clean verify + run: mvn --batch-mode -DskipTests -Dossindex.skip=true clean verify } - { name: List secret GPG keys, @@ -132,7 +155,7 @@ jobs: if: ${{ true && (! inputs.skip-maven-central) }} run: | echo "#### Maven Central Release" >> "$GITHUB_STEP_SUMMARY" - mvn --batch-mode -Dgpg.skip=false -DskipTests deploy \ + mvn --batch-mode -Dgpg.skip=false -DskipTests -Dossindex.skip=true deploy \ -Dcentral-publishing.deploymentName="Auto release of repo ${{ github.repository }} using PK release.yml" \ -Dcentral-publishing.autoPublish=${{ inputs.maven-central-auto-publish }} if [[ "${{ inputs.maven-central-auto-publish }}" == "true" ]]; then @@ -185,7 +208,7 @@ jobs: echo "* \`$file\`" >> "$GITHUB_STEP_SUMMARY" done echo "" >> "$GITHUB_STEP_SUMMARY" - release_url=$(gh release create --latest --title "$TITLE" --notes "$NOTES" --target main $TAG "${artifacts_array[@]}") + release_url=$(gh release create --latest --title "$TITLE" --notes "$NOTES" --target $BRANCH_NAME $TAG "${artifacts_array[@]}") echo "Created release $TAG with title '$TITLE' at $release_url ✅" >> "$GITHUB_STEP_SUMMARY" echo "release-url=$release_url" >> "$GITHUB_OUTPUT" @@ -207,7 +230,8 @@ jobs: ADDITIONAL_TAGS: '${{ steps.verify-release.outputs.additional-release-tags }}', NOTES: '${{ steps.verify-release.outputs.release-notes }}', TITLE: '${{ steps.verify-release.outputs.release-title }}', - ARTIFACTS: '${{ steps.artifact-checksum.outputs.artifacts }}' + ARTIFACTS: '${{ steps.artifact-checksum.outputs.artifacts }}', + BRANCH_NAME: '${{ github.ref_name }}' } - name: Report failure Status to Slack channel id: report-failure-status-slack diff --git a/dependencies.md b/dependencies.md index 341de22..6232d2b 100644 --- a/dependencies.md +++ b/dependencies.md @@ -24,7 +24,6 @@ | [Testcontainers :: JDBC :: Oracle XE][15] | [MIT][16] | | [Matcher for SQL Result Sets][17] | [MIT License][18] | | [Hamcrest][19] | [BSD-3-Clause][20] | -| [JUnit Jupiter API][21] | [Eclipse Public License v2.0][12] | | [JUnit Jupiter Params][21] | [Eclipse Public License v2.0][12] | | [mockito-junit-jupiter][22] | [MIT][23] | | [EqualsVerifier \| release normal jar][24] | [Apache License, Version 2.0][25] | @@ -42,7 +41,7 @@ | [Apache Maven Toolchains Plugin][34] | [Apache-2.0][25] | | [Apache Maven Compiler Plugin][35] | [Apache-2.0][25] | | [Apache Maven Enforcer Plugin][36] | [Apache-2.0][25] | -| [Maven Flatten Plugin][37] | [Apache Software Licenese][25] | +| [Maven Flatten Plugin][37] | [Apache Software License][25] | | [OpenFastTrace Maven Plugin][38] | [GNU General Public License v3.0][39] | | [Project Keeper Maven plugin][40] | [The MIT License][41] | | [org.sonatype.ossindex.maven:ossindex-maven-plugin][42] | [ASL2][43] | @@ -65,8 +64,8 @@ [1]: https://github.com/exasol/db-fundamentals-java/blob/main/LICENSE [2]: https://github.com/exasol/error-reporting-java/ [3]: https://github.com/exasol/error-reporting-java/blob/main/LICENSE -[4]: http://www.exasol.com/ -[5]: https://repo1.maven.org/maven2/com/exasol/exasol-jdbc/25.2.3/exasol-jdbc-25.2.3-license.txt +[4]: https://www.exasol.com/ +[5]: https://repo1.maven.org/maven2/com/exasol/exasol-jdbc/25.2.5/exasol-jdbc-25.2.5-license.txt [6]: http://dev.mysql.com/doc/connector-j/en/ [7]: https://jdbc.postgresql.org [8]: https://jdbc.postgresql.org/license/ @@ -82,7 +81,7 @@ [18]: https://github.com/exasol/hamcrest-resultset-matcher/blob/main/LICENSE [19]: http://hamcrest.org/JavaHamcrest/ [20]: https://raw.githubusercontent.com/hamcrest/JavaHamcrest/master/LICENSE -[21]: https://junit.org/junit5/ +[21]: https://junit.org/ [22]: https://github.com/mockito/mockito [23]: https://opensource.org/licenses/MIT [24]: https://www.jqno.nl/equalsverifier diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 0276f39..3d1c082 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,5 +1,6 @@ # Changes +* [3.6.4](changes_3.6.4.md) * [3.6.3](changes_3.6.3.md) * [3.6.2](changes_3.6.2.md) * [3.6.1](changes_3.6.1.md) diff --git a/doc/changes/changes_3.6.4.md b/doc/changes/changes_3.6.4.md new file mode 100644 index 0000000..f02e506 --- /dev/null +++ b/doc/changes/changes_3.6.4.md @@ -0,0 +1,51 @@ +# Test Database Builder for Java 3.6.4, released 2025-??-?? + +Code name: + +## Summary + +## Features + +* ISSUE_NUMBER: description + +## Dependency Updates + +### Test Dependency Updates + +* Updated `com.exasol:exasol-jdbc:25.2.3` to `25.2.5` +* Updated `com.exasol:exasol-testcontainers:7.1.7` to `7.2.0` +* Updated `com.exasol:hamcrest-resultset-matcher:1.7.1` to `1.7.2` +* Updated `com.mysql:mysql-connector-j:9.3.0` to `9.5.0` +* Updated `com.oracle.database.jdbc:ojdbc11:23.8.0.25.04` to `23.26.0.0.0` +* Removed `org.junit.jupiter:junit-jupiter-api:5.13.1` +* Updated `org.junit.jupiter:junit-jupiter-params:5.13.1` to `5.13.4` +* Updated `org.mockito:mockito-junit-jupiter:5.18.0` to `5.20.0` +* Updated `org.postgresql:postgresql:42.7.7` to `42.7.8` +* Removed `org.testcontainers:junit-jupiter:1.21.1` +* Removed `org.testcontainers:mysql:1.21.1` +* Removed `org.testcontainers:oracle-xe:1.21.1` +* Removed `org.testcontainers:postgresql:1.21.1` +* Added `org.testcontainers:testcontainers-junit-jupiter:2.0.1` +* Added `org.testcontainers:testcontainers-mysql:2.0.1` +* Added `org.testcontainers:testcontainers-oracle-xe:2.0.1` +* Added `org.testcontainers:testcontainers-postgresql:2.0.1` + +### Plugin Dependency Updates + +* Updated `com.exasol:error-code-crawler-maven-plugin:2.0.4` to `2.0.5` +* Updated `com.exasol:project-keeper-maven-plugin:5.2.3` to `5.4.3` +* Updated `com.exasol:quality-summarizer-maven-plugin:0.2.0` to `0.2.1` +* Updated `io.github.git-commit-id:git-commit-id-maven-plugin:9.0.1` to `9.0.2` +* Updated `org.apache.maven.plugins:maven-artifact-plugin:3.6.0` to `3.6.1` +* Updated `org.apache.maven.plugins:maven-clean-plugin:3.4.1` to `3.5.0` +* Updated `org.apache.maven.plugins:maven-compiler-plugin:3.14.0` to `3.14.1` +* Updated `org.apache.maven.plugins:maven-enforcer-plugin:3.5.0` to `3.6.2` +* Updated `org.apache.maven.plugins:maven-failsafe-plugin:3.5.3` to `3.5.4` +* Updated `org.apache.maven.plugins:maven-gpg-plugin:3.2.7` to `3.2.8` +* Updated `org.apache.maven.plugins:maven-javadoc-plugin:3.11.2` to `3.12.0` +* Updated `org.apache.maven.plugins:maven-surefire-plugin:3.5.3` to `3.5.4` +* Updated `org.codehaus.mojo:flatten-maven-plugin:1.7.0` to `1.7.3` +* Updated `org.codehaus.mojo:versions-maven-plugin:2.18.0` to `2.19.1` +* Updated `org.jacoco:jacoco-maven-plugin:0.8.13` to `0.8.14` +* Updated `org.sonarsource.scanner.maven:sonar-maven-plugin:5.1.0.4751` to `5.2.0.4988` +* Updated `org.sonatype.central:central-publishing-maven-plugin:0.7.0` to `0.9.0` diff --git a/pk_generated_parent.pom b/pk_generated_parent.pom index 47f0147..9dce817 100644 --- a/pk_generated_parent.pom +++ b/pk_generated_parent.pom @@ -3,7 +3,7 @@ 4.0.0 com.exasol test-db-builder-java-generated-parent - 3.6.3 + 3.6.4 pom UTF-8 @@ -45,7 +45,7 @@ org.apache.maven.plugins maven-clean-plugin - 3.4.1 + 3.5.0 org.apache.maven.plugins @@ -65,7 +65,7 @@ org.sonarsource.scanner.maven sonar-maven-plugin - 5.1.0.4751 + 5.2.0.4988 org.apache.maven.plugins @@ -89,7 +89,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.0 + 3.14.1 ${java.version} ${java.version} @@ -103,7 +103,7 @@ org.apache.maven.plugins maven-enforcer-plugin - 3.5.0 + 3.6.2 enforce-maven @@ -126,7 +126,7 @@ org.codehaus.mojo flatten-maven-plugin - 1.7.0 + 1.7.3 true oss @@ -152,6 +152,9 @@ org.sonatype.ossindex.maven ossindex-maven-plugin 3.2.0 + + ossindex + audit @@ -165,7 +168,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.3 + 3.5.4 @@ -176,7 +179,7 @@ org.codehaus.mojo versions-maven-plugin - 2.18.0 + 2.19.1 display-updates @@ -231,7 +234,7 @@ org.apache.maven.plugins maven-artifact-plugin - 3.6.0 + 3.6.1 check-build-plan @@ -253,7 +256,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.7 + 3.2.8 sign-artifacts @@ -273,9 +276,9 @@ org.apache.maven.plugins maven-source-plugin - + 3.2.1 @@ -289,7 +292,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.11.2 + 3.12.0 attach-javadocs @@ -311,7 +314,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.7.0 + 0.9.0 true maven-central-portal @@ -325,7 +328,7 @@ org.apache.maven.plugins maven-failsafe-plugin - 3.5.3 + 3.5.4 -Djava.util.logging.config.file=src/test/resources/logging.properties ${argLine} @@ -345,7 +348,7 @@ org.jacoco jacoco-maven-plugin - 0.8.13 + 0.8.14 prepare-agent @@ -386,7 +389,7 @@ com.exasol quality-summarizer-maven-plugin - 0.2.0 + 0.2.1 summarize-metrics @@ -399,7 +402,7 @@ com.exasol error-code-crawler-maven-plugin - 2.0.4 + 2.0.5 verify @@ -412,7 +415,7 @@ io.github.git-commit-id git-commit-id-maven-plugin - 9.0.1 + 9.0.2 get-the-git-infos diff --git a/pom.xml b/pom.xml index d7525ad..6251e8d 100644 --- a/pom.xml +++ b/pom.xml @@ -1,37 +1,37 @@ - + 4.0.0 test-db-builder-java - 3.6.3 + 3.6.4 Test Database Builder for Java pom.xml https://github.com/exasol/test-db-builder-java/ - 1.21.1 + 2.0.1 com.exasol exasol-jdbc - 25.2.3 + 25.2.5 test com.mysql mysql-connector-j - 9.3.0 + 9.5.0 test org.postgresql postgresql - 42.7.7 + 42.7.8 test com.oracle.database.jdbc ojdbc11 - 23.8.0.25.04 + 23.26.0.0.0 test @@ -55,37 +55,37 @@ com.exasol exasol-testcontainers - 7.1.7 + 7.2.0 test org.testcontainers - junit-jupiter + testcontainers-junit-jupiter ${test.containers.version} test org.testcontainers - mysql + testcontainers-mysql ${test.containers.version} test org.testcontainers - postgresql + testcontainers-postgresql ${test.containers.version} test org.testcontainers - oracle-xe + testcontainers-oracle-xe ${test.containers.version} test com.exasol hamcrest-resultset-matcher - 1.7.1 + 1.7.2 test @@ -94,22 +94,16 @@ 3.0 test - - org.junit.jupiter - junit-jupiter-api - 5.13.1 - test - org.junit.jupiter junit-jupiter-params - 5.13.1 + 5.13.4 test org.mockito mockito-junit-jupiter - 5.18.0 + 5.20.0 test @@ -153,7 +147,7 @@ com.exasol project-keeper-maven-plugin - 5.2.3 + 5.4.3 @@ -187,7 +181,7 @@ test-db-builder-java-generated-parent com.exasol - 3.6.3 + 3.6.4 pk_generated_parent.pom From c570f58b6e64012a96e3654623519d8a4293d9bb Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 09:30:01 +0100 Subject: [PATCH 2/6] Add changelog entry --- doc/changes/changes_3.6.4.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/doc/changes/changes_3.6.4.md b/doc/changes/changes_3.6.4.md index f02e506..99e7ee4 100644 --- a/doc/changes/changes_3.6.4.md +++ b/doc/changes/changes_3.6.4.md @@ -1,12 +1,10 @@ -# Test Database Builder for Java 3.6.4, released 2025-??-?? +# Test Database Builder for Java 3.6.4, released 2025-10-30 -Code name: +Code name: Upgrade Project Keeper ## Summary -## Features - -* ISSUE_NUMBER: description +This release upgrades project keeper and dependencies. ## Dependency Updates From d9ef5ca7cbaaee8e9dc688556ca25071be19c81e Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 09:39:19 +0100 Subject: [PATCH 3/6] Fix deprecation warnings --- dependencies.md | 1 + doc/changes/changes_3.6.4.md | 2 +- pom.xml | 8 +++++++- .../mysql/MySQLDatabaseObjectCreationAndDeletionIT.java | 6 +++--- .../PostgreSqlDatabaseObjectCreationAndDeletionIT.java | 6 +++--- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/dependencies.md b/dependencies.md index 6232d2b..f70b7c3 100644 --- a/dependencies.md +++ b/dependencies.md @@ -24,6 +24,7 @@ | [Testcontainers :: JDBC :: Oracle XE][15] | [MIT][16] | | [Matcher for SQL Result Sets][17] | [MIT License][18] | | [Hamcrest][19] | [BSD-3-Clause][20] | +| [JUnit Jupiter API][21] | [Eclipse Public License v2.0][12] | | [JUnit Jupiter Params][21] | [Eclipse Public License v2.0][12] | | [mockito-junit-jupiter][22] | [MIT][23] | | [EqualsVerifier \| release normal jar][24] | [Apache License, Version 2.0][25] | diff --git a/doc/changes/changes_3.6.4.md b/doc/changes/changes_3.6.4.md index 99e7ee4..606c549 100644 --- a/doc/changes/changes_3.6.4.md +++ b/doc/changes/changes_3.6.4.md @@ -15,7 +15,7 @@ This release upgrades project keeper and dependencies. * Updated `com.exasol:hamcrest-resultset-matcher:1.7.1` to `1.7.2` * Updated `com.mysql:mysql-connector-j:9.3.0` to `9.5.0` * Updated `com.oracle.database.jdbc:ojdbc11:23.8.0.25.04` to `23.26.0.0.0` -* Removed `org.junit.jupiter:junit-jupiter-api:5.13.1` +* Updated `org.junit.jupiter:junit-jupiter-api:5.13.1` to `5.13.4` * Updated `org.junit.jupiter:junit-jupiter-params:5.13.1` to `5.13.4` * Updated `org.mockito:mockito-junit-jupiter:5.18.0` to `5.20.0` * Updated `org.postgresql:postgresql:42.7.7` to `42.7.8` diff --git a/pom.xml b/pom.xml index 6251e8d..1de9c7a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,4 @@ - + 4.0.0 test-db-builder-java @@ -94,6 +94,12 @@ 3.0 test + + org.junit.jupiter + junit-jupiter-api + 5.13.4 + test + org.junit.jupiter junit-jupiter-params diff --git a/src/test/java/com/exasol/dbbuilder/dialects/mysql/MySQLDatabaseObjectCreationAndDeletionIT.java b/src/test/java/com/exasol/dbbuilder/dialects/mysql/MySQLDatabaseObjectCreationAndDeletionIT.java index 730528c..1667554 100644 --- a/src/test/java/com/exasol/dbbuilder/dialects/mysql/MySQLDatabaseObjectCreationAndDeletionIT.java +++ b/src/test/java/com/exasol/dbbuilder/dialects/mysql/MySQLDatabaseObjectCreationAndDeletionIT.java @@ -17,9 +17,9 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.testcontainers.containers.JdbcDatabaseContainer.NoDriverFoundException; -import org.testcontainers.containers.MySQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.mysql.MySQLContainer; import com.exasol.dbbuilder.dialects.*; import com.exasol.errorreporting.ExaError; @@ -28,10 +28,10 @@ @Testcontainers // [itest->dsn~mysql-object-factory~1] class MySQLDatabaseObjectCreationAndDeletionIT extends AbstractDatabaseObjectCreationAndDeletionIT { - private static final String MYSQL_DOCKER_IMAGE_REFERENCE = "mysql:9.0.1"; + private static final String MYSQL_DOCKER_IMAGE_REFERENCE = "mysql:9.5.0"; @Container @SuppressWarnings("resource") // Will be closed by JUnit rule - private static final MySQLContainer container = new MySQLContainer<>(MYSQL_DOCKER_IMAGE_REFERENCE) + private static final MySQLContainer container = new MySQLContainer(MYSQL_DOCKER_IMAGE_REFERENCE) .withUsername("root").withPassword(""); @Override diff --git a/src/test/java/com/exasol/dbbuilder/dialects/postgres/PostgreSqlDatabaseObjectCreationAndDeletionIT.java b/src/test/java/com/exasol/dbbuilder/dialects/postgres/PostgreSqlDatabaseObjectCreationAndDeletionIT.java index c28ab3a..4767326 100644 --- a/src/test/java/com/exasol/dbbuilder/dialects/postgres/PostgreSqlDatabaseObjectCreationAndDeletionIT.java +++ b/src/test/java/com/exasol/dbbuilder/dialects/postgres/PostgreSqlDatabaseObjectCreationAndDeletionIT.java @@ -4,16 +4,16 @@ import java.sql.SQLException; import org.hamcrest.Matcher; -import org.testcontainers.containers.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.postgresql.PostgreSQLContainer; import com.exasol.dbbuilder.dialects.*; import com.exasol.errorreporting.ExaError; class PostgreSqlDatabaseObjectCreationAndDeletionIT extends AbstractDatabaseObjectCreationAndDeletionIT { - private static final String POSTGRES_DOCKER_IMAGE_REFERENCE = "postgres:16.4-bullseye"; + private static final String POSTGRES_DOCKER_IMAGE_REFERENCE = "postgres:18.0"; @Container - private static final PostgreSQLContainer> container = new PostgreSQLContainer<>( + private static final PostgreSQLContainer container = new PostgreSQLContainer( POSTGRES_DOCKER_IMAGE_REFERENCE); @Override From 7a45435ba122eeac1647fb3961583175f7468a3a Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 10:16:43 +0100 Subject: [PATCH 4/6] Remove link replacements --- .project-keeper.yml | 2 -- dependencies.md | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.project-keeper.yml b/.project-keeper.yml index fd6efd7..b89e123 100644 --- a/.project-keeper.yml +++ b/.project-keeper.yml @@ -5,5 +5,3 @@ sources: - maven_central - integration_tests linkReplacements: - - https://www.mojohaus.org/flatten-maven-plugin/flatten-maven-plugin|https://www.mojohaus.org/flatten-maven-plugin - - https://jdbc.postgresql.org/about/license.html|https://jdbc.postgresql.org/license/ diff --git a/dependencies.md b/dependencies.md index f70b7c3..90ebf60 100644 --- a/dependencies.md +++ b/dependencies.md @@ -69,7 +69,7 @@ [5]: https://repo1.maven.org/maven2/com/exasol/exasol-jdbc/25.2.5/exasol-jdbc-25.2.5-license.txt [6]: http://dev.mysql.com/doc/connector-j/en/ [7]: https://jdbc.postgresql.org -[8]: https://jdbc.postgresql.org/license/ +[8]: https://jdbc.postgresql.org/about/license.html [9]: https://www.oracle.com/database/technologies/maven-central-guide.html [10]: https://www.oracle.com/downloads/licenses/oracle-free-license.html [11]: https://junit-pioneer.org/ From b7c6d74590523ce9b11b99612475344b934a2d86 Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 10:19:15 +0100 Subject: [PATCH 5/6] Fix creating VS --- .github/workflows/ci-build.yml | 5 +++++ .project-keeper.yml | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index aa273bf..14dfd3a 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -196,6 +196,11 @@ jobs: 11 17 cache: maven + - { + name: Fix VM Crash in UDFs, + id: fix-vm-crash, + run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + } - name: Check if release is needed id: check-release if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') }} diff --git a/.project-keeper.yml b/.project-keeper.yml index b89e123..daeac18 100644 --- a/.project-keeper.yml +++ b/.project-keeper.yml @@ -5,3 +5,14 @@ sources: - maven_central - integration_tests linkReplacements: +build: + workflows: + - name: ci-build.yml + stepCustomizations: + - action: INSERT_AFTER + job: build + stepId: setup-java + content: + name: Fix VM Crash in UDFs + id: fix-vm-crash + run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 From 152fbe9a9e166f3b6d30721390fb2f75ff60cc32 Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 30 Oct 2025 10:27:21 +0100 Subject: [PATCH 6/6] Fix build --- .github/workflows/ci-build.yml | 10 +++++----- .project-keeper.yml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index 14dfd3a..053ac4f 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -72,6 +72,11 @@ jobs: id: enable-testcontainer-reuse, run: echo 'testcontainers.reuse.enable=true' > "$HOME/.testcontainers.properties" } + - { + name: Fix VM Crash in UDFs, + id: fix-vm-crash, + run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 + } - name: Run tests and build with Maven id: build-pk-verify run: | @@ -196,11 +201,6 @@ jobs: 11 17 cache: maven - - { - name: Fix VM Crash in UDFs, - id: fix-vm-crash, - run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 - } - name: Check if release is needed id: check-release if: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') }} diff --git a/.project-keeper.yml b/.project-keeper.yml index daeac18..23e0dd9 100644 --- a/.project-keeper.yml +++ b/.project-keeper.yml @@ -10,8 +10,8 @@ build: - name: ci-build.yml stepCustomizations: - action: INSERT_AFTER - job: build - stepId: setup-java + job: build-and-test + stepId: enable-testcontainer-reuse content: name: Fix VM Crash in UDFs id: fix-vm-crash