Releasey: Make Helm index generation safe against concurrent RCs
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 522
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 137
Description
### Is your feature request related to a problem? Please describe.
The approach implemented by #3515 is a good and for the user experience necessary improvement.
The added approach is however not suitable when there are multiple releases happening concurrently (e.g. a new release candidate from `main` plus another from `release/1.4.x`), as the last released version would "remove" the concurrent "open" releases from the Helm index.
A safer approach is to _not_ overwrite the Helm index in the 4th workflow but rather update the existing one. In (pseudo) code it looks like this:
```bash
# Download and unpack the released helm package
# Download the current Helm index.yaml
helm repo index . --merge index.yaml --url https://github.com/apache/polaris/releases/download/
# Upload the updated Helm index.yaml
```
The above approach prevents downloading all old Helm packages, which will eventually be a lot, and an always growing number of releases.
Although the eventually merged Helm index cannot be voted on, because it is created after the vote, it is probably not an issue, because the Helm index is a _convenience_ generated release artifact and not part of the source.
### Describe the solution you'd like
_No response_
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Research direction
Review the approach introduced by #3515 and locate the fourth release workflow that generates the Helm index. Trace how the current index and released Helm package are handled, then verify that concurrent release candidates remain represented without downloading all historical packages.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, helm
- Domain
- ci-cd, release
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100