Adopt a compose differ and make it useful for comparing release candidates #905
Labels
No labels
agile
anacondawebui
arm
blockerfe
Closed As
Duplicate
Closed As
Fixed
Closed As
Invalid
Closed As
Wontfix
Closed As
Worksforme
coreos
criteria
defect
easyfix
enhancement
iot
meeting
meta
onboarding call
proventesters
retrospective
silverblue
sponsor
test cases
test days
wiki
ai-review-please
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
pr2jira
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
quality/tickets#905
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
During Fedora 44 cycle, I used a modified fedora-compose-differ to inform about changes between RCs, like here.
Adam later noted that we have a similar tool producing outputs like this for every nightly compose. It's part of Releng's compose-utils.
It would be handy if we took one of those tools, tweaked it a little bit for our purposes, and used it for easy RC diff generation and announcement. In the first step, I'd like to have it ready for manual generation. Making it part of the RC announcement automatically would be be a follow-up task.
What I'd like to see:
Fedora-44-20260422.1with labelRC-1.7(frommetadata/composeinfo.json). (There were more dirs in there, but are already cleaned up). That would make it fast to determine which directories I want to compare.The releng one is https://pagure.io/compose-utils/blob/master/f/compose_utils/changelog.py . It's packaged as compose-changelog in compose-utils and called by https://forge.fedoraproject.org/releng/pungi-fedora/src/branch/main/nightly.sh for rawhide composes.
You can find RCs from the metadata-archive 'series' file. e.g. https://kojipkgs.fedoraproject.org/compose/metadata-archive/series/Fedora-44 for F44. The format is 'compose_id [label]'; only candidate composes (for Beta and Final) have labels. Labels for beta candidates start with
Beta, labels for final candidates start withRC.we could actually probably enhance the release candidate build script to generate a diff from the previous RC, using the metadata-archive.
Thanks, I updated the original post.
Oooh, that is nice. My only concern is whether that file is updated immediately after a compose is done. Looking at the Rawhide dir and its timestamps, it seems to have 30 minutes delay, which is not that bad, I guess.
Yes, that would be nice. I'd like to include a diff to previous RC automatically, but that feels like the second step. The first step is to allow manual generation by feeding it two URLs (or compose IDs) as input. I'm fine with doing it manually in the beginning, as I've done for F44, I believe it was very useful. I also need to be able to compare two arbitrary composes, not just two directly sequential ones, because that's often useful (example).
It's done by the compose scripts themselves, e.g. here for Rawhide. I'm not sure why you're seeing a thirty minute delay.
So, the file I linked before is the inner implementation - the outer CLI layer is compose-changelog. I think in theory my suggestion here would be to enhance that to add any features you want it to have, and then use it. It should be possible to have the script that builds candidate composes find the previous candidate (if any) from the series metadata and generate a changelog automatically, like the Rawhide script does using the 'latest' symlink.
One feature I guess that might be missing is the ability to run on remote composes; the current script assumes filesystem access. It's backed by productmd.compose which itself assumes local filesystem access, so I guess we'd want to enhance
compose-changelogto be able to download the metadata files from a remote compose to a local temporary directory before feeding them to productmd.