Allow query more than one repo and other improvements #12065
No reviewers
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
day-to-day
dev
docs
easyfix
epel
f26
f27
f28
f29
f30
f31
f32
f33
f34
f35
f36
f37
f38
f39
f40
f41
f42
f43
f44
f45
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
sprint-3
sprint-4
sprint-5
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
release-process
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
6 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
releng/tickets!12065
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "main"
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?
I'm sending a batch of commits , you can merge commits, one by one and test that should run .
The goal was simplify the logic and make more easy to understand , optimize , i.e. make less calls and allow query various repos at same time , can be useful for testing updates and updates-testing repos , EPEL repos and 3rd party repos .
Let me know , what is the best way to present the commits
Forgot to tell find_unblocked_orphans.py can be used to check dependencies of a package.
for example:
find_unblocked_orphans.py --max_deps 300 --skip-orphans glib gtk+ GConf2 libbonoboui libgnome libgnomeui > glib_orphans.txt
will list packages that depend to build or to install on glib gtk+ GConf2 libbonoboui libgnome libgnomeui
@gotmax23 this PR is for orphaned-packages-process/find_unblocked_orphans.py, maybe you can review it or test it ...
Thanks
rebased onto f7a450f884042897a15f4c6b96fa4c6cd34af263
rebased onto 0e2d94425d8f27ce9643ee83ef26d22c1f685eaa
I placed the first 3 commits in another PR, so they can be merged first and to facilitate review
https://pagure.io/releng/pull-request/12090
12 new commits added
allow user mock config with --mock-config optiondep_checker now can run standalone.add rpmfusion reposmove maintainer information out of depcheckercalculate the package's branch, to avoid errors when trying to obtain information from the maintainer when packages is outside of Fedora.make SRPM one independent functionmove class DepcChecker and PagureInfo to new filesAllow search dependencies in more than one repositorySimplify the code logic, allow do mapping by repoFix when report starts and only call koji when we calculate orphanstrivial fixminor simplification1 new commit added
get just binary latest() packages while sources rpm get it all13 new commits added
if given packages doesn't not exist in repos, exit with errorjust latest packages while sources get all packagesallow user mock config with --mock-config optiondep_checker now can run standalone.add rpmfusion reposmove class DepcChecker and PagureInfo to new filesmove maintainer information out of depcheckercalculate the package's branch, to avoid errors when trying to obtain information from the maintainer when packages is outside of Fedora.Allow search dependencies in more than one repositorySimplify the code logic, allow do mapping by repoFix when report starts and only call koji when we calculate orphanstrivial fixminor simplification15 new commits added
Allow not check src.rpm dependenciesdoes not stop when the package source is not found and print the package which source package was not foundif given packages doesn't not exist in repos, exit with errorallow user mock config with --mock-config option v2dep_checker now can run standalone.add rpmfusion reposmove maintainer information out of depcheckercalculate the package's branch, to avoid errors when trying to obtain information from the maintainer when packages is outside of Fedora.make SRPM one independent functionmove class DepcChecker and PagureInfo to new filesAllow search dependencies in more than one repositorySimplify the code logic, allow do mapping by repoFix when report starts and only call koji when we calculate orphanstrivial fixminor simplificationrebased onto 24622051ebb7df7f5f9d814d4541ffbcfa666ae4
on commits of 2024-05-06 , I had introduce a bug, I had to rollback all the code , now it seems to me fine again
16 new commits added
dnf latest only and simplicationsby default use mock config, metalink and mirrorsAllow not check src.rpm dependenciesif given packages doesn't not exist in repos, exit with errorallow user mock config with --mock-config option v2dep_checker now can run standalone.add rpmfusion reposmove maintainer information out of depcheckercalculate the package's branch, to avoid errors when trying to obtain information from the maintainer when packages is outside of Fedora.simplified SRPM function and make it independent of the classmove class DepcChecker and PagureInfo to new filesAllow search dependencies in more than one repositorySimplify the code logic, allow do mapping by repoFix when report starts and only call koji when we calculate orphanstrivial fixminor simplificationSorry for the lag on this. The separate PR is merged.
wow ! I will check the state 1 , I got more things in mind to add related with this I'd query deps with extra repo like copr etc.
Many thanks
ah only the trivial fix was merged , I will prepare this one a little better .
thank you
It looks good, by reading the code. but can you please rebase it? I will be able to test the changes and merge or report problems.
rebased onto
94f7c8ae0aWhats the status here?
Hello, I have testing my new code , is it good for me, looks like is finished but I need rearrange the commits , to be well documented and more easy to understand , i had done some loops in the commits that I want solve, before sending to you .
For now, I have 2 new commits , that are minor changes https://pagure.io/releng/pull-request/12519
rebased onto
606438f8dcrebased onto
8deb9fd249rebased onto
1bfc541fe5rebased onto
00c112cb1011 new commits added
change default of max_dep default in dep_checker to 0The subdict variable is always set, no need to checkadd rpmfusion reposLatest developmentsdnf latest onlyAllow not check src.rpm dependenciesAllow use mock configurations to query reposdep_checker now can run standalone.Move class DepcChecker and PagureInfo to new filesMove maintainer information from depchecker classAllow search dependencies in more than one repositoryThe development is finished , we now can query packages in all fedora, epel branches etc and with or without 3rd party repos , for example :
@gotmax23 I separate the first 3 commits to review and merge, here: https://pagure.io/releng/pull-request/12524 , with some development that allow us to split find_unblocked_orphans.py in multiple files .
Not tested anything, just looked at the code.
tl;dr It all seems good.
Minor comments per. patch:
Subject: [PATCH 3/11] Move class DepcChecker and PagureInfo to new files
Having a common.py or misc.py or utils etc. is always tempting, but sucks in the future when 666 unrelated things end up in there.
Having a releases_conf.py for the top parts and textui.py for the eprint/wrapping would be better.
Also future people will be happier if you add a comment at the top of the new dep_checker.py giving an example of how to run it and/or roughly what you'd use it to do.
Subject: [PATCH 5/11] Allow use mock configurations to query repos
Feels like there should be a better way to build the mock repos. than doing it by hand in the option parsing?
Even just adding a decent comment saying "this bit parses repos. from mock config" or whatever would help.
Subject: [PATCH 7/11] dnf latest only
Did you check the speed of self.dnfquery.latest(1).filter(provides=base_provide) vs self.dnfquery.filter(provides=base_provide).latest(1) ... would assume the later is better, esp. on big repos. with multiple packages (but could be 0.5 seconds or something useless ;).
Subject: [PATCH 11/11] change default of max_dep default in dep_checker to 0
I assume 0 is inifinate? Does this work fine with deploops?
is the opposite , none deps except the direct ones
I will add this to my TODO for this weekend. Thanks for working on this! I am concerned that some of the changes here go beyond the scope of this script's intended use—which is to facilitate the orphaned packages process, not serve as a general repository querying tool.
First yes, it is to go beyond the scope. I found that find_unblocked_orphans.py calculate very well the rpm dependencies, so the goal is expand it to calculate rpm deps in other ways.
To preserve the scope I keept find_unblocked_orphans.py as is , exactly with same features and have some freedom on dep_checker.py
But is a good idea , can be set infinity max_deps, also max_deps calculation itself can be improved. About dep loops , I think is not a problem because since one rpm is added is not added again, I think
all comments of @james are pertinent
Since we can improve the patch 3 and later , I suggest just merge the first two, to certificate the code is good and the PR for that is here: https://pagure.io/releng/pull-request/12524
The first patch is needed for the second patch to identify the repos, the second patch is necessary, to be able to separate the Pagure information class, from the dep checker class .
I don't think we can have references to rpmfusion here
Parsing mock configs seems completely out of scope here and adds a fair amount of extra code.
rebased onto
d61b031990To be clear , this PR is supposed to extended the orphaned-packages-process and also calculate deps on any repo , any distro , any arch etc that is my first goal , after we can add support to other things link weak deps for example .
This tool is very useful to me, today I'm updating MLT I need to know If i can update movit with soname bump on epel 9 and I ran :
that use dnf cache and mirrorlist which is much faster and causes less load on koji
the result is only mlt depend on movit, so I can update it also .
So the split of find_unblocked_orphans.py have two goals, one be more organized , second is develop dep_checker without interfere on find_unblocked_orphans.py calculations . find_unblocked_orphans.py works exactly in the same way .
So I'm still thinking this might be better maintained as a fork in a separate repo. These changes add extra complication outside of the script's main purpose and will make it harder to convert the script to use the libdnf5 which will need to happen eventually. I'm curious to hear what releng members think.
Yeah, I mean, I am ok helping other uses, but this seems like it has added a lot, so perhaps it should be seperate?
Hi,
I understand the problem of adding things that are not related to the real purpose.
so I will do first only commit that improve organization and orphaned-packages-process script
the 2 next commits already do that more or less (https://pagure.io/releng/pull-request/12524 )
"Query more than one repo" is a new feature , is it interesting to orphaned-packages-process script ?
about convert to libdnf5 , I will check , I don't think that would be difficult
Best regards
Any updates on this, is this pending for review? We have moved this script to a new path, if it is still required can you rebase your pr, and we can get it in review please?
Pull request closed