Skip to content

Latest commit

 

History

History
431 lines (351 loc) · 44.5 KB

TIMELINE.md

File metadata and controls

431 lines (351 loc) · 44.5 KB

Timeline of a Knative release

We release each repository of knative.dev roughly every 3 months. Please check the release schedule to calculate when to start work on each checkpoint of a release timeline.

Repos to be released

  • All repos to be released are listed in this document
  • Each repo indicates its releasability and other statuses, when applicable
  • Each repo needs to be successfully updated to use the latest version of all dependencies before cutting its release branch

Timeline

T-minus 30 days

T-minus 14 days

T-minus 7 days - releasing supporting repos

Cut the release branch of all the supporting repos. These are the base repos where we have common code and common scripts.

  • 📄 Open a new release notes document for the release.
  • 📣 Announce on the #knative Slack channel that the release will be cut in a week and that additional caution should be used when merging big changes.
  • 👀 Verify that the nightly release automation is passing for each of the core knative.dev repos. If any is failing, reach out to the corresponding WG leads and ask them to investigate. Repeat throughout the week.

🚨 NOTES:

  • The release branch for each supporting repos must be done only after the branch for their dependencies is cut.

  • After each repo's release branch is cut, a dependency update might be required for the next repo in the sequence. It is doubly important to have a successful dependency check and subsequently verify its releasability before proceeding to cut the branch.

  • Automation will trigger all the downstream repos to update their dependencies to these new versions in the next few cycles. The goal is to have the first wave of repo releases (serving, eventing, etc) become "releasable" by the scheduled day of release. This is signaled via the reporting of the releasability status posted to the #knative-release Slack channel every morning (5am PST, M-F).

Supporting repos

📝 See instructions for guidance on Releasing a repository and follow all the steps.

Repo Releasability
knative.dev/hack N/A
knative.dev/pkg Releasability
knative.dev/networking Releasability
knative.dev/caching Releasability
knative.dev/reconciler-test Releasability

T-minus 1 day

🚨 NOTE: Continue to verify that the nightly release automation is passing for each knative.dev repo in the subsequent phases. If any is failing at this point, reach out to the corresponding WG leads and ask them to investigate. Repeat until all are passing.

T-minus zero - day of release

The release of the core repos starts on the first day of the release schedule.

🚨 NOTES:

  • It is not required that all repos in the included sub-sections be released on the same day the release is scheduled to start. The pipeline outlined below will take time to complete and it is ok for the release process to progress over days.

  • An extra reminder to wait for the knative.dev/eventing and knative.dev/serving releases to be published before running a dependency check and subsequently verifying releasability on the repos that depend on these two packages. This will result in their go.mod correctly looking like, for example, knative.dev/eventing v0.31.0, instead of knative.dev/eventing v0.30.1-0.20220419135228-39eef14419d8.

  • The release notes of a dependency are not a blocker for proceeding to cut a release for a repo.

Exceptions

We have a few repos inside of Knative that are not handled in the standard release process at the moment. They might have additional dependencies or depend on the releases existing. Skip these:

Repo Version Releasability Nightly Job Release Job
knative.dev/operator Releases Releasability Nightly Release

T-minus zero - releasing core repos

📝 See instructions for guidance on Releasing a repository and follow all the steps.

This group can be started after all the supporting repos have been successfully released.

Repo Version Releasability Nightly Job Release Job
knative.dev/serving Releases Releasability Nightly Release
knative.dev/net-contour Releases Releasability Nightly Release
knative.dev/net-gateway-api Releases Releasability Nightly Release
knative.dev/net-istio Releases Releasability Nightly Release
knative.dev/net-kourier Releases Releasability Nightly Release
knative.dev/eventing Releases Releasability Nightly Release
knative.dev/sample-controller Releases Releasability Nightly Release

This group can be started after knative.dev/eventing has been successfully published.

Repo Version Releasability Nightly Job Release Job
knative.dev/eventing-ceph Releases Releasability Nightly Release
knative.dev/eventing-rabbitmq Releases Releasability Nightly Release
knative.dev/sample-source Releases Releasability Nightly Release

This group can be started after both knative.dev/eventing and knative.dev/serving have been successfully published.

Note that client-pkg is a supporting library and thus does NOT have a release job on Prow.

Repo Version Releasability Nightly Job Release Job
knative.dev/client-pkg n/a Releasability n/a n/a

This group can be started after knative.dev/client-pkg has been successfully cut.

Repo Version Releasability Nightly Job Release Job
knative.dev/client Releases Releasability Nightly Release
knative.dev/eventing-kafka Releases Releasability Nightly Release
knative.dev/eventing-redis Releases Releasability Nightly Release
knative.dev/eventing-github Releases Releasability Nightly Release
knative.dev/eventing-gitlab Releases Releasability Nightly Release

This group can be started after all the previous repos have been successfully published.

Repo Version Releasability Nightly Job Release Job
knative.dev/eventing-kafka-broker Releases Releasability Nightly Release
knative.dev/eventing-istio Releases Releasability Nightly Release
knative.dev/eventing-autoscaler-keda Releases Releasability Nightly Release
knative.dev/kn-plugin-admin Releases Releasability Nightly Release
knative.dev/kn-plugin-event Releases Releasability Nightly Release
knative.dev/kn-plugin-source-kafka Releases Releasability Nightly Release
knative.dev/kn-plugin-source-kamelet Releases Releasability Nightly Release
knative.dev/kn-plugin-quickstart Releases Releasability Nightly Release
knative.dev/func Releases Releasability Nightly Release
knative.dev/backstage-plugins Releases Releasability Nightly Release

Post-release

📝 See these instructions for further guidance: