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

docs: add DR for technology repositories release #189

Merged
merged 1 commit into from
Aug 14, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Technology Repositories Release

## Decision

Release of a "Technology" repository need a separate and well-defined release process.

## Rationale

"Technology" repository release happens after the completion of the "core" release. This is true both for new releases
and bugfixes.

## Approach

The process will slightly differ between:
- `release` (new features with a `x.y.0` version number)
- `bugfix` (only bugfix with a `x.y.z` version number, with `z` greater than 0, starting from a previously existing release branch)

### Prepare release
There will be a `prepare-release` job on every `Technology` repo with these inputs:
- version number to be released
- starting branch (`main` by default)

The workflow will:
- set the core dependency version number to the one passed in input
- set the project version number to the one passed in input
- create a temporary `prepare/x.y.z` branch
- commit
- create a PR from `prepare/x.y.z` to `release|bugfix/x.y.z`

The PR will take care to run all the checks (tests, dependencies, ...) and will give to the committers the opportunity to
eventually cherry-pick commits for a `bugfix` release.

### Release

When the preparation PR gets merged there will be an automated workflow that gets triggered on push on a `release/` or `bugfix/` branch.
Such flow will:
- publish artifacts on maven central
- create `vx.y.z` git tag
- create github release
- send a message on the discord channel.
- \[only for `release`, not for `bugfix`\] bump version to next snapshot

note that the `releases` branch is not involved by this process. In fact, at this point it does not make sense to maintain it.

These workflows will be created as reusable in the `.github` repository and then referenced in every `Technology` repository.
5 changes: 3 additions & 2 deletions developer/decision-records/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@
- [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/)
- [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-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/)

## Repository-specific

Expand Down
Loading