diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md index 8bd6c1f001d..7f4e2c39ce9 100644 --- a/.github/ISSUE_TEMPLATE/release.md +++ b/.github/ISSUE_TEMPLATE/release.md @@ -1,10 +1,39 @@ --- name: Release -about: Describe this issue template's purpose here. -title: '' -labels: '' -assignees: '' - +about: Create an issue to track a release process. +title: "Release X.Y.Z.W" +labels: [ "task/release", "scope/core" ] +assignees: "" --- +# Release + +## Work Breakdown + +Feel free to edit this release checklist in-progress depending on what tasks need to be done: +- [ ] Decide a release version. The version must be the Eclipse core-edc version `X.Y.Z` appended with the sovity fork version `.W`, eg. `0.2.1.1`. +- [ ] Update the `version` in `gradle.properties` +- [ ] Update this issue's title to the new version. +- [ ] `release-prep` PR with target version-branch `sovity/X.Y.Z`: + - [ ] Update the `CHANGELOG.md`. + - [ ] Add a clean `Unreleased` version. + - [ ] Add the version to the old section. + - [ ] Add the current date to the old version. + - [ ] Check the commit history for commits that might be product-relevant and thus should be added to the changelog. Maybe they were forgotten. + - [ ] Write or review the `Deployment Migration Notes` section, check the commit history for changed / added + configuration properties. + - [ ] Write or review a release summary. + - [ ] Write or review the compatible versions section. + - [ ] Remove empty sections from the patch notes. + - [ ] Merge the `release-prep` PR. +- [ ] Wait for the `sovity/X.Y.Z` branch to be green. You can check the status in GH [actions](https://github.com/sovity/core-edc/actions). +- [ ] [Create a release](https://github.com/sovity/core-edc/releases/new) + - [ ] In `Choose the tag`, type your new release version in the format `vX.Y.Z.W` (for instance `v1.2.3.4`) then + click `+Create new tag vX.Y.Z.W on release`. + - [ ] Re-use the changelog section as release description, and the version as title. +- [ ] Check if the pipeline built the release versions in the Actions-Section (or you won't see it). +- [ ] Revisit the changed list of tasks and compare it + with [.github/ISSUE_TEMPLATE/release.md](https://github.com/sovity/edc-extensions/blob/default/.github/ISSUE_TEMPLATE/release.md). + Propose changes where it makes sense. +- [ ] Close this issue. diff --git a/.github/workflows/apidoc.yaml b/.github/workflows/apidoc.yaml deleted file mode 100644 index 4b620b88230..00000000000 --- a/.github/workflows/apidoc.yaml +++ /dev/null @@ -1,71 +0,0 @@ -name: Verify and Publish OpenAPI Specs - -on: - workflow_call: - inputs: - version: - required: true - description: "The version under which the API should be published" - type: string - - push: - branches: - - main - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - Publish-To-SwaggerHub: - # do NOT run on forks. The Org ("edc") is unique all across SwaggerHub - if: github.repository == 'eclipse-edc/Connector' - runs-on: ubuntu-latest - strategy: - matrix: - apiGroup: [ 'public-api', 'management-api', 'control-api' ] - env: - rootDir: resources/openapi/yaml/${{ matrix.apiGroup }} - SWAGGERHUB_API_KEY: ${{ secrets.SWAGGERHUB_TOKEN }} - SWAGGERHUB_USER: ${{ secrets.SWAGGERHUB_USER }} - VERSION: ${{ github.event.inputs.version || inputs.version }} - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - uses: actions/setup-node@v4 - - # merge together all api groups - - name: Generate API Specs - run: | - # give option to override - cmd="" - if [ ! -z $VERSION ]; then - cmd="-Pversion=$VERSION" - fi - ./gradlew resolve - ./gradlew ${cmd} -PapiTitle="${{ matrix.apiGroup }}" -PapiDescription="REST API documentation for the ${{ matrix.apiGroup }}" :mergeApiSpec --input=${{ env.rootDir }} --output=${{ matrix.apiGroup }}.yaml - - # install swaggerhub CLI - - name: Install SwaggerHub CLI - run: npm i -g swaggerhub-cli - - # create API, will fail if exists - - name: Create API - continue-on-error: true - run: | - swaggerhub api:create ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=unpublish - - # Post snapshots of the API to SwaggerHub as "unpublished", because published APIs cannot be overwritten - - name: Publish API Specs to SwaggerHub - run: | - # coalesce $VERSION, or whatever's stored in gradle.properties - vers=${VERSION:-$(grep "version" gradle.properties | awk -F= '{print $2}')} - - if [[ $vers != *-SNAPSHOT ]]; then - echo "no snapshot, will set the API to 'published'"; - swaggerhub api:update ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=publish - swaggerhub api:setdefault ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }}/$vers - else - echo "snapshot, will set the API to 'unpublished'"; - swaggerhub api:update ${{ env.SWAGGERHUB_USER }}/${{ matrix.apiGroup }} -f ${{ matrix.apiGroup }}.yaml --visibility=public --published=unpublish - fi diff --git a/.github/workflows/bump-version.yaml b/.github/workflows/bump-version.yaml deleted file mode 100644 index afdda9e5a46..00000000000 --- a/.github/workflows/bump-version.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -name: "Bump version (manually)" - -on: - # can be called manually from GH webpage - workflow_dispatch: - inputs: - target_branch: - default: 'main' - description: "Branch on which the version bump is to be done." - required: false - - -jobs: - Bump-Version: - name: 'Update snapshot version' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/bump-version@main - name: Bump version - with: - target_branch: ${{ inputs.target_branch }} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index ac50222164c..00000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: "CodeQL" - -on: - push: - branches-ignore: - - 'dependabot/**' - pull_request: - branches: [ main ] - paths-ignore: - - '**.md' - - 'docs/**' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: [ 'java' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - queries: +security-and-quality - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Compiles production Java source (without tests) - - name: Build - run: ./gradlew compileJava --no-daemon - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/dependency-check.yml b/.github/workflows/dependency-check.yml deleted file mode 100644 index 721cd10b404..00000000000 --- a/.github/workflows/dependency-check.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: 'Dependency Review' -on: - push: - branches: - - main - pull_request: - -permissions: - contents: read - -jobs: - check: - uses: eclipse-edc/.github/.github/workflows/dependency-check.yml@main \ No newline at end of file diff --git a/.github/workflows/discord-webhook.yml b/.github/workflows/discord-webhook.yml deleted file mode 100644 index 465f2b3cb9c..00000000000 --- a/.github/workflows/discord-webhook.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 'Discord Webhook' -on: - issues: - types: [ opened ] - pull_request_target: - types: [ opened, reopened ] - discussion: - types: [ created ] - -jobs: - trigger-workflow: - uses: eclipse-edc/.github/.github/workflows/discord-webhook.yml@main - with: - event_discussion_html_url: ${{ github.event.discussion.html_url }} - event_discussion_title: ${{ github.event.discussion.title }} - event_issue_html_url: ${{ github.event.issue.html_url }} - event_issue_title: ${{ github.event.issue.title }} - event_name: ${{ github.event_name }} - event_pull_request_html_url: ${{ github.event.pull_request.html_url }} - event_pull_request_title: ${{ github.event.pull_request.title }} - event_sender_avatar_url: ${{ github.event.sender.avatar_url }} - event_sender_html_url: ${{ github.event.sender.html_url }} - event_sender_login: ${{ github.event.sender.login }} - repository_name: ${{ github.repository }} - secrets: - env_discord: ${{ secrets.DISCORD_WEBHOOK_GITHUB }} \ No newline at end of file diff --git a/.github/workflows/first-interaction.yml b/.github/workflows/first-interaction.yml deleted file mode 100644 index b1daff14f56..00000000000 --- a/.github/workflows/first-interaction.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: First Interaction - -on: - issues: - types: [ opened ] - pull_request_target: - types: [ opened ] - -jobs: - trigger-workflow: - uses: eclipse-edc/.github/.github/workflows/first-interaction.yml@main - secrets: - envGH: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/publish-autodoc.yml b/.github/workflows/publish-autodoc.yml deleted file mode 100644 index 590541f6de8..00000000000 --- a/.github/workflows/publish-autodoc.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: publish autodoc - -on: - push: - branches: - - main - workflow_dispatch: - inputs: - version: - description: version to be published - required: false - type: string - -jobs: - publish: - uses: eclipse-edc/.github/.github/workflows/publish-autodoc.yml@main - secrets: inherit - with: - version: ${{ github.event.inputs.version }} diff --git a/.github/workflows/publish-openapi-ui.yml b/.github/workflows/publish-openapi-ui.yml deleted file mode 100644 index 4f34792b0e8..00000000000 --- a/.github/workflows/publish-openapi-ui.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: publish openapi ui - -on: - push: - branches: - - main - workflow_dispatch: - inputs: - version: - description: version to be published - required: false - type: string - -jobs: - publish: - uses: eclipse-edc/.github/.github/workflows/publish-openapi-ui.yml@main - secrets: inherit - with: - version: ${{ github.event.inputs.version }} diff --git a/.github/workflows/release-edc.yml b/.github/workflows/release-edc.yml deleted file mode 100644 index aebd13c36e4..00000000000 --- a/.github/workflows/release-edc.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Create EDC Release -on: - workflow_dispatch: - inputs: - edc_version: - description: 'Version string that is used for publishing (e.g. "1.0.0", NOT "v1.0.0"). Appending -SNAPSHOT will create a snapshot release.' - required: true - type: string - - -env: - EDC_VERSION: ${{ github.event.inputs.edc_version || inputs.edc_version }} - -jobs: - Prepare-Release: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - # create tag on the current branch using GitHub's own API - - name: Create tag on current branch (main) - uses: actions/github-script@v7 - with: - script: | - github.rest.git.createRef({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: 'refs/tags/v${{ env.EDC_VERSION }}', - sha: context.sha - }) - - # create merge commit main -> releases encoding the version in the commit message - - name: Merge main -> releases - uses: everlytic/branch-merge@1.1.5 - with: - github_token: ${{ github.token }} - source_ref: ${{ github.ref }} - target_branch: 'releases' - commit_message_template: 'Merge commit for release of version v${{ env.EDC_VERSION }}' - - outputs: - edc-version: ${{ env.EDC_VERSION }} - - publish-autodoc: - needs: Prepare-Release - uses: eclipse-edc/.github/.github/workflows/publish-autodoc.yml@main - secrets: inherit - with: - version: ${{ needs.Prepare-Release.outputs.edc-version }} - - publish-openapi-ui: - needs: Prepare-Release - uses: eclipse-edc/.github/.github/workflows/publish-openapi-ui.yml@main - secrets: inherit - with: - version: ${{ needs.Prepare-Release.outputs.edc-version }} - - # DEPRECATED: Calls the openapi workflow to publish the api spec on SwaggerHub - Publish-OpenApi: - needs: - - Prepare-Release - if: ${{ !endsWith( needs.Prepare-Release.outputs.edc-version, '-SNAPSHOT') }} - uses: ./.github/workflows/apidoc.yaml - secrets: inherit - with: - version: ${{ needs.Prepare-Release.outputs.edc-version }} - - Github-Release: - # cannot use the workflow-level env yet as it does not yet exist, must take output from previous job - if: ${{ !endsWith( needs.Prepare-Release.outputs.edc-version, '-SNAPSHOT') }} - needs: - - Prepare-Release - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v4 - with: - ref: main - - name: Create GitHub Release - uses: ncipollo/release-action@v1 - with: - generateReleaseNotes: true - tag: "v${{ env.EDC_VERSION }}" - token: ${{ secrets.GITHUB_TOKEN }} - removeArtifacts: true - - Bump-Version: - name: 'Update release version' - # cannot use the workflow-level env yet as it does not yet exist, must take output from previous job - if: ${{ !endsWith( needs.Prepare-Release.outputs.edc-version, '-SNAPSHOT') }} - needs: [ Prepare-Release, Github-Release ] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/bump-version@main - with: - target_branch: "main" - base_version: ${{ needs.Prepare-Release.outputs.edc-version }} diff --git a/.github/workflows/scan-pull-request.yaml b/.github/workflows/scan-pull-request.yaml deleted file mode 100644 index 5ad1602dfbe..00000000000 --- a/.github/workflows/scan-pull-request.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: Scan Pull Request - -on: - pull_request: - branches: [ main ] - types: [opened, edited, synchronize, reopened, labeled, unlabeled] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - trigger-workflow: - uses: eclipse-edc/.github/.github/workflows/scan-pull-request.yml@main - secrets: - envGH: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/stale-bot.yml b/.github/workflows/stale-bot.yml deleted file mode 100644 index 28f72936647..00000000000 --- a/.github/workflows/stale-bot.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Close Inactive Issues - -on: - schedule: - - cron: "30 1 * * *" # once a day (1:30 UTC) - workflow_dispatch: # allow manual trigger - -jobs: - trigger-workflow: - uses: eclipse-edc/.github/.github/workflows/stale-bot.yml@main - secrets: - envGH: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/triage-issue.yml b/.github/workflows/triage-issue.yml deleted file mode 100644 index aec1c09b1d5..00000000000 --- a/.github/workflows/triage-issue.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: triage opened issue - -on: - issues: - types: - - reopened - - opened - -jobs: - label-issue: - runs-on: ubuntu-latest - permissions: - issues: write - steps: - - run: gh issue edit "$NUMBER" --add-label "$LABELS" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - NUMBER: ${{ github.event.issue.number }} - LABELS: triage diff --git a/.github/workflows/trigger_snapshot.yml b/.github/workflows/trigger_snapshot.yml deleted file mode 100644 index e204f93343a..00000000000 --- a/.github/workflows/trigger_snapshot.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: "Publish Snapshot Build" - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - Publish-Snapshot: - # This workflow will abort if the required secrets don't exist - uses: eclipse-edc/.github/.github/workflows/publish-snapshot.yml@main - secrets: inherit diff --git a/.github/workflows/verify.yaml b/.github/workflows/verify.yaml deleted file mode 100644 index d8c9764b30b..00000000000 --- a/.github/workflows/verify.yaml +++ /dev/null @@ -1,152 +0,0 @@ -name: Run Tests - -on: - workflow_dispatch: - push: - pull_request: - branches: [ main, refactor/* ] - paths-ignore: - - '**.md' - - 'docs/**' - - 'CODEOWNERS' - - 'LICENSE' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - Checkstyle: - permissions: - id-token: write - checks: write - pull-requests: write - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Run Checkstyle - run: ./gradlew checkstyleMain checkstyleTest checkstyleTestFixtures - - Javadoc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Run Javadoc - run: ./gradlew javadoc - - Unit-Tests: - runs-on: ubuntu-latest - env: - JACOCO: true - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Run unit tests - uses: eclipse-edc/.github/.github/actions/run-tests@main - with: - command: ./gradlew test jacocoTestReport - - Postgresql-Integration-Tests: - runs-on: ubuntu-latest - - services: - postgres: - image: postgres:14.2 - ports: - - 5432:5432 - env: - POSTGRES_PASSWORD: password - - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Postgresql Tests - uses: eclipse-edc/.github/.github/actions/run-tests@main - with: - command: ./gradlew test -DincludeTags="PostgresqlIntegrationTest" - - End-To-End-Tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - name: End to End Integration Tests - uses: eclipse-edc/.github/.github/actions/run-tests@main - with: - command: ./gradlew test jacocoTestReport -DincludeTags="EndToEndTest" - - Component-Tests: - env: - JACOCO: true - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Component Tests - uses: eclipse-edc/.github/.github/actions/run-tests@main - with: - command: ./gradlew test jacocoTestReport -DincludeTags="ComponentTest" - - API-Tests: - env: - JACOCO: true - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: eclipse-edc/.github/.github/actions/setup-build@main - - - name: Component Tests - uses: eclipse-edc/.github/.github/actions/run-tests@main - with: - command: ./gradlew test jacocoTestReport -DincludeTags="ApiTest" - - Upload-Test-Report: - needs: - - API-Tests - - Component-Tests - - End-To-End-Tests - - Postgresql-Integration-Tests - - Unit-Tests - - permissions: - checks: write - pull-requests: write - - runs-on: ubuntu-latest - if: always() - steps: - - name: Download Artifacts - uses: actions/download-artifact@v4 - with: - path: artifacts - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - junit_files: "**/test-results/**/*.xml" - - Upload-Coverage-Report-To-Codecov: - needs: - - API-Tests - - Unit-Tests - - Component-Tests - - End-To-End-Tests - - runs-on: ubuntu-latest - if: always() - steps: - # Sources are needed for Codecov report - - uses: actions/checkout@v4 - - name: Download Artifacts - uses: actions/download-artifact@v4 - with: - path: artifacts - - name: CodeCov - uses: codecov/codecov-action@v4 diff --git a/DEPENDENCIES b/DEPENDENCIES index db2c108abbd..ceb09508ef6 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -54,7 +54,7 @@ maven/mavencentral/com.github.stephenc.jcip/jcip-annotations/1.0-1, Apache-2.0, maven/mavencentral/com.google.code.findbugs/jsr305/2.0.1, BSD-3-Clause AND CC-BY-2.5 AND LGPL-2.1+, approved, CQ13390 maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, Apache-2.0, approved, #20 maven/mavencentral/com.google.code.gson/gson/2.10.1, Apache-2.0, approved, #6159 -maven/mavencentral/com.google.crypto.tink/tink/1.13.0, , restricted, clearlydefined +maven/mavencentral/com.google.crypto.tink/tink/1.13.0, Apache-2.0, approved, #14502 maven/mavencentral/com.google.errorprone/error_prone_annotations/2.11.0, Apache-2.0, approved, clearlydefined maven/mavencentral/com.google.errorprone/error_prone_annotations/2.22.0, Apache-2.0, approved, #10661 maven/mavencentral/com.google.errorprone/error_prone_annotations/2.26.1, Apache-2.0, approved, #13657 diff --git a/README.md b/README.md index c11a32e837a..162dfd1aa38 100644 --- a/README.md +++ b/README.md @@ -1,219 +1,38 @@ -