Skip to content

chore(operator): eradicate Python step 1#18754

Closed
porridge wants to merge 21 commits intomasterfrom
konflux/porridge/bundle-helpers-rewrite-fixorder
Closed

chore(operator): eradicate Python step 1#18754
porridge wants to merge 21 commits intomasterfrom
konflux/porridge/bundle-helpers-rewrite-fixorder

Conversation

@porridge
Copy link
Copy Markdown
Contributor

Description

change me!

User-facing documentation

Testing and quality

  • the change is production ready: the change is GA, or otherwise the functionality is gated by a feature flag
  • CI results are inspected

Automated testing

  • added unit tests
  • added e2e tests
  • added regression tests
  • added compatibility tests
  • modified existing tests

How I validated my change

change me!

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Jan 29, 2026

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

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey - I've found 1 security issue, 1 other issue, and left some high level feedback:

Security issues:

  • Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code. (link)

General comments:

  • The status-check job references needs.e2e-test but this workflow does not define an e2e-test job, which will cause the job to fail at runtime; either add the job or remove it from needs.
  • In the test-go-implementation job, the Upload Go bundle artifacts step uses if: steps.check-go.outputs.exists == 'true' but there is no check-go step defined, so this condition should be updated or the guard removed.
  • The Go patch-csv command currently panics but is already wired into dispatch.sh and used when USE_GO_BUNDLE_HELPER=true; consider returning a clear error instead of panicking so callers and CI get a more controlled failure mode during the migration period.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `status-check` job references `needs.e2e-test` but this workflow does not define an `e2e-test` job, which will cause the job to fail at runtime; either add the job or remove it from `needs`.
- In the `test-go-implementation` job, the `Upload Go bundle artifacts` step uses `if: steps.check-go.outputs.exists == 'true'` but there is no `check-go` step defined, so this condition should be updated or the guard removed.
- The Go `patch-csv` command currently panics but is already wired into `dispatch.sh` and used when `USE_GO_BUNDLE_HELPER=true`; consider returning a clear error instead of panicking so callers and CI get a more controlled failure mode during the migration period.

## Individual Comments

### Comment 1
<location> `operator/bundle_helpers/pkg/yamlformat/pyaml_compat.go:15` </location>
<code_context>
+// - Single quotes for simple string values
+// - Empty string as '' not ""
+// - Flow style for arrays/maps where appropriate
+func EncodePyYAMLStyle(w io.Writer, data interface{}) error {
+	var buf bytes.Buffer
+
</code_context>

<issue_to_address>
**issue (complexity):** Consider simplifying EncodePyYAMLStyle by avoiding a no-op normalization layer and extra buffer until concrete PyYAML-style transformations are needed or clearly documenting it as a future hook.

You can reduce indirection and conceptual overhead here without changing behavior.

Right now `EncodePyYAMLStyle` + `normalizeToPyYAMLStyle` introduce:
- An extra buffer and write path
- An exported symbol that promises PyYAML-style output which is not yet implemented
- A named post-processing step that is a no‑op

Two concrete simplifications that preserve all current behavior:

1. **Remove the extra buffer and postpone normalization until it exists**

```go
// EncodePyYAMLStyle encodes data to YAML.
//
// NOTE: This currently delegates directly to yaml.Encoder with 2‑space indent.
// It is intended as the single call site to add PyYAML-style normalization
// once we know the exact rules we need to match.
func EncodePyYAMLStyle(w io.Writer, data interface{}) error {
	encoder := yaml.NewEncoder(w)
	encoder.SetIndent(2)

	if err := encoder.Encode(data); err != nil {
		return err
	}
	return encoder.Close()
}
```

You can reintroduce a `normalizeToPyYAMLStyle` buffer step later when you have concrete transformations to apply, keeping call sites unchanged.

2. **If you want to keep the hook now, make the placeholder explicit and internal**

```go
func EncodePyYAMLStyle(w io.Writer, data interface{}) error {
	var buf bytes.Buffer

	encoder := yaml.NewEncoder(&buf)
	encoder.SetIndent(2)

	if err := encoder.Encode(data); err != nil {
		return err
	}
	if err := encoder.Close(); err != nil {
		return err
	}

	output := normalizeToPyYAMLStyle(buf.Bytes())
	_, err := w.Write(output)
	return err
}

// normalizeToPyYAMLStyle is a placeholder; it currently returns yaml.v3 output
// unchanged. PyYAML-compatible formatting will be implemented here once
// finalized.
func normalizeToPyYAMLStyle(input []byte) []byte {
	return input
}
```

Key points:
- Either clarify in the doc comment that PyYAML compatibility is *not yet* implemented and this is a future hook, or
- Avoid the abstraction until you have concrete normalization behavior.

Both options keep existing functionality but reduce confusion and mental overhead for readers.
</issue_to_address>

### Comment 2
<location> `operator/bundle_helpers/cmd/fix_descriptors.go:78` </location>
<code_context>
	cmd := exec.Command(normalizerPath)
</code_context>

<issue_to_address>
**security (go.lang.security.audit.dangerous-exec-command):** Detected non-static command inside Command. Audit the input to 'exec.Command'. If unverified user data can reach this call site, this is a code injection vulnerability. A malicious actor can inject a malicious script to execute arbitrary code.

*Source: opengrep*
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@rhacs-bot
Copy link
Copy Markdown
Contributor

rhacs-bot commented Jan 29, 2026

Images are ready for the commit at 7a223d5.

To use with deploy scripts, first export MAIN_IMAGE_TAG=4.11.x-87-g7a223d5ae4.

@codecov
Copy link
Copy Markdown

codecov bot commented Jan 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 49.48%. Comparing base (773e872) to head (7a223d5).
⚠️ Report is 381 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master   #18754   +/-   ##
=======================================
  Coverage   49.48%   49.48%           
=======================================
  Files        2661     2661           
  Lines      200782   200782           
=======================================
+ Hits        99350    99353    +3     
+ Misses      94015    94012    -3     
  Partials     7417     7417           
Flag Coverage Δ
go-unit-tests 49.48% <ø> (+<0.01%) ⬆️

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:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Feb 9, 2026

@github-actions[bot]: The /retest command does not accept any targets.
The following commands are available to trigger required jobs:

/test gke-nongroovy-e2e-tests
/test gke-ui-e2e-tests

The following commands are available to trigger optional jobs:

/test aks-qa-e2e-tests
/test aro-qa-e2e-tests
/test eks-qa-e2e-tests
/test gke-external-pg-17-qa-e2e-tests
/test gke-latest-nongroovy-e2e-tests
/test gke-latest-operator-e2e-tests
/test gke-latest-qa-e2e-tests
/test gke-latest-ui-e2e-tests
/test gke-nongroovy-compatibility-tests
/test gke-oldest-nongroovy-e2e-tests
/test gke-oldest-operator-e2e-tests
/test gke-oldest-qa-e2e-tests
/test gke-oldest-ui-e2e-tests
/test gke-operator-e2e-tests
/test gke-qa-e2e-tests
/test gke-race-condition-qa-e2e-tests
/test gke-scale-tests
/test gke-scanner-v4-install-tests
/test gke-sensor-integration-tests
/test gke-upgrade-tests
/test gke-version-compatibility-tests
/test ibmcloudz-4-14-qa-e2e-tests
/test ibmcloudz-4-15-qa-e2e-tests
/test ibmcloudz-4-16-qa-e2e-tests
/test ibmcloudz-4-17-qa-e2e-tests
/test ocp-4-12-compliance-e2e-tests
/test ocp-4-12-nongroovy-e2e-tests
/test ocp-4-12-operator-e2e-tests
/test ocp-4-12-qa-e2e-tests
/test ocp-4-12-scanner-v4-install-tests
/test ocp-4-12-sensor-integration-tests
/test ocp-4-12-ui-e2e-tests
/test ocp-4-20-compliance-e2e-tests
/test ocp-4-20-crun-qa-e2e-tests
/test ocp-4-20-fips-qa-e2e-tests
/test ocp-4-20-nongroovy-e2e-tests
/test ocp-4-20-operator-e2e-tests
/test ocp-4-20-qa-e2e-tests
/test ocp-4-20-scanner-v4-install-tests
/test ocp-4-20-sensor-integration-tests
/test ocp-4-20-ui-e2e-tests
/test ocp-4-21-compliance-e2e-tests
/test ocp-4-21-crun-qa-e2e-tests
/test ocp-4-21-fips-qa-e2e-tests
/test ocp-4-21-nongroovy-e2e-tests
/test ocp-4-21-operator-e2e-tests
/test ocp-4-21-qa-e2e-tests
/test ocp-4-21-scanner-v4-install-tests
/test ocp-4-21-sensor-integration-tests
/test ocp-4-21-ui-e2e-tests
/test ocp-dev-preview-compliance-e2e-tests
/test ocp-dev-preview-fips-qa-e2e-tests
/test ocp-dev-preview-nongroovy-e2e-tests
/test ocp-dev-preview-operator-e2e-tests
/test ocp-dev-preview-qa-e2e-tests
/test ocp-dev-preview-scanner-v4-install-tests
/test ocp-dev-preview-sensor-integration-tests
/test ocp-dev-preview-ui-e2e-tests
/test ocp-next-candidate-compliance-e2e-tests
/test ocp-next-candidate-fips-qa-e2e-tests
/test ocp-next-candidate-nongroovy-e2e-tests
/test ocp-next-candidate-operator-e2e-tests
/test ocp-next-candidate-qa-e2e-tests
/test ocp-next-candidate-scanner-v4-install-tests
/test ocp-next-candidate-sensor-integration-tests
/test ocp-next-candidate-ui-e2e-tests
/test ocp-stable-scanner-v4-install-compliance-e2e-tests
/test ocp-stable-scanner-v4-install-nongroovy-e2e-tests
/test ocp-stable-scanner-v4-install-operator-e2e-tests
/test ocp-stable-scanner-v4-install-qa-e2e-tests
/test ocp-stable-scanner-v4-install-scanner-v4-install-tests
/test ocp-stable-scanner-v4-install-sensor-integration-tests
/test ocp-stable-scanner-v4-install-ui-e2e-tests
/test osd-aws-qa-e2e-tests
/test osd-gcp-qa-e2e-tests
/test powervs-4-14-qa-corebpf-e2e-tests
/test powervs-4-15-qa-corebpf-e2e-tests
/test powervs-4-16-qa-corebpf-e2e-tests
/test powervs-4-17-qa-corebpf-e2e-tests
/test powervs-4-18-qa-corebpf-e2e-tests
/test powervs-4-19-qa-corebpf-e2e-tests
/test powervs-4-20-qa-corebpf-e2e-tests
/test rosa-fips-qa-e2e-tests
/test rosa-hcp-qa-e2e-tests
/test rosa-qa-e2e-tests

Use /test all to run the following jobs that were automatically triggered:

pull-ci-stackrox-stackrox-master-gke-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-gke-operator-e2e-tests
pull-ci-stackrox-stackrox-master-gke-qa-e2e-tests
pull-ci-stackrox-stackrox-master-gke-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-gke-ui-e2e-tests
pull-ci-stackrox-stackrox-master-gke-upgrade-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-scanner-v4-install-tests
Details

In response to this:

/retest main-on-push

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Feb 9, 2026

@github-actions[bot]: The /retest command does not accept any targets.
The following commands are available to trigger required jobs:

/test gke-nongroovy-e2e-tests
/test gke-ui-e2e-tests

The following commands are available to trigger optional jobs:

/test aks-qa-e2e-tests
/test aro-qa-e2e-tests
/test eks-qa-e2e-tests
/test gke-external-pg-17-qa-e2e-tests
/test gke-latest-nongroovy-e2e-tests
/test gke-latest-operator-e2e-tests
/test gke-latest-qa-e2e-tests
/test gke-latest-ui-e2e-tests
/test gke-nongroovy-compatibility-tests
/test gke-oldest-nongroovy-e2e-tests
/test gke-oldest-operator-e2e-tests
/test gke-oldest-qa-e2e-tests
/test gke-oldest-ui-e2e-tests
/test gke-operator-e2e-tests
/test gke-qa-e2e-tests
/test gke-race-condition-qa-e2e-tests
/test gke-scale-tests
/test gke-scanner-v4-install-tests
/test gke-sensor-integration-tests
/test gke-upgrade-tests
/test gke-version-compatibility-tests
/test ibmcloudz-4-14-qa-e2e-tests
/test ibmcloudz-4-15-qa-e2e-tests
/test ibmcloudz-4-16-qa-e2e-tests
/test ibmcloudz-4-17-qa-e2e-tests
/test ocp-4-12-compliance-e2e-tests
/test ocp-4-12-nongroovy-e2e-tests
/test ocp-4-12-operator-e2e-tests
/test ocp-4-12-qa-e2e-tests
/test ocp-4-12-scanner-v4-install-tests
/test ocp-4-12-sensor-integration-tests
/test ocp-4-12-ui-e2e-tests
/test ocp-4-20-compliance-e2e-tests
/test ocp-4-20-crun-qa-e2e-tests
/test ocp-4-20-fips-qa-e2e-tests
/test ocp-4-20-nongroovy-e2e-tests
/test ocp-4-20-operator-e2e-tests
/test ocp-4-20-qa-e2e-tests
/test ocp-4-20-scanner-v4-install-tests
/test ocp-4-20-sensor-integration-tests
/test ocp-4-20-ui-e2e-tests
/test ocp-4-21-compliance-e2e-tests
/test ocp-4-21-crun-qa-e2e-tests
/test ocp-4-21-fips-qa-e2e-tests
/test ocp-4-21-nongroovy-e2e-tests
/test ocp-4-21-operator-e2e-tests
/test ocp-4-21-qa-e2e-tests
/test ocp-4-21-scanner-v4-install-tests
/test ocp-4-21-sensor-integration-tests
/test ocp-4-21-ui-e2e-tests
/test ocp-dev-preview-compliance-e2e-tests
/test ocp-dev-preview-fips-qa-e2e-tests
/test ocp-dev-preview-nongroovy-e2e-tests
/test ocp-dev-preview-operator-e2e-tests
/test ocp-dev-preview-qa-e2e-tests
/test ocp-dev-preview-scanner-v4-install-tests
/test ocp-dev-preview-sensor-integration-tests
/test ocp-dev-preview-ui-e2e-tests
/test ocp-next-candidate-compliance-e2e-tests
/test ocp-next-candidate-fips-qa-e2e-tests
/test ocp-next-candidate-nongroovy-e2e-tests
/test ocp-next-candidate-operator-e2e-tests
/test ocp-next-candidate-qa-e2e-tests
/test ocp-next-candidate-scanner-v4-install-tests
/test ocp-next-candidate-sensor-integration-tests
/test ocp-next-candidate-ui-e2e-tests
/test ocp-stable-scanner-v4-install-compliance-e2e-tests
/test ocp-stable-scanner-v4-install-nongroovy-e2e-tests
/test ocp-stable-scanner-v4-install-operator-e2e-tests
/test ocp-stable-scanner-v4-install-qa-e2e-tests
/test ocp-stable-scanner-v4-install-scanner-v4-install-tests
/test ocp-stable-scanner-v4-install-sensor-integration-tests
/test ocp-stable-scanner-v4-install-ui-e2e-tests
/test osd-aws-qa-e2e-tests
/test osd-gcp-qa-e2e-tests
/test powervs-4-14-qa-corebpf-e2e-tests
/test powervs-4-15-qa-corebpf-e2e-tests
/test powervs-4-16-qa-corebpf-e2e-tests
/test powervs-4-17-qa-corebpf-e2e-tests
/test powervs-4-18-qa-corebpf-e2e-tests
/test powervs-4-19-qa-corebpf-e2e-tests
/test powervs-4-20-qa-corebpf-e2e-tests
/test rosa-fips-qa-e2e-tests
/test rosa-hcp-qa-e2e-tests
/test rosa-qa-e2e-tests

Use /test all to run the following jobs that were automatically triggered:

pull-ci-stackrox-stackrox-master-gke-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-gke-operator-e2e-tests
pull-ci-stackrox-stackrox-master-gke-qa-e2e-tests
pull-ci-stackrox-stackrox-master-gke-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-gke-ui-e2e-tests
pull-ci-stackrox-stackrox-master-gke-upgrade-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-scanner-v4-install-tests
Details

In response to this:

/retest operator-bundle-on-push

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci
Copy link
Copy Markdown

openshift-ci bot commented Feb 9, 2026

@github-actions[bot]: The /retest command does not accept any targets.
The following commands are available to trigger required jobs:

/test gke-nongroovy-e2e-tests
/test gke-ui-e2e-tests

The following commands are available to trigger optional jobs:

/test aks-qa-e2e-tests
/test aro-qa-e2e-tests
/test eks-qa-e2e-tests
/test gke-external-pg-17-qa-e2e-tests
/test gke-latest-nongroovy-e2e-tests
/test gke-latest-operator-e2e-tests
/test gke-latest-qa-e2e-tests
/test gke-latest-ui-e2e-tests
/test gke-nongroovy-compatibility-tests
/test gke-oldest-nongroovy-e2e-tests
/test gke-oldest-operator-e2e-tests
/test gke-oldest-qa-e2e-tests
/test gke-oldest-ui-e2e-tests
/test gke-operator-e2e-tests
/test gke-qa-e2e-tests
/test gke-race-condition-qa-e2e-tests
/test gke-scale-tests
/test gke-scanner-v4-install-tests
/test gke-sensor-integration-tests
/test gke-upgrade-tests
/test gke-version-compatibility-tests
/test ibmcloudz-4-14-qa-e2e-tests
/test ibmcloudz-4-15-qa-e2e-tests
/test ibmcloudz-4-16-qa-e2e-tests
/test ibmcloudz-4-17-qa-e2e-tests
/test ocp-4-12-compliance-e2e-tests
/test ocp-4-12-nongroovy-e2e-tests
/test ocp-4-12-operator-e2e-tests
/test ocp-4-12-qa-e2e-tests
/test ocp-4-12-scanner-v4-install-tests
/test ocp-4-12-sensor-integration-tests
/test ocp-4-12-ui-e2e-tests
/test ocp-4-20-compliance-e2e-tests
/test ocp-4-20-crun-qa-e2e-tests
/test ocp-4-20-fips-qa-e2e-tests
/test ocp-4-20-nongroovy-e2e-tests
/test ocp-4-20-operator-e2e-tests
/test ocp-4-20-qa-e2e-tests
/test ocp-4-20-scanner-v4-install-tests
/test ocp-4-20-sensor-integration-tests
/test ocp-4-20-ui-e2e-tests
/test ocp-4-21-compliance-e2e-tests
/test ocp-4-21-crun-qa-e2e-tests
/test ocp-4-21-fips-qa-e2e-tests
/test ocp-4-21-nongroovy-e2e-tests
/test ocp-4-21-operator-e2e-tests
/test ocp-4-21-qa-e2e-tests
/test ocp-4-21-scanner-v4-install-tests
/test ocp-4-21-sensor-integration-tests
/test ocp-4-21-ui-e2e-tests
/test ocp-dev-preview-compliance-e2e-tests
/test ocp-dev-preview-fips-qa-e2e-tests
/test ocp-dev-preview-nongroovy-e2e-tests
/test ocp-dev-preview-operator-e2e-tests
/test ocp-dev-preview-qa-e2e-tests
/test ocp-dev-preview-scanner-v4-install-tests
/test ocp-dev-preview-sensor-integration-tests
/test ocp-dev-preview-ui-e2e-tests
/test ocp-next-candidate-compliance-e2e-tests
/test ocp-next-candidate-fips-qa-e2e-tests
/test ocp-next-candidate-nongroovy-e2e-tests
/test ocp-next-candidate-operator-e2e-tests
/test ocp-next-candidate-qa-e2e-tests
/test ocp-next-candidate-scanner-v4-install-tests
/test ocp-next-candidate-sensor-integration-tests
/test ocp-next-candidate-ui-e2e-tests
/test ocp-stable-scanner-v4-install-compliance-e2e-tests
/test ocp-stable-scanner-v4-install-nongroovy-e2e-tests
/test ocp-stable-scanner-v4-install-operator-e2e-tests
/test ocp-stable-scanner-v4-install-qa-e2e-tests
/test ocp-stable-scanner-v4-install-scanner-v4-install-tests
/test ocp-stable-scanner-v4-install-sensor-integration-tests
/test ocp-stable-scanner-v4-install-ui-e2e-tests
/test osd-aws-qa-e2e-tests
/test osd-gcp-qa-e2e-tests
/test powervs-4-14-qa-corebpf-e2e-tests
/test powervs-4-15-qa-corebpf-e2e-tests
/test powervs-4-16-qa-corebpf-e2e-tests
/test powervs-4-17-qa-corebpf-e2e-tests
/test powervs-4-18-qa-corebpf-e2e-tests
/test powervs-4-19-qa-corebpf-e2e-tests
/test powervs-4-20-qa-corebpf-e2e-tests
/test rosa-fips-qa-e2e-tests
/test rosa-hcp-qa-e2e-tests
/test rosa-qa-e2e-tests

Use /test all to run the following jobs that were automatically triggered:

pull-ci-stackrox-stackrox-master-gke-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-gke-operator-e2e-tests
pull-ci-stackrox-stackrox-master-gke-qa-e2e-tests
pull-ci-stackrox-stackrox-master-gke-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-gke-ui-e2e-tests
pull-ci-stackrox-stackrox-master-gke-upgrade-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-12-scanner-v4-install-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-nongroovy-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-operator-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-qa-e2e-tests
pull-ci-stackrox-stackrox-master-ocp-4-20-scanner-v4-install-tests
Details

In response to this:

/retest operator-bundle-on-push

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@porridge porridge force-pushed the konflux/porridge/bundle-helpers-rewrite-fixorder branch from 87516b3 to 56f040c Compare February 10, 2026 06:32
@porridge porridge changed the title Konflux/porridge/bundle helpers rewrite fixorder chore(operator): eradicate Python Feb 10, 2026
@porridge porridge changed the title chore(operator): eradicate Python chore(operator): eradicate Python step 1 Feb 10, 2026
GrimmiMeloni added a commit that referenced this pull request Feb 10, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Feb 16, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Feb 27, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Mar 10, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Mar 23, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Mar 24, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
GrimmiMeloni added a commit that referenced this pull request Mar 25, 2026
Port csv-patcher logic from PR #18800 into single-binary architecture from
PR #18754. Implement patch-csv subcommand with version handling, image
replacement, and related images logic. Go implementation is now the default
(USE_GO_BUNDLE_HELPER defaults to true) with Python retained for fallback.

Add local comparison script for rapid validation during development. Byte-by-byte
equivalence with Python implementation verified for all related-images modes.

User request: Combine PR 18754 (porridge's Go rewrite with equivalence testing)
and PR 18800 (complete csv-patcher implementation).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@porridge
Copy link
Copy Markdown
Contributor Author

Superseded by #18947

@porridge porridge closed this Mar 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants