Gentoo Archives: gentoo-dev

From: Joshua Kinard <kumba@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Deprecating repoman
Date: Sat, 12 Mar 2022 02:53:21
Message-Id: dd48c8a7-6356-1a8b-c061-bdb83f20f7c1@gentoo.org
In Reply to: Re: [gentoo-dev] Deprecating repoman by Sam James
1 On 3/11/2022 20:57, Sam James wrote:
2 >
3 >
4 >> On 10 Mar 2022, at 23:18, Joshua Kinard <kumba@g.o> wrote:
5 >>
6 >> On 3/10/2022 14:58, Alec Warner wrote:
7 >>> On Thu, Mar 10, 2022 at 10:27 AM Joshua Kinard <kumba@g.o> wrote:
8 >>>>
9 >>>> On 3/9/2022 16:00, Matt Turner wrote:
10 >>>>> I'd like to deprecate and ultimately remove repoman. I believe that
11 >>>>> dev-util/pkgcheck and pkgcommit (from app-portage/mgorny-dev-scripts)
12 >>>>> are far superior replacements, and it makes sense to have people using
13 >>>>> the same tool and seeing the same warnings as in the CI.
14 >>>>>
15 >>>>> Are there any useful checks or behaviors of repoman that are missing
16 >>>>> from pkgcheck and pkgcommit?
17 >>>>>
18 >>>>> Thanks,
19 >>>>> Matt
20 >>>>
21 >>>> repoman has been //the// goto tool for checking in a change since before I
22 >>>> was a developer in 2003. It does everything we need, in one simple tool.
23 >>>> Your proposal looks to replace repoman's functionality (and snark) with two
24 >>>> or more packages, including tools from a package named after a fellow developer.
25 >>>>
26 >>>> Additionally, "I believe that <foo> are far superior replacements" is an
27 >>>> entirely subjective opinion and, frankly, completely invalid as
28 >>>> justification to replace a tool that has worked fine for the last 20+ years.
29 >>>> What is so fundamentally broken about repoman that cannot be fixed such
30 >>>> that it needs total replacement by multiple independent tools? Please
31 >>>> document. the pros and cons here so that we can all make an informed decision.
32 >
33 > Matt could've given more details about why pkgcheck is superior but I think
34 > this is actually showing/exposing the problem again: we've assumed that
35 > everybody should really know repoman lacks a significant number of the checks
36 > pkgcheck has, as well as being much slower.
37 >
38 > Those are the two reasons why it's superior.
39
40 But again, those are subjective observations. Maybe it's my longer
41 experience with the project, or maybe it's because I usually refrain from
42 poking the more complex bits in the tree, or maybe it's the particular niche
43 I've stuck to, the extra checks that pkgcheck runs haven't really applied to
44 me. If I do too many significant changes to an ebuild, I'll re-read its
45 source a half-dozen times or more to make ***sure*** that I didn't miss
46 something. I will grep the tree for similar bits of code to make sure I'm
47 doing something reasonably sane, I will test that ebuild on at least two
48 different arches (amd64 and mips), etc. Maybe I over think it, or maybe I
49 have some form of hyperpedanticism. Or maybe I've just been really lucky.
50 :: shrugs ::
51
52 And speed, again, is really quite far down on my list of concerns most of
53 the time.
54
55 That said, yes, I agree with you wholeheartedly that there was a failure at
56 the Project/Distro level to explain the benefits of using pkgcheck over
57 repoman scan/full. That's a communications failure, and it is really
58 symbolic of a larger issue that projects like ours often struggle with.
59 Each of us tends to operate off in their own little fiefdom, something I am
60 just as guilty of as anyone else, and we don't always know what other devs
61 are doing or how they're doing it. I wish I had suggestions to offer up at
62 the moment on fixing this, but, alas...
63
64
65 >>>
66 >>> So here is the more basic argument, you can agree or disagree.
67 >>>
68 >>> *The goal I want is for people to commit to the tree and not break things.*
69 >>
70 >> This goal I agree with, and I am rather pedantic about. If not mildly
71 >> fearful of. We've all been there at least once in our dev-lives. It's
72 >> almost a rite of passage, if you will, to break the tree with a dumb commit
73 >> at least once. Goal is to never repeat that mistake again.
74 >>
75 >
76 > Right. I spend a fair amount of time fixing issues with repoman doesn't
77 > find but pkgcheck / CI does, or filing bugs for them.
78 >
79 >>
80 >>> If we could accomplish this with no tooling at all, that would be
81 >>> great. Sadly humans are fallible and so we have tools to check their
82 >>> work. Currently this tooling has two parts:
83 >>> - pre-push tooling that you run prior to pushing.
84 >>> - post-push CI tooling that informs you when you break the tree.
85 >>>
86 >>> So holding to our goal of not breaking the tree, it's better for
87 >>> developers to run the same QA tool in pre-push that CI is using,
88 >>> because our metric for 'breaking the tree' is the CI tool and if the
89 >>> CI tool passes locally, there is a strong likelihood it will not break
90 >>> in CI either. Note this argument is generic, I'm not even saying which
91 >>> tools are in use, or which tools are better, or anything like that.
92 >>>
93 >>> Here we see Matt discussing a workflow he finds frustrating.
94 >>> - A developer does a push.
95 >>> - Their push breaks CI.
96 >>> - He inquires about their workflow.
97 >>> - He learns they did not run the CI tool in their pre-push workflow.
98 >>> - He tells them they should run the CI tool in their pre-push workflow.
99 >>> - This happens many times, causing this thread.
100 >>>
101 >>> The point of the thread then is to convince people to run the CI tool
102 >>> in pre-push, as a matter of policy, to reduce tree breakage and reduce
103 >>> the occurrence of the above conversation.
104 >>
105 >> I stick to the officially-published method of checking and committing changes:
106 >> https://devmanual.gentoo.org/ebuild-maintenance/git/index.html
107 >>
108 >> The two tools highlighted there for the bulk of the work is repoman and
109 >> pkgdev. repoman is cited twelve times, pkgdev is cited six times. pkgcheck
110 >> is mentioned once. pkgcommit has no mentions.
111 >
112 > pkgcommit is just a wrapper around git and pkgcheck, so it is there.
113 >
114 > It's not like you aren't allowed to make your own wrappers or aliases or scripts, right?
115
116 Yes, I could. but that's not the point I was making. My point was Matt
117 recommended pkgcommit as one of the two tools deemed superior to repoman,
118 but without providing any context. TBH, I didn't even know that the
119 containing package was even in the tree, and I certainly didn't even know
120 pkgcommit existed. I made the point I did about there being no mentions of
121 pkgcommit in that part of the devmanual to underscore that fact.
122
123 I've got my own small (but growing) collection of trashy little hackscripts
124 (and a collection of aliases) for maintaining my Gentoo and BSD systems.
125 Many of them are so specific to things I do locally on my machines, they're
126 never going to wind up published anywhere, because they likely won't work
127 for anyone but me.
128
129
130 >>>
131 >>
132 >> Back in mid-2002, it was exactly Gentoo's snarkness that tipped the scales
133 >> for me. I'd just given up on FreeBSD-4.x on a sparc64 machine (old Sun
134 >> Blade 100) and LFS turned out to not be a lot of fun, but Gentoo worked fine
135 >> on it. All of the colors on the terminal gave it zing and pop, and made it
136 >> rather fun to work with. rpm and apt-get were dull; emerge was cheeky and
137 >> playful! Still is to this day.
138 >>
139 >
140 > I have no objection to (and in fact would rather welcome) contributions
141 > to make other tools more "Gentoo-like". Could you make a PR or provide
142 > some patch to add some more personality to them?
143
144 Unfortunately, I have been advised by many of my friends and associates to
145 stay well away from anything remotely resembling comedy. Like many people,
146 I get the jokes and laugh along with them, but like a Vogon reading poetry,
147 I should never attempt to create the jokes. I get away with the small pun
148 here and there, but it's only a matter of time before the gallows will find
149 me for one of those.
150
151 And really, much of Portage's built-in humor is largely a function of
152 carpaski being one of its original authors. He's even got his own Urban
153 Dictionary entry, which should tell you a lot about things:
154
155 https://www.urbandictionary.com/define.php?term=carpaski
156
157 Honestly, see that entry brings back a lot of memories...
158
159 --
160 Joshua Kinard
161 Gentoo/MIPS
162 kumba@g.o
163 rsa6144/5C63F4E3F5C6C943 2015-04-27
164 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943
165
166 "The past tempts us, the present confuses us, the future frightens us. And
167 our lives slip away, moment by moment, lost in that vast, terrible in-between."
168
169 --Emperor Turhan, Centauri Republic

Replies

Subject Author
Re: [gentoo-dev] Deprecating repoman Mart Raudsepp <leio@g.o>