stackabletech / issues

This repository is only for issues that concern multiple repositories or don't fit into any specific repository
2 stars 0 forks source link

chore: improve the release task list with more explicit steps #602

Closed NickLarsenNZ closed 2 months ago

NickLarsenNZ commented 4 months ago

Some of the tasks were too vague, and were done out of order. This change should help improve the process for the next release.

Part of #632


Preview of release.md - 7ed5a81 # Stackable Release XX.(X)X > [!IMPORTANT] > Important dates: > - ... - Release planning > - ... - Target release date ## Release checklists Replace the items in the task lists below with the applicable Pull Requests / Issues ### General Pre-Requisites (before Feature Freeze) ```[tasklist] ### Week 1 - [ ] [Update and release operator-rs workspace members](https://github.com/stackabletech/operator-rs/issues/new?template=release-workspace-members.md) - [ ] [Update Rust toolchain of operators](https://github.com/stackabletech/operator-templating/issues/new?template=pre-release.md) - [ ] [Update Rust dependencies of operators](https://github.com/stackabletech/issues/issues/new?template=pre-release-operator-rust-deps.md) - [ ] [Update Container Images](https://github.com/stackabletech/docker-images/issues/new?template=pre-release.md) ``` ```[tasklist] ### Week 2 - [ ] [Check and update getting-started script](https://github.com/stackabletech/issues/issues/new?template=pre-release-getting-started-scripts.md) - [ ] [Test and update demos stable to nightly](https://github.com/stackabletech/issues/issues/new?template=pre-release-demos-nightly.md) - [ ] Ensure integration tests are successful on OpenShift - [ ] Test SDP release upgrade against several demos (i.e. install current release, run demo, bump to dev release, check what needs to be patched) - [ ] Run all of the test suites in Jenkins (with all product versions, not just "nightly") ``` ### Other Pre-Requisites (before Feature Freeze) Search for open issues labeleded with [`scheduled-for/20XX-X`](https://github.com/search?q=org%3Astackabletech+label%3Ascheduled-for%2F20XX-X&type=issues&state=open) ```[tasklist] ### Other release-specific pre-requisites - [ ] ... ``` ### Feature freeze This will not be so crucial with release branches, but is nonetheless sensible as it will make it easier to cherry-pick any release-related bugfixes from main into the release branch. ### End of the release cycle (Release day) ```[tasklist] #### Technical tasks - [ ] Create release branches for docker-images (see stackable-utils for script to create branches) - [ ] Create release tag(s) for docker-images (see stackable-utils for scripts to create tags) - [ ] Create release branches for operators (see stackable-utils for script to create branches) - [ ] Create release tag(s) for operators (see stackable-utils for scripts to create tags) - [ ] Create release tag for stackable-cockpit (optional, highly experimental, requires manual tag creation) - [ ] Update changelogs in main branches (see stackable-utils for script to do this) - [ ] Generate CRD docs [website](https://crds.stackable.tech/) for the new release by following these [instructions](https://github.com/stackabletech/crddocs) - [ ] Check (selected) integration tests - [ ] Check getting started scripts (use a table in Nuclino) - [ ] Run/check getting-started scripts - [ ] Run/check demos with dev release and main branch and create draft PR for release-related changes - [ ] Test with locally updated (to new release number) `releases.yaml` - [ ] Update `release.yaml` in https://github.com/stackabletech/release/blob/main/releases.yaml - [ ] Check that an upgrade can be performed on an existing cluster without data loss. - [ ] Run all of the test suites ``` ```[tasklist] #### Documentation tasks - [ ] Check the Changelog and/or issue labels to compile Release Highlights - [ ] Upgrade guide: Document how to use stackablectl to uninstall all and install new release - [ ] Upgrade guide: Document how to use helm to uninstall all and install new release - [ ] Upgrade guide: Every breaking change of all our operators - [ ] Upgrade guide: List dropped supported product versions (if there are some) - [ ] Upgrade guide: List dropped supported operators (if there are some) - [ ] Upgrade guide: List supported k8s versions - [ ] Update version of main documentation repo - [ ] Set the release to "Released" in the Feature Tracker and create a new release - [ ] Update the getting-started page in the main docs and check it works with this release: https://github.com/stackabletech/documentation/blob/main/modules/ROOT/pages/getting_started.adoc ``` Marketing tasks can now reference published documentation. ```[tasklist] #### Marketing tasks - [ ] Write marketing / customer oriented release summary to be published in the marketing channels - [ ] Update the homepage banner (as long as we have it) to point to the new release - [ ] Write a blogpost / news article announcing the new release (optional) - [ ] Write a description of new demos for homepage/demos section - [ ] Announce Release on LinkedIn - [ ] Announce Release in Newsletter (optional) - [ ] Produce a release highlight video (optional) - [ ] Announce Release on Hacker News (optional) - [ ] Post an announcement in the GitHub [Discussions Announcement forum](https://github.com/stackabletech/community/discussions/categories/announcements) and make it a pinned discussion while at the same time removing the old pinned thread - [ ] Post an announcement in Discord - [ ] Post an announcement on DOK Community in the #be-shameless Channel (Ping Lars or Jim) - [ ] Post an announcement via OSBA (Ping Lars, info@osb-alliance.com) - [ ] Send announcement to Kubernetes Podcast (Ping Lars) - [ ] Send announcement to Heiser - [ ] Ping the stackable-ionos-tech channel or anyone responsible once all tags are created ``` ```[tasklist] ### Post-release tasks - [ ] Update the list of supported SDP releases in Jira (ping Jim) - [ ] Bump Rust version. This can be done [in this file](https://github.com/stackabletech/operator-templating/blob/main/config/rust.yaml) by changing `rust_version` and also for the ubi base image [here](https://github.com/stackabletech/docker-images/blob/main/ubi8-rust-builder/Dockerfile#L25). Please be aware that this action will change it for all repositories at the same time (when merging the templating PRs). - [ ] Check/bump versions of kube-rs and k8s-openapi (also checking the version of k8s we build against) - [ ] Check/bump ubi9 base image - [ ] preflight now checks automatically it's own version and only runs if latest ~~Check/bump preflight~~ - [ ] Openshift certification. Create an issue from this [template](https://github.com/stackabletech/issues/blob/main/.github/ISSUE_TEMPLATE/olm_manifests.md) for the OLM manifests - [ ] Define product versions to include in the next release - [ ] Add branch protection to release branches once they are stable - [ ] Mark any older releases that are now end-of-life as such in the documentation (Ping Felix) ```
Techassi commented 4 months ago

I would like to see some more changes. I can push what I have in mind to this PR if @NickLarsenNZ is okay with that.

NickLarsenNZ commented 4 months ago

I also had an idea to make some more issue templates in repos, and then refer to them in this task list.

That way they won't get too details in a small box.

Techassi commented 4 months ago

I also had an idea to make some more issue templates in repos, and then refer to them in this task list.

That way they won't get too details in a small box.

I like the idea! Then we can keep it simple in this template and add more details in the operator issue template.

adwk67 commented 4 months ago

Release notes A comment on compiling the release notes. For 24.7, I compared the individual changelogs with the list of PRs and found the changelogs to be of little/no help:

It is quicker to run through an (overly) exhaustive list of PRs than to try and merge two different sources of information. Clearly documented epics are also a great help as they link to the PRs e.g. https://github.com/stackabletech/issues/issues/594 and https://github.com/stackabletech/demos/issues/59.

Techassi commented 4 months ago

Thanks for the input!

Regarding the changelogs, we had a lot of discussions via direct messages. At this point in time many voices raised issues with the changelogs in general (missing entries, linking to wrong PRs, partial entries, format and spelling errors) and the current workflow around them.

That's why I think it is appropriate to revisit the following decision: https://github.com/stackabletech/decisions/issues/9 which was put on hold. I would also be happy to spend time on coming up with a new workflow, documentation and changes required in our repos to make this approach work.

NickLarsenNZ commented 3 months ago

I think we need to update the docker-images/pre-release.md template to also track the product bumps in each operator repo (and demos).


Update: I see the template people were used to was removed in https://github.com/stackabletech/issues/pull/605 and superseded by https://github.com/stackabletech/docker-images/pull/775/commits/d8a7e4b4f61aff876eef11eda990bce484decd5c (mentioned above).

I'm inclined to bring it back, as the workflow was quite good (bumping a product-version, then making the applicable version bumps in the operator and demo repos). It just needs some improvements to make it more clear what needs doing.


Update: There is a new tracking template, in https://github.com/stackabletech/docker-images/pull/825, where subtasks can be created from to manage each set of container updates.

NickLarsenNZ commented 2 months ago

Release notes A comment on compiling the release notes. For 24.7, I compared the individual changelogs with the list of PRs and found the changelogs to be of little/no help:

* some issues that are intentionally omitted from the CLs (e.g. docs) are still useful for highlighting to users (e.g. the production-ready rego rule documentation for Trino and HDFS)

* some things are missed or incomplete (e.g. where a change spans more than one PR, or vice-versa)

It is quicker to run through an (overly) exhaustive list of PRs than to try and merge two different sources of information. Clearly documented epics are also a great help as they link to the PRs e.g. #594 and stackabletech/demos#59.

@adwk67, the product image update templates have Acceptance Criteria for release note text to be provider, and a release-note label to be added if necessary.

Other templates will also need this, and will follow the same idea.