Aller au contenu principal

Pre-defined release dates for Helm

HIPTitleAuthor(s)CreatedTypeStatus
0002Pre-defined release dates for HelmMarc Khouzam marc.khouzam@montreal.ca2020-09-04processaccepted

Abstract

Have well-known cyclical release dates for Helm minor and patch releases. Have a published release date for a Helm major release, upon the availability of the first beta release.

Motivation

Contributors and users/organizations greatly appreciate knowing in advance when the next release will be available. It allows contributors to plan their work and organizations to schedule migration plans; it also provides users with clear timelines for access to bug fixes and features.

Rationale

Minor and patch releases for Helm normally occur a couple of times a year. They therefore lend themselves well to cyclical, pre-defined release dates.

As it is not recommended to use Helm with a version of Kubernetes that is newer than the version Helm was compiled against (see here), there is value in aligning the date for Helm minor releases with Kubernetes releases, which state that "X.Y.0 occur 3 to 4 months after X.(Y-1).0".

Helm major releases happen rarely and therefore do not lend themselves to pre-defined, cyclical release dates. However, upon the availability of the first beta version of a major release, a specific final release date should be chosen and announced.

Specification

Patch releases

Patch releases should be done once a month on the second Wednesday of each month (assuming there are changes since the last release). A patch release to fix a high priority regression or security issue does not have to follow this schedule, but it is highly desirable that it is released on a Wednesday if possible.

Cancelling a patch release

A patch release should be cancelled:

  • if it falls within one week before the first release candidate (RC1) of an upcoming minor release
  • if it falls within four weeks following a minor release

As an example, if Helm 3.9.0-rc.1 is scheduled for January 7th, 2022, the expectation is that no patch releases will be cut for Helm 3.8.x after December 31st, 2021. Similarly, if Helm 3.9.0 is released on January 16th, 2022, the expectation is that the 3.9.1 patch release will not be cut before February 13th, 2022.

Minor releases

For minor releases, it is not necessary to aim for dates that are the same every year. Instead, the following is proposed:

  • Once a Helm minor release is made, the release date of the next minor release must be announced.
  • To align with Kubernetes releases, a 4-month minor release cadence should be adopted (so at least 3 minor releases of Helm per year)

Extra minor releases can be added to the schedule when needed. However:

  • An extra minor release should not change a planned minor release date, unless the planned release is less than 7 days away. This is to avoid postponing the release of features that are still on-going and planned according to the originally stated release date.
  • Extra minor releases should only be done for important reasons (as per judgment of the maintainers) to avoid increasing the burden on organizations that choose to upgrade at every release.

Security implications

Security releases do not follow any planned dates and should be done as soon as required.

How to teach this

  • When a Helm minor release is made, the next minor release number and date should be chosen and announced at the same time.
  • The Helm website should have a page mentioning each planned release and its date. This page should be updated at each release.
  • The Helm website should have a page describing the process for release dates put forth in this HIP

Reference implementation

A reference implementation for this proposal to be accepted would entail:

  • Proposing a date of the next minor release
  • Posting a PR to helm-www which:
    • documents the next release date
    • updates the release check-list as per the new process
    • creates a page to document the details of this HIP for users
  • Creating a public online calendar so that maintainers can get release reminders and consumers can see the Helm release dates. The calendar shall contain:
    • monthly patch release dates
    • the next minor release date (or major release date if applicable)
    • dates when RCs must be created
    • it may be interesting to include kubernetes release dates if available
  • A link to the release calendar shall be added to helm-www