Gentoo Archives: gentoo-dev

From: Alec Warner <antarus@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Deprecating repoman
Date: Thu, 10 Mar 2022 19:58:34
Message-Id: CAAr7Pr_sKzZ5yaCkQrv8jXHHDroqfU_wpFX6Gp7VQtWJzih8cw@mail.gmail.com
In Reply to: Re: [gentoo-dev] Deprecating repoman by Joshua Kinard
1 On Thu, Mar 10, 2022 at 10:27 AM Joshua Kinard <kumba@g.o> wrote:
2 >
3 > On 3/9/2022 16:00, Matt Turner wrote:
4 > > I'd like to deprecate and ultimately remove repoman. I believe that
5 > > dev-util/pkgcheck and pkgcommit (from app-portage/mgorny-dev-scripts)
6 > > are far superior replacements, and it makes sense to have people using
7 > > the same tool and seeing the same warnings as in the CI.
8 > >
9 > > Are there any useful checks or behaviors of repoman that are missing
10 > > from pkgcheck and pkgcommit?
11 > >
12 > > Thanks,
13 > > Matt
14 >
15 > repoman has been //the// goto tool for checking in a change since before I
16 > was a developer in 2003. It does everything we need, in one simple tool.
17 > Your proposal looks to replace repoman's functionality (and snark) with two
18 > or more packages, including tools from a package named after a fellow developer.
19 >
20 > Additionally, "I believe that <foo> are far superior replacements" is an
21 > entirely subjective opinion and, frankly, completely invalid as
22 > justification to replace a tool that has worked fine for the last 20+ years.
23 > What is so fundamentally broken about repoman that cannot be fixed such
24 > that it needs total replacement by multiple independent tools? Please
25 > document. the pros and cons here so that we can all make an informed decision.
26
27 So here is the more basic argument, you can agree or disagree.
28
29 *The goal I want is for people to commit to the tree and not break things.*
30
31 If we could accomplish this with no tooling at all, that would be
32 great. Sadly humans are fallible and so we have tools to check their
33 work. Currently this tooling has two parts:
34 - pre-push tooling that you run prior to pushing.
35 - post-push CI tooling that informs you when you break the tree.
36
37 So holding to our goal of not breaking the tree, it's better for
38 developers to run the same QA tool in pre-push that CI is using,
39 because our metric for 'breaking the tree' is the CI tool and if the
40 CI tool passes locally, there is a strong likelihood it will not break
41 in CI either. Note this argument is generic, I'm not even saying which
42 tools are in use, or which tools are better, or anything like that.
43
44 Here we see Matt discussing a workflow he finds frustrating.
45 - A developer does a push.
46 - Their push breaks CI.
47 - He inquires about their workflow.
48 - He learns they did not run the CI tool in their pre-push workflow.
49 - He tells them they should run the CI tool in their pre-push workflow.
50 - This happens many times, causing this thread.
51
52 The point of the thread then is to convince people to run the CI tool
53 in pre-push, as a matter of policy, to reduce tree breakage and reduce
54 the occurrence of the above conversation.
55
56 So the generic argument above, we now get into the specifics.
57
58 >
59 > I'm not opposed to making our tools better, but I think before anything can
60 > replace the RepoMan, several more boxes need to be ticked:
61 >
62 > - functionality from multiple tools should be packaged into a single tool.
63 > * caveat: at least provide a wrapper that, using args, can invoke the
64 > individual tools if needed.
65
66 I do not believe it's reasonable to provide a 'drop-in' backwards
67 compatibility tool guarantee.
68 I believe we should provide a table of common repoman actions, with a
69 mapping to their replacements; so that users can understand how to do
70 similar actions.
71
72 >
73 > - app-portage/mgorny-dev-scripts needs a new name. It's fine if it's
74 > intended to only be a collection of useful scripts for individual developers
75 > on an as-needed basis, but if it's to be the Official Tool(TM), then it
76 > needs to have a proper name. If not all of the scripts contained within it
77 > are applicable to the sole function of checking a change into the tree, then
78 > only the scripts that deal with change validation and committing should be
79 > broken out into a separate package, and ostensibly combined with any other
80 > tools/scripts into a single package, and preferably a single tool, to get
81 > the job done.
82
83 I don't consider this a blocker, but I think it's mostly a discussion
84 between mattst88 and mgorny.
85
86 >
87 > - all of our developer documentation needs to be updated to reference the
88 > new tool and the new way of doing things, as well as a warning not to use
89 > repoman any further after a set date. Additionally, a news item is probably
90 > advisable so that developers and proxy maintainers alike can get the message.
91
92 We should hold Matt accountable for updating any relevant development
93 documentation, including the table I mentioned above.
94 I'm not sure a news item is strictly necessary, we might just p.mask
95 repoman with a link to the guide that Matt will need to write about
96 how repoman is being replaced.
97
98 >
99 > - we need the snark. Gentoo is all about personality, and RepoMan has been
100 > scouring our neighborhoods for two decades and change, and while some may
101 > think this is utterly frivolous, I will actually miss seeing those messages
102 > on the console every time I commit a change. They give the RepoMan
103 > personality and a soul, and thus, contribute to the uniqueness that is Gentoo.
104
105 Cool.
106
107 >
108 > --
109 > Joshua Kinard
110 > Gentoo/MIPS
111 > kumba@g.o
112 > rsa6144/5C63F4E3F5C6C943 2015-04-27
113 > 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943
114 >
115 > "The past tempts us, the present confuses us, the future frightens us. And
116 > our lives slip away, moment by moment, lost in that vast, terrible in-between."
117 >
118 > --Emperor Turhan, Centauri Republic
119 >

Replies

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