Skip to content

Conversation

nsingla
Copy link

@nsingla nsingla commented Aug 20, 2025

Description of your changes:
With builds now happening with Konflux, adding release steps for reference

Checklist:

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive release guide detailing semver-based versioning, prerequisites, and step-by-step workflows for MAJOR, MINOR, and PATCH releases.
    • Clarifies tagging conventions and branch strategies, including creating release branches, running release automation, updating parameters, and merging follow-up PRs.
    • Provides guidance on backporting fixes, testing/validation steps, and handling downstream branch management.
    • Includes practical examples and reference links to standards and build tags.

Copy link

coderabbitai bot commented Aug 20, 2025

Walkthrough

Adds 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

Cohort / File(s) Summary of changes
Release documentation
docs/release/RELEASE.md
Introduces comprehensive DSP release guide: semver policies; MAJOR/MINOR/PATCH workflows; branch/tag conventions; Konflux onboarder steps; digest collection; params.env updates; backporting strategy; downstream (odh-stable) notes; and references.

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
Loading
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)
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

A rabbit taps release notes neat,
With semver steps and branching feet.
Hop to Konflux, digests in paw,
Tagging the air with careful awe.
Params.env gets one last tweak—
Then off we bound to ship this week! 🐇✨

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
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@openshift-ci openshift-ci bot requested review from gmfrasca and mprahl August 20, 2025 15:00
Copy link

openshift-ci bot commented Aug 20, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign gmfrasca for approval. For more information see the Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nsingla nsingla requested a review from HumairAK August 20, 2025 15:01
Copy link

@coderabbitai coderabbitai bot left a 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 doc

The 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 clarity

Minor 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” spelling

Standard 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 example

This 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 branch

Please 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 435d98f and 7d28664.

📒 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 behindx.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 steps

Overall, 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.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

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

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

Copy link
Author

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

@HumairAK HumairAK closed this Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants