Skip to content

release freeze: restore only the <build> element on unfreeze - #206

Merged
rjd15372 merged 1 commit into
mainfrom
freeze-restore-build-only
Oct 30, 2026
Merged

rjd15372 merged 1 commit into
mainfrom
freeze-restore-build-only

Conversation

@rjd15372

Copy link
Copy Markdown
Collaborator

Problem

After #205 the #201 populate went green, but production isv:percona:ppg:staging:18 still carries 11 <releasetarget project="deleted" repository="deleted"/> entries. Its meta history shows why:

rev targets writer
70 11 deleted freeze — snapshots the whole meta
71 none #205 self-heal removes them
72 11 pre-release added for osc release
73 none removed after release
74 11 deleted restore_builds pushes the rev-70 snapshot back verbatim

freeze_builds only rewrites <build>, but the unfreeze rolled back the entire meta, resurrecting whatever stale release targets existed at freeze time (and would clobber any other meta change made inside the freeze window).

Change

  • restore_builds / restore_packages: read the current meta and swap in only the snapshot's <build> element (none in the snapshot → the freeze's <build><disable/> is just dropped). Everything else stays as it is at restore time.
  • If the current meta cannot be read or parsed, fall back to the full snapshot — builds are never left disabled.
  • Docs: Restore step in docs/PERCONA_OBS_TOOL.md.

The next populate after merge removes the 11 deleted targets on staging:18 for good.

Tests

  • release target removed while frozen is not restored; per-repo <build> flags round-trip
  • fallback to the snapshot when the meta is unreadable
  • existing round-trip tests updated for the new behaviour
  • pytest tests 755 passed; black + pyright clean

restore_builds pushed the whole pre-freeze meta snapshot back after
osc release. On isv:percona:ppg:staging:18 the snapshot still carried
11 releasetargets that OBS had rewritten to project="deleted" (left by
a cancelled populate), so the restore put back what the release hop had
just removed (meta rev 73 clean, rev 74 restored them).

The freeze only rewrites <build>, so restore now swaps only the
snapshot's <build> into the current meta (projects and packages) and
keeps everything changed inside the freeze window. If the current meta
cannot be read it falls back to the full snapshot so builds are never
left disabled.

Signed-off-by: Ricardo Dias <ricardo.dias@percona.com>
@rjd15372
rjd15372 merged commit f2c6499 into main Oct 30, 2026
5 checks passed
@rjd15372
rjd15372 deleted the freeze-restore-build-only branch October 30, 2026 22:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant