Repository navigation
Let a migrated restore use the main build its pair was made for - #5837
Merged
2 commits merged intoNov 9, 2026
Merged
2 commits merged into
2 commits merged into
Conversation
A migrated pair is bound to the exact image it was produced with. The selector only accepted the lane's current testing release, so any later main merge stranded a verified pair. Verify the requested main build as a release of the default branch's first-parent history instead; the pair's image binding and every use, data and separation check stay, and reconciliation moves testing forward on the restored data.
Contributor
Author
|
Review result: weighed Independent review: OpenAI via Codex, read-only. The CLI did not report the model. Result: no actionable findings.
|
Contributor
Author
|
Ready for the merge train Head: 0b2e456 |
Contributor
Author
|
Launchplane completed the merge-train step for this pull request.
Launchplane landed this pull request through protected batch PR #5839. Launchplane manages this comment and will update it as the train moves. |
shiny-code-app Bot
added a commit
that referenced
this pull request
Nov 9, 2026
…ae41247cf65c0fb: merge PR #5837
This was referenced Nov 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The CM testing restore for #5206 still could not start after #5833. A fresh preflight at 2:46 PM ET refused
testing_rebuild_inputs_unverified(tracelaunchplane_req_01591f0ba4c34b20b1cbabd1c154e330): "The selected build is not the current testing release." CM main moved at 2:12 PM ET (odoo-devkit pin, odoo-tenant-cm#389). Testing now runs that build, and the retained migrated pair is bound to the earlier main image. Naming the new build fails the pair's image check (tracelaunchplane_req_a1750868cc8e4438935fce186bb8ce71). So every main merge stranded a pair that had already been verified, and re-producing the pair is the heavy offline migration.What changed: when a migrated restore names a main build, Launchplane verifies it as a release of the default branch's first-parent history. It no longer requires that build to be the lane's newest release. Everything else is unchanged: the pair's exact product/context/image binding, release provenance (repository id, successful push run, manifest, image repository, tenant lock), recorded-artifact conflict refusal, and the use, needed-copy, separation and hold checks. After the restore, normal reconciliation sees the older release serving and deploys current main forward with
data_source_mode=existing.Removed: the "must be the current testing release" refusal for an explicitly requested main build, added in #5791 without a recorded reason.
Net lines: +16 (+39/-23). Product code +8, tests +4, docs +4.
Refs #5206
Validation
test_product_reconcile,test_testing_rebuild_http,test_testing_rebuild_worker,test_migrated_testing_sourceandtest_build_provenancepass. Ruff, format and mypy are clean on the changed files._current_testing_release,_plan_testing_target,require_forward_build, and recreate-in-place with existing data). Its one note: no single end-to-end test runs older-main restore, then forward deploy. Existing tests cover each step separately. I left that as is rather than add a long fixture.Client test notes
Nothing for the Client to test. This is a control-plane fix. The CM restore itself stays with its operator.