Skip to content
This repository has been archived by the owner on Sep 19, 2024. It is now read-only.

docs: add decision record about repo separation #141

Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions developer/decision-records/2024-04-19-tech-repo-split/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Decision: separation build pipelines for Technology Repositories
paullatzelsperger marked this conversation as resolved.
Show resolved Hide resolved

## Definition of terms

For the purposes of this document, the following definition of terms apply:

- "technology": refers to code in EDC extensions implementing specific services of a particular CSP, for
example Amazon S3
- "technology repository": EDC repositories that host these technology extension.
- CSP: cloud solution provider, such as Microsoft (Azure), Google (GCP) or Amazon (AWS)

## Decision

We will separate the build and release pipelines for the technology repositories. That means, that continuous builds,
paullatzelsperger marked this conversation as resolved.
Show resolved Hide resolved
nightly builds and release builds can technically happen separate from the core components builds.
paullatzelsperger marked this conversation as resolved.
Show resolved Hide resolved

To achieve that, every technology repository will get its own Maven sub-group-id:

- Technology-Azure: `org.eclipse.edc.azure`
- Technology-Aws: `org.eclipse.edc.aws`
- Technology-Gcp: `org.eclipse.edc.gcp`
- (Technology-Huawei: `org.eclipse.edc.huawei`)

As a convention, the version numbering across _all_ repositories will remain consistent.

## Rationale

Maintenance and upkeep for the technology repositories is currently handled by the committers of the EDC project, for
whom this has become a substantial time and resources investment.
In an effort to re-allocate these resources to the core components, we want to decouple the release processes of the
Technology repositories. That way, when the builds fail, for example due to a breaking change in an SPI, or some other
compile-time or run-time problem, the release of the core components is not blocked.

In addition, a process should be started to create dedicated specialist teams in those cloud provider companies, who
over time build trust with the community and gain traction with the project, so that they can eventually take over the
maintenance for the technology repositories. This will also help bolster and foster the community of EDC.

It is understood that that is a lengthy process, but one that should start sooner rather than later.

## Approach

Several things are necessary to achieve that modularization:

- removing the technology repositories from the build scripts in the Release repository. This will exclude them from the
nightly and release builds.
- add Maven sub-group-ids
- create a GitHub workflow that publishes to OSSRH Staging / MavenCentral, bumps versions, etc.
2 changes: 2 additions & 0 deletions developer/decision-records/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
- [2023-06-19 Onboarding Contributors](2023-06-19-onboarding-contributors/)
- [2023-07-06 Committer Retirements](2023-07-06-committer-retirement/)
- [2023-09-06 Identity and Trust](2023-09-06-identity-trust/)
- [2023-09-12 Publishing from GitHub](2023-09-12-publishing_from_github/)
- [2024-04-19 Separating Release process of Technology repos](2024-04-19-tech-repo-split/)

## Repository-specific

Expand Down
Loading