Gentoo Archives: gentoo-dev

From: Sam James <sam@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Deprecating repoman
Date: Sat, 12 Mar 2022 01:58:02
Message-Id: D4C360AE-9992-46BE-A8AC-AC170B52857F@gentoo.org
In Reply to: Re: [gentoo-dev] Deprecating repoman by Joshua Kinard
1 > On 10 Mar 2022, at 23:18, Joshua Kinard <kumba@g.o> wrote:
2 >
3 > On 3/10/2022 14:58, Alec Warner wrote:
4 >> On Thu, Mar 10, 2022 at 10:27 AM Joshua Kinard <kumba@g.o> wrote:
5 >>>
6 >>> On 3/9/2022 16:00, Matt Turner wrote:
7 >>>> I'd like to deprecate and ultimately remove repoman. I believe that
8 >>>> dev-util/pkgcheck and pkgcommit (from app-portage/mgorny-dev-scripts)
9 >>>> are far superior replacements, and it makes sense to have people using
10 >>>> the same tool and seeing the same warnings as in the CI.
11 >>>>
12 >>>> Are there any useful checks or behaviors of repoman that are missing
13 >>>> from pkgcheck and pkgcommit?
14 >>>>
15 >>>> Thanks,
16 >>>> Matt
17 >>>
18 >>> repoman has been //the// goto tool for checking in a change since before I
19 >>> was a developer in 2003. It does everything we need, in one simple tool.
20 >>> Your proposal looks to replace repoman's functionality (and snark) with two
21 >>> or more packages, including tools from a package named after a fellow developer.
22 >>>
23 >>> Additionally, "I believe that <foo> are far superior replacements" is an
24 >>> entirely subjective opinion and, frankly, completely invalid as
25 >>> justification to replace a tool that has worked fine for the last 20+ years.
26 >>> What is so fundamentally broken about repoman that cannot be fixed such
27 >>> that it needs total replacement by multiple independent tools? Please
28 >>> document. the pros and cons here so that we can all make an informed decision.
29
30 Matt could've given more details about why pkgcheck is superior but I think
31 this is actually showing/exposing the problem again: we've assumed that
32 everybody should really know repoman lacks a significant number of the checks
33 pkgcheck has, as well as being much slower.
34
35 Those are the two reasons why it's superior.
36
37 >>
38 >> So here is the more basic argument, you can agree or disagree.
39 >>
40 >> *The goal I want is for people to commit to the tree and not break things.*
41 >
42 > This goal I agree with, and I am rather pedantic about. If not mildly
43 > fearful of. We've all been there at least once in our dev-lives. It's
44 > almost a rite of passage, if you will, to break the tree with a dumb commit
45 > at least once. Goal is to never repeat that mistake again.
46 >
47
48 Right. I spend a fair amount of time fixing issues with repoman doesn't
49 find but pkgcheck / CI does, or filing bugs for them.
50
51 >
52 >> If we could accomplish this with no tooling at all, that would be
53 >> great. Sadly humans are fallible and so we have tools to check their
54 >> work. Currently this tooling has two parts:
55 >> - pre-push tooling that you run prior to pushing.
56 >> - post-push CI tooling that informs you when you break the tree.
57 >>
58 >> So holding to our goal of not breaking the tree, it's better for
59 >> developers to run the same QA tool in pre-push that CI is using,
60 >> because our metric for 'breaking the tree' is the CI tool and if the
61 >> CI tool passes locally, there is a strong likelihood it will not break
62 >> in CI either. Note this argument is generic, I'm not even saying which
63 >> tools are in use, or which tools are better, or anything like that.
64 >>
65 >> Here we see Matt discussing a workflow he finds frustrating.
66 >> - A developer does a push.
67 >> - Their push breaks CI.
68 >> - He inquires about their workflow.
69 >> - He learns they did not run the CI tool in their pre-push workflow.
70 >> - He tells them they should run the CI tool in their pre-push workflow.
71 >> - This happens many times, causing this thread.
72 >>
73 >> The point of the thread then is to convince people to run the CI tool
74 >> in pre-push, as a matter of policy, to reduce tree breakage and reduce
75 >> the occurrence of the above conversation.
76 >
77 > I stick to the officially-published method of checking and committing changes:
78 > https://devmanual.gentoo.org/ebuild-maintenance/git/index.html
79 >
80 > The two tools highlighted there for the bulk of the work is repoman and
81 > pkgdev. repoman is cited twelve times, pkgdev is cited six times. pkgcheck
82 > is mentioned once. pkgcommit has no mentions.
83
84 pkgcommit is just a wrapper around git and pkgcheck, so it is there.
85
86 It's not like you aren't allowed to make your own wrappers or aliases or scripts, right?
87
88
89 >>
90 >
91 > Back in mid-2002, it was exactly Gentoo's snarkness that tipped the scales
92 > for me. I'd just given up on FreeBSD-4.x on a sparc64 machine (old Sun
93 > Blade 100) and LFS turned out to not be a lot of fun, but Gentoo worked fine
94 > on it. All of the colors on the terminal gave it zing and pop, and made it
95 > rather fun to work with. rpm and apt-get were dull; emerge was cheeky and
96 > playful! Still is to this day.
97 >
98
99 I have no objection to (and in fact would rather welcome) contributions
100 to make other tools more "Gentoo-like". Could you make a PR or provide
101 some patch to add some more personality to them?

Attachments

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

Replies

Subject Author
Re: [gentoo-dev] Deprecating repoman Joshua Kinard <kumba@g.o>