Skip to content

CCV auto-publish on child CV minor version publish - #20814

Merged
vsedmik merged 1 commit into
SatelliteQE:masterfrom
vijaysawant:ccv_incremental_with_propagate_all_composites_flag
Feb 24, 2026
Merged

CCV auto-publish on child CV minor version publish#20814
vsedmik merged 1 commit into
SatelliteQE:masterfrom
vijaysawant:ccv_incremental_with_propagate_all_composites_flag

Conversation

@vijaysawant

@vijaysawant vijaysawant commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Problem Statement

When publishing a minor version of a content view, parent composite content views no longer respect the --propagate-all-composites flag.
https://issues.redhat.com/browse/SAT-34620

Solution

Newly added test case will verify the incremental update on the CV with the --propagate-all-composites flag

Related Issues

N/A

PRT test Cases example

trigger: test-robottelo
pytest: tests/foreman/api/test_contentview.py -k 'test_ccv_no_double_update_on_incremental_with_propagate_all_composites'

Summary by Sourcery

Tests:

  • Add API test validating CCV behavior on incremental updates with --propagate-all-composites and on subsequent major CV publication, covering SAT-34620.

@vijaysawant
vijaysawant requested a review from a team as a code owner February 17, 2026 18:50
@vijaysawant vijaysawant added No-CherryPick PR doesnt need CherryPick to previous branches Stream Introduced in or relating directly to Satellite Stream/Master labels Feb 17, 2026
@sourcery-ai

sourcery-ai Bot commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Reviewer's Guide

Adds a new API test that verifies composite content views with auto-publish and 'Always update to latest' components do not create an extra major version when a child content view undergoes an incremental minor version update with --propagate-all-composites, while still auto-publishing on a later major version publish.

File-Level Changes

Change Details Files
Add regression test for SAT-34620 covering CCV behavior on incremental minor updates with propagate-all-composites and subsequent major version publish.
  • Create a new test that provisions a repo with missing errata, syncs it, and captures an erratum ID for use in incremental updates.
  • Define a content view (CV) with the repo, publish version 1.0, and assert the created version is 1.0.
  • Create a composite content view (CCV) with the CV version as a component, enable auto-publish and set the component to Always update to latest, publish CCV 1.0, and assert the initial CCV version list contains only 1.0.
  • Perform a content view version incremental_update with propagate_all_composites=True and specific errata IDs, targeting the Library environment.
  • Re-read CV and CCV, collect and sort their version strings, and assert that only versions 1.0 and 1.1 exist for both CV and CCV, failing with an explanatory message if a CCV 2.0 was created.
  • Add an extra repository, sync it, attach it to the CV, update the CV, and publish again to create CV 2.0.
  • Re-read the CCV versions after the major publish and assert that 2.0 exists, verifying auto-publish behavior for major version updates.
tests/foreman/api/test_contentview.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've reviewed your changes and they look great!


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.

@vijaysawant
vijaysawant force-pushed the ccv_incremental_with_propagate_all_composites_flag branch from 2732788 to 6c555a2 Compare February 17, 2026 18:53
@vijaysawant

Copy link
Copy Markdown
Contributor Author
trigger: test-robottelo
pytest: tests/foreman/api/test_contentview.py -k 'test_ccv_no_double_update_on_incremental_with_propagate_all_composites'

@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 14370
Build Status: SUCCESS
PRT Comment: pytest tests/foreman/api/test_contentview.py -k test_ccv_no_double_update_on_incremental_with_propagate_all_composites --external-logging
Test Result : =========== 1 passed, 98 deselected, 6 warnings in 897.77s (0:14:57) ===========

@Satellite-QE Satellite-QE added the PRT-Passed Indicates that latest PRT run is passed for the PR label Feb 17, 2026

@qcjames53 qcjames53 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks for the Robottelo PR, Vijay! This is looking pretty good to me. I just had a few tweaks.

Comment thread tests/foreman/api/test_contentview.py Outdated
Comment thread tests/foreman/api/test_contentview.py
Comment thread tests/foreman/api/test_contentview.py Outdated

@vsedmik vsedmik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overall looks good to me, added a few comments to address.

Comment thread tests/foreman/api/test_contentview.py Outdated
Comment thread tests/foreman/api/test_contentview.py Outdated
Comment thread tests/foreman/api/test_contentview.py
Comment thread tests/foreman/api/test_contentview.py Outdated
Comment thread tests/foreman/api/test_contentview.py
@vijaysawant
vijaysawant force-pushed the ccv_incremental_with_propagate_all_composites_flag branch from 6c555a2 to cafd312 Compare February 18, 2026 11:50
@Satellite-QE Satellite-QE removed the PRT-Passed Indicates that latest PRT run is passed for the PR label Feb 18, 2026

@vsedmik vsedmik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I believe we really should add wait_for_tasks before L2156 (cvv = cvv.read()).

Without that we are expecting that the code execution between L2150 and 2156 (cv.publish() to ccv.read()) will be slower than the asynchronous auto-publish task, which may not happen when the instance is busy or the repo size increases and may cause flakiness.

@vijaysawant
vijaysawant force-pushed the ccv_incremental_with_propagate_all_composites_flag branch from cafd312 to f69d10b Compare February 24, 2026 11:34
@vijaysawant

Copy link
Copy Markdown
Contributor Author
trigger: test-robottelo
pytest: tests/foreman/api/test_contentview.py -k 'test_ccv_no_double_update_on_incremental_with_propagate_all_composites'

@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 14426
Build Status: SUCCESS
PRT Comment: pytest tests/foreman/api/test_contentview.py -k test_ccv_no_double_update_on_incremental_with_propagate_all_composites --external-logging
Test Result : =========== 1 passed, 98 deselected, 6 warnings in 912.57s (0:15:12) ===========

@Satellite-QE Satellite-QE added the PRT-Passed Indicates that latest PRT run is passed for the PR label Feb 24, 2026
@vijaysawant
vijaysawant requested a review from vsedmik February 24, 2026 12:04

@vsedmik vsedmik left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good to me

@qcjames53 qcjames53 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks really good. I have to suggest one tweak to the comments. Sorry 😬

Comment thread tests/foreman/api/test_contentview.py Outdated
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@vijaysawant
vijaysawant force-pushed the ccv_incremental_with_propagate_all_composites_flag branch from f69d10b to 633367d Compare February 24, 2026 14:12
@Satellite-QE Satellite-QE removed the PRT-Passed Indicates that latest PRT run is passed for the PR label Feb 24, 2026
@vijaysawant vijaysawant added the PRT-Passed Indicates that latest PRT run is passed for the PR label Feb 24, 2026

@vijaysawant vijaysawant left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Just updated the step section with suggested changes.

@qcjames53 qcjames53 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks great, thank you :)

@vsedmik vsedmik added CherryPick PR needs CherryPick to previous branches AutoMerge_Cherry_Picked The cherrypicked PRs of master PR would be automerged if all checks passing 6.19.z and removed No-CherryPick PR doesnt need CherryPick to previous branches labels Feb 24, 2026
@vsedmik
vsedmik merged commit 5ca9326 into SatelliteQE:master Feb 24, 2026
15 checks passed
github-actions Bot pushed a commit that referenced this pull request Feb 24, 2026
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED

(cherry picked from commit 5ca9326)
rmynar pushed a commit to rmynar/robottelo that referenced this pull request Feb 25, 2026
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.19.z AutoMerge_Cherry_Picked The cherrypicked PRs of master PR would be automerged if all checks passing CherryPick PR needs CherryPick to previous branches PRT-Passed Indicates that latest PRT run is passed for the PR Stream Introduced in or relating directly to Satellite Stream/Master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants