operator-registry icon indicating copy to clipboard operation
operator-registry copied to clipboard

release bundle attribute in version property

Open grokspawn opened this issue 3 months ago • 7 comments

Description of the change: Adds a new bundle-scoped "release" flag to the existing version property to allow for more sophisticated replacement strategies with improved transparency.
Adds a new substitutesFor catalog template to help folks trivially adopt the new approaches and avoid common error scenarios.

Motivation for the change: As brief and RFC state, the imperative upgrade graph building process had a CSV attribute "substitutesFor" which allowed tooling to perform bundle-level replacement in resulting graphs. We had no equivalent FBC approach to the problem where there is a packaging-only change which we need to insert into an existing graph in a way that it didn't pretend to be the original bundle, but made it possible to prefer the new bundle over the old one, and even upgrade from the old to the new.

Reviewer Checklist

  • [ ] Implementation matches the proposed design, or proposal is updated to match implementation
  • [ ] Sufficient unit test coverage
  • [ ] Sufficient end-to-end test coverage
  • [ ] Docs updated or added to /docs
  • [ ] Commit messages sensible and descriptive

grokspawn avatar Sep 09 '25 18:09 grokspawn

Skipping CI for Draft Pull Request. If you want CI signal for your change, please convert it to an actual PR. You can still manually trigger a test run with /test all

openshift-ci[bot] avatar Sep 09 '25 18:09 openshift-ci[bot]

[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 camilamacedo86 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

openshift-ci[bot] avatar Sep 09 '25 18:09 openshift-ci[bot]

Codecov Report

:x: Patch coverage is 61.41304% with 71 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 57.58%. Comparing base (3342f5c) to head (82383cf).

Files with missing lines Patch % Lines
alpha/template/substitutes/substitutes.go 67.04% 23 Missing and 6 partials :warning:
alpha/template/converter/converter.go 0.00% 12 Missing :warning:
alpha/model/model.go 79.31% 6 Missing :warning:
pkg/registry/csv.go 45.45% 5 Missing and 1 partial :warning:
pkg/registry/parse.go 64.70% 3 Missing and 3 partials :warning:
pkg/registry/bundle.go 55.55% 2 Missing and 2 partials :warning:
pkg/lib/validation/bundle.go 0.00% 2 Missing and 1 partial :warning:
pkg/registry/registry_to_model.go 40.00% 2 Missing and 1 partial :warning:
alpha/declcfg/declcfg_to_model.go 75.00% 1 Missing and 1 partial :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1792      +/-   ##
==========================================
+ Coverage   57.50%   57.58%   +0.07%     
==========================================
  Files         136      137       +1     
  Lines       12934    13105     +171     
==========================================
+ Hits         7438     7546     +108     
- Misses       4341     4388      +47     
- Partials     1155     1171      +16     

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

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

codecov[bot] avatar Sep 09 '25 18:09 codecov[bot]

Please note that this repo's merge method is set to squash, so all of these commits will get squished to a single one even if I forget to do it manually.

They're preserved here mostly because there has been a lot of ground covered over the lifetime of this feature w.r.t. different implementation strategies, and I didn't want to lose that.

grokspawn avatar Oct 17 '25 19:10 grokspawn

Needs to land after https://github.com/operator-framework/api/pull/454 merges and a new o-f/api release is cut. /hold

grokspawn avatar Dec 01 '25 21:12 grokspawn

merge blocked by https://github.com/operator-framework/api/pull/454

grokspawn avatar Dec 02 '25 21:12 grokspawn

/hold cancel v0.37.0 of o-f/api has been published.

grokspawn avatar Dec 11 '25 21:12 grokspawn