Skip to content
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

update doc and workflow args #863

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Conversation

maleck13
Copy link
Collaborator

No description provided.

Signed-off-by: craig <cbrookes@redhat.com>

rh-pre-commit.version: 2.2.0
rh-pre-commit.check-secrets: ENABLED
Copy link

codecov bot commented Sep 19, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 78.93%. Comparing base (ece13e8) to head (a92a72b).
Report is 186 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #863      +/-   ##
==========================================
- Coverage   80.20%   78.93%   -1.28%     
==========================================
  Files          64       80      +16     
  Lines        4492     6209    +1717     
==========================================
+ Hits         3603     4901    +1298     
- Misses        600      971     +371     
- Partials      289      337      +48     
Flag Coverage Δ
bare-k8s-integration 4.41% <ø> (?)
controllers-integration 68.98% <ø> (?)
gatewayapi-integration 10.85% <ø> (?)
integration ?
istio-integration 55.13% <ø> (?)
unit 30.96% <ø> (+0.93%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
api/v1beta1 (u) 38.46% <0.00%> (-32.97%) ⬇️
api/v1beta2 (u) 74.10% <63.82%> (-17.33%) ⬇️
pkg/common (u) 88.13% <ø> (-0.70%) ⬇️
pkg/istio (u) 72.50% <ø> (-1.41%) ⬇️
pkg/log (u) 94.73% <ø> (ø)
pkg/reconcilers (u) ∅ <ø> (∅)
pkg/rlptools (u) 83.64% <ø> (+4.19%) ⬆️
controllers (i) 79.84% <80.74%> (+3.04%) ⬆️

see 42 files with indirect coverage changes

description: Kuadrant Operator version
default: 0.0.0
description: Kuadrant Operator version (excluding the v)
default: "200.20.2-replace"
Copy link
Contributor

Choose a reason for hiding this comment

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

What is "200.20.2-replace"? I'm guess it's meant to work a better example of a semantic version than "0.0.0" perhaps.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yes exactly

### Regular Minor Release
Before releasing a new minor version of the Kuadrant Operator each dependency (see below) should also have a minor release if it has changes since the last release.

For each component, compare the git commit on the latest release against main if it has changed, beyond just version bumps, follow the release process for that dependency (linked below) before doing a release of Kuadrant-Operator. You will need to gather the new released versions as you go to use with the release of the kuadrant-operator.
Copy link
Contributor

Choose a reason for hiding this comment

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

I believe this topic was discussed at the last Kuadrant community call. Maybe I misunderstood the conclusion (if there was any), but I left with the impression that cutting a release of a component wouldn't necessarily have to be such an automatic process as described here. Rather, some communication might be desirable.

This is first so people focused on the components can have a heads-up in case of an otherwise automatic cut of a new version of a component could "break a promise" of shipping specific issues within the next planned version of the component. If some of those issues risk overflowing to the version after that, at least communicating that to users beforehand (via reassigning milestones, labels, etc) would be nice.

The other reason raised was that such coupling between Kuadrant Operator and its dependencies regarding releases may not be desirable in the first place, on any condition. In general, each component has its own story and should be treated just like any other dependency (e.g., a Golang lib the Kuadrant Operator imports.) The exception to this rule being the obvious case where coupling exists anyway, such as for releasing a feature of Kuadrant Operator with direct counterparts in the components.

I'm guessing the pain point we're trying to fix with this proposed change to the release process in part derives from the often truncated communication that has to happen between Kuadrant and its components before cutting a release. To help mitigate that, it was proposed having a (rotating) "release coordinator". This person would not only help us with the communication, but by spotting opportunities to improve the release process overall. (cc @pmccarthy)

Speaking about improving the process, I think we should work on making the process of cutting a release of the components more efficient. I believe Authorino Operator can be a reference here. With a "click of a button", one can cut a new release of Authorino Operator today.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

One of the main issues I see is that we run all of our tests against the latest main of each dependency, then at release time we sometimes step back in time to an actual release of a component. So I see two options to bring us to a saner place

  1. always cut a new release from main of each dependency if it has changed
  2. pin the versions of the dependencies on main and move them as needed

Copy link
Contributor

Choose a reason for hiding this comment

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

If your going to cut a new release of each dependency it should be based of the sha's from the last nightly where all tests passed and not the current main's. Those changes many only be there minutes and brake the nightly builds. This main even mean that it is not the current main for kuadrant that is used in the release.

Pinning the versions of the dependencies in main is the better option. Nightly builds can patch the version to get the latest if that is needed. Subcomponents then can have their release cadence and kuadrant does not need to support the latest version of the subcomponents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

3 participants