From abd9f523ded334019a16adecf15c4d4bd5e6d6e8 Mon Sep 17 00:00:00 2001 From: ndr_brt Date: Tue, 27 Aug 2024 09:44:42 +0200 Subject: [PATCH 1/2] docs: add DR for the new release process --- .../2024-08-26-new-release-process/README.md | 49 +++++++++++++++++++ developer/decision-records/README.md | 1 + 2 files changed, 50 insertions(+) create mode 100644 developer/decision-records/2024-08-26-new-release-process/README.md diff --git a/developer/decision-records/2024-08-26-new-release-process/README.md b/developer/decision-records/2024-08-26-new-release-process/README.md new file mode 100644 index 00000000..fb36638a --- /dev/null +++ b/developer/decision-records/2024-08-26-new-release-process/README.md @@ -0,0 +1,49 @@ +# New Release process + +## Decision + +The EDC release process needs to be improved to support bugfix releases. + +## Rationale + +Currently, the Release process starts from the main branch of every repository and it can be launched only for proper releases. +For bugfix releases, some manual work needs to be done, that should be avoided. + +## Approach + +With "core repositories" we mean: +- `Runtime-Metamodel` +- `GradlePlugins` +- `Connector` +- `IdentityHub` +- `FederatedCatalog` + +Release EDC components should follow a 2-phase process like it was done for [technology repos](../2024-08-13-technology-repos-release): +- preparation +- release + +### Preparation phase +With "release preparation" we mean all the operations needed to be done upfront to permit a proper release. +The workflow will take in input the desired version and the branch to use as starting point. +- a `release/x.y.z` or `bugfix/x.y.z` branch will be created on every core repository. +- the project version, the upstream "edc" dependency and the DEPENDENCIES file will be bumped to `x.y.z-SNAPSHOT` +- "trigger_snapshot" workflow will be called on every core repository following the dependency order + +For a bugfix release now it will be possible to backport/cherry-pick the commits needed + +### Release +The release flow is the same for `release` and `bugfix` branches. +It will take as an input the branch name from which the flow will be started. + +- all the "core repositories" are checked out on the selected branch +- the "root" project is configured, with all the repos set as subprojects +- the project version and the upstream "edc" dependency will be bumped to `x.y.z` +- all the `DEPENDENCIES` files are updated to replace EDC `-SNAPSHOT` versions with proper versions +- `DEPENDENCIES`, `LICENSE` and `NOTICE.md` files are included in the root project +- the root project is built and published to maven central +- a commit is done on every repo and pushed on remote +- release workflow is called on every core repository, it will: + - push the version tag + - create the github release + - bump version on main if the version ended with `.0` (`release/`) + - publish autodoc if configured diff --git a/developer/decision-records/README.md b/developer/decision-records/README.md index 29d7f556..e8adb26e 100644 --- a/developer/decision-records/README.md +++ b/developer/decision-records/README.md @@ -27,6 +27,7 @@ - [2024-05-27 EDC Maturity Levels and Deprecation Policy](2024-05-27-maturity-levels-deprecation-policy/) - [2024-07-17 Bootstrapping SQL Databases](2024-07-17-bootstrap-sql-database/) - [2024-08-13 Technology Repositories Release](2024-08-13-technology-repos-release/) +- [2024-08-24 New Release process](./2024-08-26-new-release-process/) ## Repository-specific From 85165129d8fbf58909ca39d92a3016346cc84f22 Mon Sep 17 00:00:00 2001 From: ndr_brt Date: Tue, 27 Aug 2024 10:14:42 +0200 Subject: [PATCH 2/2] pr remarks --- .../2024-08-26-new-release-process/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/developer/decision-records/2024-08-26-new-release-process/README.md b/developer/decision-records/2024-08-26-new-release-process/README.md index fb36638a..814dda52 100644 --- a/developer/decision-records/2024-08-26-new-release-process/README.md +++ b/developer/decision-records/2024-08-26-new-release-process/README.md @@ -11,7 +11,7 @@ For bugfix releases, some manual work needs to be done, that should be avoided. ## Approach -With "core repositories" we mean: +By "core repositories" we mean: - `Runtime-Metamodel` - `GradlePlugins` - `Connector` @@ -23,8 +23,8 @@ Release EDC components should follow a 2-phase process like it was done for [tec - release ### Preparation phase -With "release preparation" we mean all the operations needed to be done upfront to permit a proper release. -The workflow will take in input the desired version and the branch to use as starting point. +By "release preparation" we mean all the preparatory operations that are needed to permit a proper release. +The workflow will take as input the desired version and the branch name to use as starting point. - a `release/x.y.z` or `bugfix/x.y.z` branch will be created on every core repository. - the project version, the upstream "edc" dependency and the DEPENDENCIES file will be bumped to `x.y.z-SNAPSHOT` - "trigger_snapshot" workflow will be called on every core repository following the dependency order