Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman
Date: Mon, 09 Sep 2019 15:44:27
Message-Id: d86560e122203398b8f18fec547fba3cfae52f09.camel@gentoo.org
In Reply to: Re: [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman by Alec Warner
1 On Mon, 2019-09-09 at 08:38 -0700, Alec Warner wrote:
2 > On Sun, Sep 8, 2019 at 11:24 PM Michał Górny <mgorny@g.o> wrote:
3 >
4 > > Hi,
5 > >
6 > > This is something I'd like to pass to the Council for the next meeting.
7 > >
8 > > TL;DR: I'd like to allow using pkgcheck instead of repoman because it's
9 > > 5-26 times faster and more convenient to use.
10 > >
11 > >
12 > > The current policy requires you to test your packages with repoman prior
13 > > to committing. However, repoman is both pretty inconvenient, unreadable
14 > > and slow. For example, for the cleanup of old versions in 4 packages I
15 > > have staged right now:
16 > >
17 > > $ time sh -c '(for x in $(git diff --name-only origin | cut -d/ -f1-2 |
18 > > uniq); do ( cd $x && repoman full -d ); done)'
19 > >
20 > > RepoMan scours the neighborhood...
21 > > RepoMan sez: "If everyone were like you, I'd be out of business!"
22 > >
23 > > RepoMan scours the neighborhood...
24 > > RepoMan sez: "If everyone were like you, I'd be out of business!"
25 > >
26 > > RepoMan scours the neighborhood...
27 > > repo.eapi-deprecated 1
28 > > media-libs/stops/stops-0.3.0-r1.ebuild: 5
29 > > RepoMan sez: "You're only giving me a partial QA payment?
30 > > I'll take it this time, but I'm not happy."
31 > >
32 > > RepoMan scours the neighborhood...
33 > > RepoMan sez: "If everyone were like you, I'd be out of business!"
34 > >
35 > > real 1m46,236s
36 > > user 1m38,524s
37 > > sys 0m7,818s
38 > >
39 > >
40 > > For comparison, pkgcheck:
41 > >
42 > > $ time pkgcheck scan --git-disable $(git diff origin --name-only | cut -d/
43 > > -f1-2 | sort -u)
44 > > media-libs/stops
45 > > DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
46 > >
47 > > real 0m4,408s
48 > > user 0m3,985s
49 > > sys 0m0,559s
50 > >
51 > >
52 > > Note that this is with warm profile cache. Without it:
53 > >
54 > > $ time pkgcheck scan --profile-cache false --git-disable $(git diff origin
55 > > --name-only | cut -d/ -f1-2 | sort -u)
56 > > media-libs/stops
57 > > DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
58 > >
59 > > real 0m18,791s
60 > > user 0m16,279s
61 > > sys 0m0,611s
62 > >
63 > >
64 > > PkgCheck implements most of the checks currently in repoman,
65 > > and implements some more (e.g. for bad SRC_URI filenames). It finally
66 > > had new releases recently, and I think it's matured enough for basic
67 > > development work.
68 > >
69 >
70 > Generally speaking if stuff passes CI I'm happy, and if it doesn't I'm
71 > unhappy. That being said, do we think there any critical repoman checks
72 > that pkgcore does not implement?
73
74 Nope, critical definitely not. FWIK radhermit doesn't consider any of
75 the missing repoman checks useful.
76
77 > Is there a plan for continued maintenance? E.g. when EAPI-next comes out I
78 > suspect repoman will get it (via portage), but pkgcore struggled to pick up
79 > new EAPIs as quickly. You mentioned pkgcheck had some releases; do we
80 > expect this to continue?
81
82 Well, I expect so. radhermit is doing great work. As for EAPIs,
83 usually partial support is sufficient for pkgcheck, and last time
84 I didn't have a major problem doing the necessary work for CI.
85
86 That said, I dare say pkgcheck has much lower entry barrier right now
87 than repoman. Repoman was never convenient to work with, and the last
88 refactoring made contributing even harder (more resembling working with
89 Windows) than before. PkgCheck is very pythonic in comparison (even if
90 you account for ferringb's weird past work, it usually doesn't affect
91 you).
92
93 --
94 Best regards,
95 Michał Górny

Attachments

File name MIME type
signature.asc application/pgp-signature