Add ccp.py - compose-critical package list generation script #13039
No reviewers
releng/members
releng/Owners
Labels
No labels
after freeze
automation
backlog
blocked
change-ack
change-nak
change-noreleng
changes
Closed As
Can't Fix
Closed As
Duplicate
Closed As
Fixed
Closed As
Fixed with Explanation
Closed As
Get back later
Closed As
Grooming
Closed As
Insufficient data
Closed As
Invalid
Closed As
It's all good
Closed As
taiga
Closed As
upstream
dev
docs
easyfix
epel
f26
f27
f28
f29
f30
f31
f32
f33
f34
f35
f36
f37
f38
f39
f40
f41
f42
f43
f44
fedora
groomed
high-gain
high-trouble
in-progress
in-review
investigation
legal
low-gain
low-trouble
mass rebuild
medium-gain
medium-trouble
meeting
mini-initiative
new_artifact
ops
pdc_retirement
rawhide
RCA
review
script
sidetarget
sprint-0
sprint-1
sprint-2
unfrozen
waiting on external
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
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
releng/tooling!13039
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "adamwill/releng-tooling:add-ccp"
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?
This adds ccp.py - a script for generating the "compose-critical
package list" for a given compose. It's a bit of a WIP but it
does already work and give you a fairly useful list (as a flat
text file for now).
Signed-off-by: Adam Williamson awilliam@redhat.com
I have a few ideas for things to do with this:
Seems to do what it says on the tin. ;)
Might be nice to handle --help and explain what a 'compose top level' is... or just add an example?
I wonder if it could/should just default to latest rawhide?
Might also dump the file in the cwd instead of var tmp? and note that it wrote the file out so you know where it is.
All minor stuff, happy to merge this and improve or if you want to polish it some thats fine too.
b30d42a9bcto8d1eedd35dtweaked it to address those notes, and it also outputs a json file organized by variant now.
I keep changing my mind on whether we want to care about the distinction between packages that are in the buildroot and packages that are in the produced image or not. Currently we care about them most of the way through the script, but don't actually put that information in either of the output files. WDYT? Should I just simplify it and not care about the distinction, change the output to include the info, or what?
I think we should care. If we don't I think down the road we may be sorry we didn't.
Unless it's a gigantic hassle I suppose to log that...
It's not at all a giant hassle to output it, if anything it just makes consuming the data slightly more annoying if you just want both types of package in one bucket. But it's no big deal, just a couple of extra lines. I'll tweak the script to output it in separate buckets.
Adjusted to drop the now-pretty-useless data container class and output by variant, arch and image/buildroot, e.g.:
oh, hmm, one thing I forgot to mention/discuss: this gives us binary packages. critpath.py can output either binary or source, and we use it in source mode.
For one of the purposes I'm intending to use this for (rmdepcheck gating on rawhide), binary is actually what we want, but for other purposes, we probably want source package names.
I probably need to add a mode that can discover the source package names...
8d1eedd35dtoec9c972fecOK, now it has a
--sourcearg for also outputting source package information. And it's a bit less janky and uses argparse.cool. Looks ok to me... lets merge and adjust from here as needed.