-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make who_depends_this_lib much faster #15
Make who_depends_this_lib much faster #15
Conversation
Thank you for the review. I added a commit to address those comments. Here is an issue: it turns out that a few packages are built using pacman < 5.1, so that there is no valid |
Yes, we can rebuild those packages. Can you get a list of them? |
Here is the package list: pkgs.txt
And raw output using https://github.com/yan12125/misc_scripts/commit/affb9afb52de8eb6daee7b3e98bfb00facb3307c: buildinfo-issue.txt
If all looks good, I can open an issue in archlinuxcn/repo. By the way, how to get a list of packages categorized by maintainers like archlinuxcn/repo#1073 (comment)? |
那个文本是用这样的 Python 脚本生成的: script issue1073#!/usr/bin/python3
from pathlib import Path
import logging
from collections import defaultdict
from lilac2 import lilacpy
logger = logging.getLogger(__name__)
def main():
repodir = Path('/ldata/src/archgitrepo/archlinuxcn')
mods, _ = lilacpy.load_all(repodir)
r = defaultdict(list)
for name, m in mods.items():
if getattr(m, 'build_prefix', '').startswith(('archlinuxcn-', 'multilib-archlinuxcn')):
for x in m.maintainers:
r[x['github']].append(name)
for who, pkgs in sorted(r.items()):
print(f'@{who}:')
for pkg in pkgs:
print('* [ ]', pkg)
print()
if __name__ == '__main__':
from nicelogger import enable_pretty_logging
enable_pretty_logging('DEBUG')
main() |
It looks OK, please open an issue to move things forward 👍 |
Looks like |
I changed |
Thanks! |
An example run: $ time env PYTHONPATH=$HOME/tmp/winterpy/pylib python who_depends_this_lib /data/repo/x86_64/archlinuxcn.files libproto protobuf >&| ~/tmp/output env PYTHONPATH=$HOME/tmp/winterpy/pylib python who_depends_this_lib libproto 72.35s user 6.32s system 99% cpu 1:19.26 total [WIP] address review comments Avoid duplicated checking Caused by /depends entries, which are from pacman <= 3.4 (!) [1] Also improves warning messages [1] https://git.archlinux.org/pacman.git/tree/scripts/pacman-db-upgrade.sh.in?h=v5.2.0#n151 Checking packages without proper .BUILDINFO anyway So that this PR can be used before archlinuxcn/repo#1351 is done.
Squashed and force-pushed. I consider this ready for another review if you want to merge it before archlinuxcn/repo#1351 is done and you are fine with nasty |
Thanks! |
An example run: