-
Notifications
You must be signed in to change notification settings - Fork 13
chore(CI): Release process #201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Nelesh Singla <[email protected]>
WalkthroughAdds a new release guide at docs/release/RELEASE.md describing DSP release procedures: versioning rules, prerequisites, and step-by-step workflows for MAJOR, MINOR, and PATCH releases, including branch/tag naming, Konflux release onboarder usage, digest retrieval, params.env updates, testing, cherry-picking, and downstream branch propagation. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Admin as Release Admin
participant Main as main/master
participant Rel as release branch (vX.Y+1)
participant Konflux as Konflux Onboarder
participant GH as GitHub PRs/Tags
participant CI as Tests
participant Art as Image Registry
Note over Admin,Rel: MINOR release flow (create new minor series)
Admin->>Main: Ensure main is up to date
Admin->>GH: Create release branch vX.Y+1 from main
GH-->>Rel: Branch created
Admin->>Konflux: Run onboarder workflow for vX.Y+1
Konflux-->>GH: Automation PR with release configs
Admin->>GH: Review and merge onboarder PR into vX.Y+1
Konflux-->>Art: Build and push component images
Konflux-->>Admin: Provide image digests
Admin->>Rel: Update params.env with digests
Admin->>GH: Open PR to vX.Y+1 with params.env updates
GH-->>Rel: Merge PR
Rel->>CI: Trigger tests
CI-->>Admin: Report results
alt Issues found
Admin->>Main: Fix on main/master
Admin->>Rel: Cherry-pick fixes into vX.Y+1
Rel->>CI: Re-run tests
end
Admin->>GH: Create tag vX.Y+1.0
GH-->>Admin: Tag published
sequenceDiagram
autonumber
actor Admin as Release Admin
participant vxY as release/vX.Y
participant vxYm1 as release/vX.Y-1
participant Konflux as Konflux Onboarder
participant GH as GitHub PRs/Tags
participant CI as Tests
participant Art as Image Registry
Note over Admin,vxY: PATCH release flow (backports)
Admin->>vxY: Backport fixes (cherry-pick commits)
opt Maintain previous stream
Admin->>vxYm1: Backport applicable fixes
end
Admin->>Konflux: Run onboarder for vX.Y (and vX.Y-1 if applicable)
Konflux-->>GH: Automation PR(s)
Admin->>GH: Merge onboarder PR(s)
Konflux-->>Art: Build and push images
Konflux-->>Admin: Provide image digests
Admin->>vxY: Update params.env with digests
Admin->>GH: Open PR(s) to vX.Y (and vX.Y-1)
GH-->>vxY: Merge PR(s)
vxY->>CI: Trigger tests
CI-->>Admin: Results
Admin->>GH: Create tag(s) vX.Y.Z (and vX.Y-1.A)
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/release/RELEASE.md (1)
91-93
: Remove unused reference or reference it in the docThe link reference [build-tags] is defined but never used, tripping markdownlint MD053.
Apply this diff to remove it (or add a sentence in the body that references it):
[semver]: https://semver.org/ -[build-tags]: https://github.com/opendatahub-io/data-science-pipelines-operator/actions/workflows/build-tags.yml
🧹 Nitpick comments (14)
docs/release/RELEASE.md (14)
17-18
: Polish the “Note” for grammar and clarityMinor grammatical fixes and concision.
Apply this diff:
-> Note: In main branch all images should point to `latest` and not any specific versions, as `main` is rapidly moving, -> it is likely to quickly become incompatible with any specific tags/shas that are hardcoded. +> Note: On the main branch, all images should point to `latest` rather than specific versions. Because `main` moves quickly, +> hardcoded tags/SHAs will likely become incompatible soon.
20-20
: Use “Prerequisites” spellingStandard spelling in headings.
-## Release pre-requisites +## Release prerequisites
30-31
: Fix capitalization and flow (“API-breaking”)Improves readability and correctness.
-Given that `MAJOR` releases often contain large scale, api breaking, changes. It is likely the release process will vary -between each `MAJOR` release. As such, each `MAJOR` release should have a specifically catered strategy. +Given that `MAJOR` releases often contain large-scale, API-breaking changes, the release process will likely vary +between releases. Each `MAJOR` release should have a specifically tailored strategy.
35-35
: Tighten grammar in MINOR release intro-Let `x.y.z` be the `latest` release that is highest DSPO/DSP version. These are steps on how to release `x.y+1`. +Let `x.y.z` be the latest release with the highest DSPO/DSP version. These are the steps to release `x.y+1`.
39-41
: Standardize default branch naming and add a concrete exampleThis repo’s default branch appears to be “master” (per PR target). Mixing “main/master” is ambiguous. Suggest standardizing to the repo’s actual default and adding an example.
If “master” is the default here, consider:
-1. Cut branch `vx.y+1` from `main/master` +1. Cut branch `vx.y+1` from the default branch (`master`) + - Example: from `master`, cut `v1.3` -2. Use the [Konflux release onboarder](https://github.com/opendatahub-io/odh-konflux-central/actions/workflows/odh-konflux-release-onboarder.yml) workflow, specifying the release branch and release tag +2. Use the [Konflux release onboarder](https://github.com/opendatahub-io/odh-konflux-central/actions/workflows/odh-konflux-release-onboarder.yml) workflow, specifying the release branch and release tag -3. Merge the PR raised by the above workflow to the release branch +3. Merge the PR raised by the above workflow into the release branchPlease confirm the actual default branch and I can apply consistent replacements throughout.
42-45
: Use correct terms (“image SHA digests”) and capitalization (“PR”)-4. Retrieve the sha images from the resulting workflow (check [konflux](https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/open-data-hub-tenant/applications/opendatahub-release/components?name=odh-ml-pipe) for the digests for every component) - - Update `params.env` and submit a new pr to `vx.y+1` branch +4. Retrieve the image SHA digests from the resulting workflow (check [konflux](https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/open-data-hub-tenant/applications/opendatahub-release/components?name=odh-ml-pipe) for the digests for every component) + - Update `params.env` and submit a new PR to the `vx.y+1` branch
47-47
: Renumber section header (no “2.” section exists)“3. Tag the Release” jumps from “1.”; make it “2.” for consistency.
-#### 3. Tag the Release +#### 2. Tag the Release
49-49
: Minor grammar: “Create a release tag” + e.g. comma-1. Create a tag release (using the branches from above) for `x.y+1.0` (e.g. `v1.3.0`) +1. Create a release tag (on the branch above) for `x.y+1.0` (e.g., `v1.3.0`)
53-55
: Fix pluralization and clarity in PATCH policy-DSP supports bug/security fixes for versions that are at most 1 `MINOR` versions behind the latest `MINOR` release. -For example, if `v1.2` is the `latest` DSP release, DSP will backport bugs/security fixes to `v1.1` as `PATCH` (z) releases. +DSP supports bug/security fixes for versions that are at most 1 `MINOR` version behind the latest `MINOR` release. +For example, if `v1.2` is the latest DSP release, DSP will backport bug/security fixes to `v1.1` as `PATCH` (z) releases.
56-57
: Clarify definitions of x.y.z and x.y-1.a-Let `x.y.z` be the `latest` release that is the highest version.\ -Let `x.y-1.a` be the highest version release that is one `MINOR` version behind `x.y.z` +Let `x.y.z` be the latest release (highest version).\ +Let `x.y-1.a` be the highest release that is one `MINOR` version behind `x.y.z`.
60-61
: Punctuation: combine into a single sentence-If the latest release that is the highest version is `v1.2.0` -Then: +If the latest release (highest version) is `v1.2.0`, then:
73-76
: Tighten example phrasing; remove fragment-Following along our example, suppose a security bug was found in `main`, `x.y.z`, and `x.y-1.a`. -And suppose that commit `08eb98d` in `main` has resolved this issue. - -Then the commit `08eb98d` needs to trickle to `vx.y.z` and `vx.y-1.a` as `PATCH` (z) releases: `vx.y.z+1` and `vx.y-1.a+1` +Following our example, suppose a security bug was found in `main`, `x.y.z`, and `x.y-1.a`, and commit `08eb98d` in `main` resolved it. + +Then commit `08eb98d` needs to trickle to `vx.y.z` and `vx.y-1.a` as `PATCH` (z) releases: `vx.y.z+1` and `vx.y-1.a+1`.
81-82
: Repeat fix: “image SHA digests” and “PR”-4. Retrieve the sha images from the resulting workflow (check [konflux](https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/open-data-hub-tenant/applications/opendatahub-release/components?name=odh-ml-pipe) for the digests for every component) - - Update `params.env` and submit a new pr to `vx.y` and `vx.y-1` branches respectively +4. Retrieve the image SHA digests from the resulting workflow (check [konflux](https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/open-data-hub-tenant/applications/opendatahub-release/components?name=odh-ml-pipe) for the digests for every component) + - Update `params.env` and submit a new PR to the `vx.y` and `vx.y-1` branches, respectively
88-89
: Fix “upto” → “up to”-- ensure `odh-stable` branches are upto date with bug/security fixes for the appropriate DSPO/DSP versions, +- ensure `odh-stable` branches are up to date with bug/security fixes for the appropriate DSPO/DSP versions,
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
docs/release/RELEASE.md
(1 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/release/RELEASE.md
[grammar] ~17-~17: There might be a mistake here.
Context: ...tied to [kfp-tekton] upstream. > Note: In main branch all images should point to ...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ...et x.y.z
be the latest
release that is highest DSPO/DSP version. These are ste...
(QB_NEW_EN)
[grammar] ~53-~53: There might be a mistake here.
Context: ...sions behind the latest MINOR
release. For example, if v1.2
is the latest
D...
(QB_NEW_EN)
[grammar] ~59-~59: There might be a mistake here.
Context: ...ORversion behind
x.y.z` Example: If the latest release that is the highes...
(QB_NEW_EN)
[grammar] ~73-~73: There might be a mistake here.
Context: ...found in main
, x.y.z
, and x.y-1.a
. And suppose that commit 08eb98d
in `ma...
(QB_NEW_EN)
🪛 markdownlint-cli2 (0.17.2)
docs/release/RELEASE.md
92-92: Link and image reference definitions should be needed
Unused link or image reference definition: "build-tags"
(MD053, link-image-reference-definitions)
🔇 Additional comments (1)
docs/release/RELEASE.md (1)
1-49
: Solid structure and clear, actionable stepsOverall, the release guide is well-structured and provides clear workflows for MAJOR/MINOR/PATCH releases, with practical references to Konflux and versioning rules. With the minor edits suggested elsewhere, this will be in great shape.
PATCH version when you make backward compatible bug fixes | ||
``` | ||
|
||
DSPO and DSP versioning is tied together, and DSP `MAJOR` versions are tied to [kfp-tekton] upstream. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add missing link reference for [kfp-tekton]
[kfp-tekton] is referenced but not defined, resulting in a broken link in rendered Markdown.
Apply this diff near the reference definitions to fix:
[semver]: https://semver.org/
-[build-tags]: https://github.com/opendatahub-io/data-science-pipelines-operator/actions/workflows/build-tags.yml
+[kfp-tekton]: https://github.com/kubeflow/kfp-tekton
Committable suggestion skipped: line range outside the PR's diff.
🤖 Prompt for AI Agents
In docs/release/RELEASE.md around line 15, the Markdown reference [kfp-tekton]
is used but not defined; add a reference definition for [kfp-tekton] near the
other reference definitions (e.g., [kfp-tekton]:
https://github.com/kubeflow/kfp-tekton) so the link renders correctly.
2. Use the [Konflux release onboarder](https://github.com/opendatahub-io/odh-konflux-central/actions/workflows/odh-konflux-release-onboarder.yml) workflow, specifying the release branch and release tag | ||
3. Merge the PR raised by the above workflow to the release branch | ||
4. Retrieve the sha images from the resulting workflow (check [konflux](https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/open-data-hub-tenant/applications/opendatahub-release/components?name=odh-ml-pipe) for the digests for every component) | ||
- Update `params.env` and submit a new pr to `vx.y+1` branch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
params.env is in dspo repo - I'm thinking let's get rid of this, and do one doc in the DSPO repo where we tell the user to cut the branches for both dspo/dsp as neeeded, for DSP we'd build the KFP images, and dspo we'd build the DSPO image & update the params.env file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh yeah, :doh
I'll close this PR and modify the release doc in DSPO only then
Description of your changes:
With builds now happening with Konflux, adding release steps for reference
Checklist:
Summary by CodeRabbit