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 |