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 |
> |