Skip to content

Fix multi-release retries#3147

Merged
centosinfra-prod-github-app[bot] merged 1 commit into
packit:mainfrom
nforro:multirelease
Jul 2, 2026
Merged

Fix multi-release retries#3147
centosinfra-prod-github-app[bot] merged 1 commit into
packit:mainfrom
nforro:multirelease

Conversation

@nforro

@nforro nforro commented Jul 1, 2026

Copy link
Copy Markdown
Member

Related to packit/specfile#542.

RELEASE NOTES BEGIN

When a package is configured to consume mutiple release streams and release-monitoring.org detects multiple releases at the same time, if a pull-from-upstream job run for one released version fails, only that one is retried and the rest are unaffected and properly processed. Before this fix it could happen that a failed job run for one released version could prevent other released versions from being processed at all.

RELEASE NOTES END

@nforro
nforro requested a review from a team as a code owner July 1, 2026 10:46
@nforro
nforro requested review from majamassarini and removed request for a team July 1, 2026 10:46

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces retry_tag and retry_version parameters to Celery tasks and handlers to track retried versions and tags, ensuring that only the failed version reuses the existing SyncReleaseModel run during a multi-version release retry. An integration test was also added to verify this behavior. The reviewer identified a potential backward compatibility issue during deployment transitions, where older tasks in the Celery queue lacking these new parameters would fail to reuse the run ID, and provided a code suggestion to handle this case.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread packit_service/worker/handlers/distgit.py
@centosinfra-prod-github-app

Copy link
Copy Markdown
Contributor

@nforro

nforro commented Jul 1, 2026

Copy link
Copy Markdown
Member Author

/gemini review

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces support for retrying specific versions and tags in multi-version release syncs by adding retry_tag and retry_version parameters to the handlers and tasks. This ensures that only the failed version reuses its SyncReleaseModel on retry, while other versions create new models. A new integration test has been added to verify this behavior. The feedback suggests adding a Google-style docstring and proper type hints to the _get_or_create_sync_release_run method in distgit.py to comply with the repository style guide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread packit_service/worker/handlers/distgit.py
@centosinfra-prod-github-app

Copy link
Copy Markdown
Contributor

Signed-off-by: Nikola Forró <nforro@redhat.com>
Assisted-by: Claude Opus 4.6 via Claude Code
@nforro

nforro commented Jul 1, 2026

Copy link
Copy Markdown
Member Author

/gemini review

@centosinfra-prod-github-app

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request introduces support for handling retries in multi-version sync release runs. It adds retry_tag and retry_version parameters to the dist-git handlers and tasks, ensuring that during a retry, the existing SyncReleaseModel is only reused if the tag and version match the retry parameters, while other versions in a multi-version run correctly create their own models. Additionally, an integration test test_retry_pull_from_upstream_multi_version has been added to verify this behavior. There are no review comments, and I have no further feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@nforro nforro moved this from New to In review in Packit pull requests Jul 1, 2026

@majamassarini majamassarini left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM thanks!

@nforro nforro added the mergeit Merge via Zuul label Jul 2, 2026
@centosinfra-prod-github-app

Copy link
Copy Markdown
Contributor

@centosinfra-prod-github-app
centosinfra-prod-github-app Bot merged commit a2cada8 into packit:main Jul 2, 2026
6 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in Packit pull requests Jul 2, 2026
@nforro
nforro deleted the multirelease branch July 2, 2026 07:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mergeit Merge via Zuul

Projects

Development

Successfully merging this pull request may close these issues.

3 participants