Gentoo Archives: gentoo-dev

From: Joshua Kinard <kumba@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Deprecating repoman
Date: Fri, 11 Mar 2022 19:39:11
Message-Id: 2e5411e6-bcb1-ebf2-48b2-56c957962adf@gentoo.org
In Reply to: Re: [gentoo-dev] Deprecating repoman by Mart Raudsepp
1 On 3/11/2022 03:54, Mart Raudsepp wrote:> Ühel kenal päeval, N, 10.03.2022
2 kell 18:18, kirjutas Joshua Kinard:
3 >> I stick to the officially-published method of checking and committing
4 >> changes:
5 >> https://devmanual.gentoo.org/ebuild-maintenance/git/index.html
6 >>
7 >> The two tools highlighted there for the bulk of the work is repoman
8 >> and pkgdev. repoman is cited twelve times, pkgdev is cited six times.
9 >> pkgcheck is mentioned once. pkgcommit has no mentions.
10 >>
11 >> From that, one should not be faulted for assuming that repoman is the
12 >> more important tool, if not preferred tool, with pkgdev coming in
13 >> second place. pkgcheck comes across as entirely optional and even
14 >> seems equivalent to 'repoman full', and how would one know that
15 >> pkgcommit even exists?
16 >
17 > I believe the very purpose of this thread is to have a consensus/pre-
18 > announcement before actually editing the official documentation as part
19 > of the process of deprecating repoman.
20
21 I feel that the documentation should have had more mentions of these newer
22 tools as their adoption by other developers accelerated. Documentation
23 doesn't have to have a fixed point in time when it fully changes over. It
24 can change organically, like almost everything else in the project.
25
26
27 >
28 >> That all said, most of my checks are done pre-commit, not pre-push.
29 >> It's annoying trying to unwind a commit with a mistake in git, so I
30 >> aim to not have any in the commit itself. By the time I get to the
31 >> push stage, everything MUST be perfect before I hit 'git push'. Cause
32 >> once something is public, there's no going back. In a handful of
33 >> cases, I've gone as far as nuking my local copy of the tree, re-
34 >> cloning it, and re-doing everything again just to fix a mistake that I
35 >> should have caught pre-commit.
36 >
37 > git commit --amend, interactive rebase, etc (all before push). I suggest
38 > to learn them and embrace them. Re-cloning is not fun, just for
39 > something that a quick interactive rebase or even a git reset -- hard
40 > destructive operation instead of re-clone would solve.
41
42 The few times I resorted to a re-clone, the damage done was beyond
43 recoverability of --amend or even rebase. I don't really remember the
44 specifics, as the last time I did a full re-clone was maybe 14-17 months
45 ago. My developer tree lives on my NAS now with ZFS snapshotting, so
46 recovery is a lot easier, even if I have a really old snapshot.
47
48
49 > Also the benefit of using pkgcheck is to actually be able to make the
50 > same checks that CI would do before you push, so you can amend your
51 > commits to fix issues before they hit the server and CI and break the
52 > tree. pkgcheck is so fast that it can do full tree checks in a
53 > reasonable time (repoman would take days on a radiator mips when you go
54 > outside single package), and I believe has features to have it check all
55 > your commits that haven't been pushed yet at once, checking only what it
56 > can to not be too slow to not use (so you don't need to run the check
57 > with each commit but for all of them once you commit - and if issues,
58 > again, git interactive rebase).
59
60 Speed is really not a big issue for me. I run repoman from my amd64 dev
61 box, and it's like, maybe 10-13 seconds at most during 'repoman full'? And
62 my MIPS systems, while not the slowest of slow of that arch, they do teach
63 you patience over the years.
64
65 The other bits you mention about pkgcheck do sound useful, though. But I am
66 a stickler for official documentation, because my risk aversion level when
67 committing to a public repo that can affect hundreds of thousands of users
68 is *extremely* high. When I first signed up as a dev and we had the
69 gentoo-x86 CVS repo, there were no CI checks. It was the responsibility of
70 the dev committing to get it right the first time, or else. The fact I
71 haven't blown the tree up in years, even using archaic workflows, should be
72 proof enough that what I do does work, even if it is sub-optimal in the eyes
73 of others.
74
75 If we do deprecate repoman, that's fine. I'll learn the new tooling. My
76 initial beef was the use of subjective opinion in proposing the initial
77 change in the first place. Even if it is blatantly obvious to many that A >
78 B, these mailing lists serve as a public archive of our work, so when
79 proposing key changes, regardless of how many people know/don't know about
80 something, full justification needs to be stated clearly and openly.
81
82 --
83 Joshua Kinard
84 Gentoo/MIPS
85 kumba@g.o
86 rsa6144/5C63F4E3F5C6C943 2015-04-27
87 177C 1972 1FB8 F254 BAD0 3E72 5C63 F4E3 F5C6 C943
88
89 "The past tempts us, the present confuses us, the future frightens us. And
90 our lives slip away, moment by moment, lost in that vast, terrible in-between."
91
92 --Emperor Turhan, Centauri Republic

Replies

Subject Author
Re: [gentoo-dev] Deprecating repoman Sam James <sam@g.o>