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 2dd25b6..08bb712 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: @@ -32,11 +33,12 @@ jobs: fail-fast: false matrix: exasol_db_version: [ - 8.34.0 + 2025.1.3, + 8.29.12 ] env: { - DEFAULT_EXASOL_DB_VERSION: 8.34.0 + DEFAULT_EXASOL_DB_VERSION: 2025.1.3 } steps: - name: Free Disk Space @@ -47,19 +49,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 @@ -86,6 +91,8 @@ jobs: -DtrimStackTrace=false \ -Dcom.exasol.dockerdb.image=${{ matrix.exasol_db_version }} env: { + OSSINDEX_USERNAME: '${{ secrets.OSSINDEX_USERNAME }}', + OSSINDEX_API_TOKEN: '${{ secrets.OSSINDEX_API_TOKEN }}', EXASOL_DB_VERSION: '${{ matrix.exasol_db_version }}' } - name: Sonar analysis @@ -124,7 +131,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, @@ -147,23 +154,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: [ matrix-build, @@ -184,13 +196,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: |- @@ -199,7 +211,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" @@ -214,7 +226,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/.project-keeper.yml b/.project-keeper.yml index bab3287..2344296 100644 --- a/.project-keeper.yml +++ b/.project-keeper.yml @@ -7,8 +7,9 @@ sources: build: runnerOs: ubuntu-24.04 exasolDbVersions: - - "8.34.0" - # UDFs in Exasol 7.1 with Ubuntu 20.04 will be fixed in the next Docker-DB release + - "2025.1.3" + - "8.29.12" + # UDFs in Exasol 7.1 will be fixed in the next Docker-DB release # - "7.1.30" workflows: - name: ci-build.yml diff --git a/dependencies.md b/dependencies.md index b8962ce..e982d45 100644 --- a/dependencies.md +++ b/dependencies.md @@ -18,7 +18,6 @@ | Dependency | License | | ----------------------------------------------- | --------------------------------- | | [JaCoCo :: Agent][5] | [EPL-2.0][6] | -| [JUnit Jupiter Engine][15] | [Eclipse Public License v2.0][16] | | [JUnit Jupiter Params][15] | [Eclipse Public License v2.0][16] | | [mockito-junit-jupiter][17] | [MIT][18] | | [Hamcrest][19] | [BSD-3-Clause][20] | @@ -47,7 +46,7 @@ | [Project Keeper Maven plugin][38] | [The MIT License][39] | | [Apache Maven Compiler Plugin][40] | [Apache-2.0][12] | | [Apache Maven Enforcer Plugin][41] | [Apache-2.0][12] | -| [Maven Flatten Plugin][42] | [Apache Software Licenese][12] | +| [Maven Flatten Plugin][42] | [Apache Software License][12] | | [org.sonatype.ossindex.maven:ossindex-maven-plugin][43] | [ASL2][44] | | [Maven Surefire Plugin][45] | [Apache-2.0][12] | | [Versions Maven Plugin][46] | [Apache License, Version 2.0][12] | @@ -79,7 +78,7 @@ [12]: https://www.apache.org/licenses/LICENSE-2.0.txt [13]: http://www.slf4j.org [14]: https://opensource.org/license/mit -[15]: https://junit.org/junit5/ +[15]: https://junit.org/ [16]: https://www.eclipse.org/legal/epl-v20.html [17]: https://github.com/mockito/mockito [18]: https://opensource.org/licenses/MIT diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index 0df245b..85c329d 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,5 +1,6 @@ # Changes +* [0.6.18](changes_0.6.18.md) * [0.6.17](changes_0.6.17.md) * [0.6.16](changes_0.6.16.md) * [0.6.15](changes_0.6.15.md) diff --git a/doc/changes/changes_0.6.18.md b/doc/changes/changes_0.6.18.md new file mode 100644 index 0000000..81c977c --- /dev/null +++ b/doc/changes/changes_0.6.18.md @@ -0,0 +1,46 @@ +# Udf Debugging Java 0.6.18, released 2025-10-31 + +Code name: Upgrade Project Keeper and Dependencies + +## Summary + +This release upgrades Project Keeper and dependencies. + +## Dependency Updates + +### Compile Dependency Updates + +* Updated `com.exasol:bucketfs-java:3.2.1` to `4.0.0` +* Updated `com.exasol:error-reporting-java:1.0.1` to `1.0.2` +* Updated `org.jacoco:org.jacoco.core:0.8.13` to `0.8.14` + +### Test Dependency Updates + +* Updated `com.exasol:exasol-testcontainers:7.1.5` to `7.2.0` +* Updated `com.exasol:test-db-builder-java:3.6.1` to `3.6.4` +* Updated `org.jacoco:org.jacoco.agent:0.8.13` to `0.8.14` +* Removed `org.junit.jupiter:junit-jupiter-engine:5.13.0` +* Updated `org.junit.jupiter:junit-jupiter-params:5.13.0` to `5.13.4` +* Updated `org.mockito:mockito-junit-jupiter:5.18.0` to `5.20.0` +* Removed `org.testcontainers:junit-jupiter:1.21.1` +* Added `org.testcontainers:testcontainers-junit-jupiter: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 b55af02..3215806 100644 --- a/pk_generated_parent.pom +++ b/pk_generated_parent.pom @@ -3,7 +3,7 @@ 4.0.0 com.exasol udf-debugging-java-generated-parent - 0.6.17 + 0.6.18 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 eb5ed0d..a83255b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,14 +1,13 @@ - + 4.0.0 udf-debugging-java - 0.6.17 + 0.6.18 udf-debugging-java Utilities for debugging, profiling and code coverage measure for UDFs. https://github.com/exasol/udf-debugging-java/ - 5.13.0 - 0.8.13 + 0.8.14 @@ -25,7 +24,7 @@ com.exasol error-reporting-java - 1.0.1 + 1.0.2 org.jacoco @@ -42,12 +41,12 @@ com.exasol bucketfs-java - 3.2.1 + 4.0.0 com.exasol exasol-test-setup-abstraction-java - 2.1.7 + 2.1.10 - - org.junit.jupiter - junit-jupiter-engine - ${junit.version} - test - org.junit.jupiter junit-jupiter-params - ${junit.version} + + 5.13.4 test org.mockito mockito-junit-jupiter - 5.18.0 + 5.20.0 test @@ -88,19 +82,19 @@ com.exasol exasol-testcontainers - 7.1.5 + 7.2.0 test org.testcontainers - junit-jupiter - 1.21.1 + testcontainers-junit-jupiter + 2.0.1 test com.exasol test-db-builder-java - 3.6.1 + 3.6.4 test @@ -139,7 +133,7 @@ com.exasol project-keeper-maven-plugin - 5.2.3 + 5.4.3 @@ -178,7 +172,7 @@ udf-debugging-java-generated-parent com.exasol - 0.6.17 + 0.6.18 pk_generated_parent.pom