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 @@ -

-
- EDC Connector -
-

+ + + +
- - Tests status - - - Coverage - - - Discord chat - - - Version - - - License - -
-
- - License - - - License - + + Logo +
+

+
+ EDC Connector (fork) +
+

-### Built with - -One of the guiding principles in developing the connector is simplicity and keeping the core small and efficient with as -little external dependencies as possible to avoid version conflicts. We do not want to force any third-party -dependencies onto our users, so we aim to avoid any of the big frameworks. Of course, if you want to use them, you still -can add them to your extensions (see: [TBW]). The connector is a plain Java application built with Gradle, but it can be -embedded into any form of application deployment. - -### Documentation - -Developer documentation can be found under [docs/developer](docs/developer/README.md), -where the main concepts and decisions are captured as [decision records](docs/developer/decision-records/README.md). - -Some more documentation can be found at [extensions](extensions/README.md), [launchers](launchers/README.md) and -[the samples repository](https://github.com/eclipse-edc/Samples). - -For detailed information about the whole project, please take a look at -our [GitHub pages](https://eclipse-edc.github.io/docs). - -## Getting Started - -### Onboarding and first steps - -If you are not yet familiar with the EDC nomenclature, we strongly advise reading the -[documentation](https://eclipse-edc.github.io/docs/#/) and/or watching the -[introductory videos](https://www.youtube.com/@eclipsedataspaceconnector9622/featured). - -#### Samples - -The [Samples repository](https://github.com/eclipse-edc/Samples) provides a set of examples for getting familiar with -the EDC framework and learning how to set up and use a connector. The samples begin with the very basics (e.g. learning -how to write an extension or use a configuration file) and then move on to more complex scenarios (e.g. performing -different data transfers). More samples will be added in the future, so be sure to check back regularly. - -### Add Maven dependencies - -Official versions are available through [MavenCentral](https://search.maven.org/search?q=org.eclipse.edc) -. -Please add the following instructions in your `build.gradle[.kts]` file (if not already present): - -```kotlin -repositories { - mavenCentral() - // ... other maven repos -} -``` - -We **strongly** recommend to use official versions and only switch to snapshots if there is a clear need to do so, or -you've been instructed to do so, e.g. to verify a bugfix. - -All artifacts are under the `org.eclipse.edc` group id, for example: - -```kotlin -dependencies { - implementation("org.eclipse.edc:spi:core-spi:<>") - // any other dependencies -} -``` - -#### Using `SNAPSHOT` versions - -In addition, EDC regularly publishes snapshot versions, which are available at Sonatype's snapshot -repository. In -order to add them to your build configuration, simply add this: - -```kotlin -repositories { - mavenCentral() - maven { - url = uri("https://oss.sonatype.org/content/repositories/snapshots/") - } - // any other repos -} -``` - -Then you can add snapshot dependencies by simply using the `-SNAPSHOT` version suffix: - -```kotlin -dependencies { - implementation("org.eclipse.edc:spi:core-spi:0.6.2-SNAPSHOT") - // any other dependencies -} -``` - -You may check MavenCentral for a comprehensive list of all official versions. - -Please be aware of the following pitfalls: - -- snapshots are by definition unstable - every new snapshot replaces an old one -- this may cause unrepeatable builds -- snapshots are created irregularly, we do not have any fixed publish schedule - -#### Using release versions - -_We plan to have actual release versions starting some time mid 2022. Please check back soon._ - - -> For more information about versioning please refer to the [release documentation](https://github.com/eclipse-edc/.github/blob/main/docs/developer/releases.md) - -### Checkout and build from source - -The project requires JDK 11+. To get started: - -``` shell -git clone git@github.com:eclipse-edc/Connector.git - -cd Connector - -./gradlew clean build -``` - -That will build the connector and run unit tests. - -### [Optional] Setup your IDE - -If you wish to configure your IDE/editor to automatically apply the EDC code style, please -follow [this guide](https://github.com/eclipse-edc/.github/blob/main/contributing/styleguide.md). - -_Note: the style guide will be checked/enforced in GitHub Actions._ - -### Generate the OpenApi specification - -Please refer to [this document](docs/developer/openapi.md). - -## Directory structure - -### `spi` - -This is the primary extension point for the connector. It contains all necessary interfaces that need to be implemented -as well as essential model classes and enums. Basically, the `spi` modules defines the extent to what users can -customize and extend the code. - -### `core` - -Contains all absolutely essential building that is necessary to run a connector such as `TransferProcessManager`, -`ProvisionManager`, `DataFlowManager`, various model classes, the protocol engine and the policy piece. While it is -possible to build a connector with just the code from the `core` module, it will have very limited capabilities to -communicate and to interact with a data space. - -### `extensions` - -This contains code that extends the connector's core functionality with technology- or cloud-provider-specific code. For -example a transfer process store based on Azure CosmosDB, a secure vault based on Azure KeyVault, etc. This is where -technology- and cloud-specific implementations should go. - -If someone were to create a configuration service based on Postgres, then the implementation should go into -the `extensions/database/configuration-postgres` module. - -### `launchers` - -Launchers are essentially connector packages that are runnable. What modules get included in the build (and thus: what -capabilities a connector has) is defined by the `build.gradle.kts` file inside the launcher subdirectory. That's also -where a Java class containing a `main` method should go. We will call that class a "runtime" and in order for the -connector to become operational the `runtime` needs to perform several important tasks (="bootstrapping"). For an -example take a look at -[this runtime](https://github.com/eclipse-edc/Samples/blob/main/other/custom-runtime/src/main/java/org/eclipse/edc/sample/runtime/CustomRuntime.java) +## About The Project -### `data-protocols` +This is a fork of the [Eclipse Connector](https://github.com/eclipse-edc/Connector) by [sovity](https://sovity.de/). -Contains implementations for communication protocols a connector might use, such as DSP. +## Content -## Releases +This repository contains forks of the Eclipse EDC with additions by sovity. -GitHub releases are listed [here](https://github.com/eclipse-edc/Connector/releases). -Please find more information about releases in our [release approach](https://github.com/eclipse-edc/docs/blob/main/developer/releases.md). +See the CHANGELOG.md on each branch for more details. -### Roadmap +[0.2.1.x](https://github.com/sovity/core-edc/blob/sovity/0.2.1.x/CHANGELOG.md) -See [here](https://github.com/eclipse-edc/.github/blob/main/CONTRIBUTING.md#project-and-milestone-planning) for more information about project and -milestone planning. Scheduled and ongoing milestones are listed -[here](https://github.com/eclipse-edc/Connector/milestones). +## Usage -### Tags +The `default` branch serves as a default branch. -Available tags can be found [here](https://github.com/eclipse-edc/Connector/tags). +The `main` branch tracks the Eclipse EDC main branch. -## Contributing +The forked branches are prefixed with `sovity/`. -See [how to contribute](https://github.com/eclipse-edc/.github/blob/main/CONTRIBUTING.md). +Any version that needs forking should be labeled `sovity/x.y.z` where `x.y.z` is the Eclipse EDC version from which it was forked.