Skip to content

Conversation

@camilamacedo86
Copy link
Contributor

@camilamacedo86 camilamacedo86 commented Nov 20, 2025

This PR updates the experimental upgrade path to avoid failures caused by expected breaking changes in experimental features by moving experimental upgrade tests to main → PR to prevent experimental breakages from failing and forcing us to do a release.

Current issue

The current flow is: latest release → PR, with all experimental features enabled.
If an experimental feature breaks, the upgrade job fails, blocking merges until the next release.

Proposed change

Switch the experimental upgrade flow to: main → PR.
This keeps the stable upgrade path clean while still validating experimental changes against main.
So, we can safe merge a breaking change for experimental and then the follow PRs will pass and we still raising those scenarios to be aware of.

Copilot AI review requested due to automatic review settings November 20, 2025 16:50
@camilamacedo86 camilamacedo86 requested a review from a team as a code owner November 20, 2025 16:50
@openshift-ci openshift-ci bot requested review from OchiengEd and pedjak November 20, 2025 16:50
@netlify
Copy link

netlify bot commented Nov 20, 2025

Deploy Preview for olmv1 ready!

Name Link
🔨 Latest commit d04d559
🔍 Latest deploy log https://app.netlify.com/projects/olmv1/deploys/691f52f5e0f5cc0007e7c893
😎 Deploy Preview https://deploy-preview-2353--olmv1.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces experimental E2E upgrade testing that tests upgrades from the main branch to PR changes. The implementation adds a new script hack/test/install-from-main.sh that installs OLMv1 from the main branch source code, and updates the Makefile to use this script in the experimental upgrade test flow.

Key Changes

  • Adds install-from-main.sh script to clone, build, and install from the main branch
  • Creates new run-main-install Makefile target
  • Updates test-upgrade-experimental-e2e to use main branch installation instead of latest release

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
hack/test/install-from-main.sh New script that clones main branch, builds images, and installs OLMv1 from main for upgrade testing
Makefile Adds run-main-install target and new task list for experimental upgrade E2E tests

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@camilamacedo86 camilamacedo86 force-pushed the fix-ci-workwound-up-next-release branch from 197c984 to 7c004f4 Compare November 20, 2025 16:55
@codecov
Copy link

codecov bot commented Nov 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.20%. Comparing base (1355ff7) to head (d04d559).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2353      +/-   ##
==========================================
- Coverage   74.23%   74.20%   -0.03%     
==========================================
  Files          91       91              
  Lines        7239     7239              
==========================================
- Hits         5374     5372       -2     
- Misses       1433     1434       +1     
- Partials      432      433       +1     
Flag Coverage Δ
e2e 44.29% <ø> (-0.07%) ⬇️
experimental-e2e 48.49% <ø> (+0.01%) ⬆️
unit 58.54% <ø> (ø)

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

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI review requested due to automatic review settings November 20, 2025 17:31
@camilamacedo86 camilamacedo86 force-pushed the fix-ci-workwound-up-next-release branch from 7c004f4 to b7a693b Compare November 20, 2025 17:31
Copilot finished reviewing on behalf of camilamacedo86 November 20, 2025 17:35
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@camilamacedo86 camilamacedo86 force-pushed the fix-ci-workwound-up-next-release branch from b7a693b to d04d559 Compare November 20, 2025 17:42
@camilamacedo86 camilamacedo86 changed the title 🌱 (fix): Experimental E2E Upgrade by testing main to pr changes 🌱 (fix): Experimental E2E Upgrade does breaks up we do a release when breaking changes on experimental features are merged Nov 20, 2025
echo "Deploying manifests from main branch..."
# Extract CERT_MGR_VERSION from main branch Makefile
# Expected Makefile line format: export CERT_MGR_VERSION := <value>
CERT_MGR_VERSION_FROM_MAIN=$(grep "^export CERT_MGR_VERSION" Makefile | awk -F'[ :=]+' '{print $NF}')
Copy link
Contributor

Choose a reason for hiding this comment

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

if we're anyway in the checked out main branch, why not use some of the make targets like make kind-deploy?

Copy link
Contributor Author

@camilamacedo86 camilamacedo86 Nov 24, 2025

Choose a reason for hiding this comment

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

We need to run the install script (same generated when we do a release)
That’s different from running make kind-deploy.

Copy link
Contributor

Choose a reason for hiding this comment

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

Exactly, this is duplicating a lot of existing Makefile behavior.

Copy link
Contributor

@perdasilva perdasilva left a comment

Choose a reason for hiding this comment

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

My only concern is that we're re-determining the cert manager version. Maybe we could move some (or all?) of the scripts logic into the Makefile in the future. For now, the most important thing is to unblock CI. So, if there's anything to improve, we can do it as a follow up.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 24, 2025
@openshift-ci
Copy link

openshift-ci bot commented Nov 24, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: perdasilva

The full list of commands accepted by this bot can be found here.

The pull request process is described 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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 24, 2025
@perdasilva perdasilva removed the lgtm Indicates that a PR is ready to be merged. label Nov 24, 2025
@camilamacedo86
Copy link
Contributor Author

camilamacedo86 commented Nov 24, 2025

My only concern is that we're re-determining the cert manager version. Maybe we could move some (or all?) of the scripts logic into the Makefile in the future.

The CertManager is defined in the Makefile
The script is just getting the value used in the Makefile
We are not redefining it here.

run-latest-release:
curl -L -s https://github.com/operator-framework/operator-controller/releases/latest/download/$(notdir $(RELEASE_INSTALL)) | bash -s

.PHONY: run-main-install
Copy link
Contributor

Choose a reason for hiding this comment

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

This duplicates the run-internal target, but with a script.

@tmshort
Copy link
Contributor

tmshort commented Nov 24, 2025

I'm actually going to disagree with this approach.

It’s not just main->experimental, there’s two axis here: standard or experimental, and prior-release or main (not-yet-released). With those we can see that we have 4 possibilities… my initial look at the Makefile indicates that for test-upgrade-experimental-e2e, it’s always using the experimental manifest, so it’s doing an experimental upgrade. We seem to be missing a number of interesting possibilities here (note “main” could represent the PR as well).

test-upgrade-e2e: standard[prior-release] -> standard[main/PR] (REQUIRED)
test-upgrade-experimental-e2e: experimental[prior-release] -> experimental[main/PR] (REQUIRED -> INFORMATIVE?)

What we don’t have is the situation where we cross standard and experimental:

standard[main] -> experimental[mainPR] (REQUIRED?)
standard[prior] -> experimental[main/PR] (INFORMATIVE?)

This PR just modifies the existing test-upgrade-experimental-e2e, and I think that's the wrong thing to do. I think that one should be made informative, and new tests added for these standard-> experimental cases.

See #2360 as an alternative

@tmshort
Copy link
Contributor

tmshort commented Nov 26, 2025

Closing in favor of #2360

@tmshort tmshort closed this Nov 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants