1 |
On Sat, Feb 17, 2018 at 11:39 AM, Alec Warner <antarus@g.o> wrote: |
2 |
> |
3 |
> I like the idea (having myself thought about a 'core' set of packages with |
4 |
> overlays) so I'm excited to see your implementation. I would avoid any |
5 |
> senior / junior designations (I think it blunts your message). Senior people |
6 |
> can cause screwups and break the tree and not care 'enough', just as junior |
7 |
> developers can. I think this is more a difference in goals for the project |
8 |
> than any specific 'experience level'. |
9 |
> |
10 |
|
11 |
++ - such relationships tend to naturally form (and might be fostered |
12 |
by more active smaller teams), but they probably don't need to be |
13 |
formalized as such. |
14 |
|
15 |
I've also wondered if a more overlay-driven process might be |
16 |
beneficial, and certainly others like hasufel have been proponents of |
17 |
this mode. I can think of some pros and cons: |
18 |
|
19 |
Pros |
20 |
|
21 |
Smaller overlays actually fit well into the metadistro model, and you |
22 |
can actually have a much more blurred progression in terms of level of |
23 |
QA/etc. You can also have "competing" overlays for some parts of the |
24 |
trees (which might actually be maintained by the same team), such as a |
25 |
bleeding-edge kde vs stable kde overlay. (These sorts of models |
26 |
already exist but have to be shoehorned into some degree today.) |
27 |
|
28 |
Smaller overlays may make it easier to lower the barrier to entry, |
29 |
because you don't need the same level of trust. Somebody could have |
30 |
access to a chromium overlay and be closely supervised by the chromium |
31 |
team and nobody else really needs to worry about them. |
32 |
|
33 |
As Daniel mentioned eclass changes are less impactful, because each |
34 |
overlay can have its private copy, which can be upgraded |
35 |
independently. |
36 |
|
37 |
Repo storage and sync overhead is reduced since not everybody will |
38 |
sync every overlay. |
39 |
|
40 |
|
41 |
Cons |
42 |
|
43 |
Cross-overlay dependencies need a solution. It could be convention |
44 |
(all systems must have the base overlay, and this is the only one |
45 |
allowed to have cross-repo dependencies), or there needs to be a way |
46 |
to define these dependencies so that portage knows when to pull in |
47 |
another repo (and which one if more than one could satisfy the |
48 |
dependency). |
49 |
|
50 |
Any kind of cross-overlay dependency loses the benefit of atomic git |
51 |
commits. It will be like working with Google's repo tool where unless |
52 |
you have matching tags in every overlay it will be very difficult to |
53 |
ever reproduce the same configuration. Likewise you lose the |
54 |
potential to apply CI/tinderboxing across the entire universe of |
55 |
dependencies. |
56 |
|
57 |
All those forked eclasses provide all the compatibility benefits, and |
58 |
security/regression issues, of bundled libraries. |
59 |
|
60 |
Some efforts tend to require a lot of misc cross-package work. For |
61 |
example, the systemd team has done a lot of work to maintain units for |
62 |
various packages, and while this is done in cooperation with |
63 |
maintainers most of the commits are done directly by the systemd team |
64 |
and might not get done at all otherwise. For this to happen in an |
65 |
overlay-centric world a team like systemd would need commit rights |
66 |
everywhere, or would need to rely on pull requests getting merged by |
67 |
these teams, or worst case they'd end up having to maintain forks of |
68 |
overlays just to add units, which of course seems wasteful. |
69 |
|
70 |
|
71 |
You also still deal with the community issues. From a QA standpoint |
72 |
having people in their own sandboxes may ease things. On the other |
73 |
hand, if members of the community have interpersonal conflict on |
74 |
lists/irc/etc then we still need to deal with that, and then we might |
75 |
be asking some overlay with three committers to kick one of them out |
76 |
because they don't get along with somebody who isn't involved with |
77 |
that overlay, or we have to live with perpetual conflict under the |
78 |
Gentoo banner that we're incapable of dealing with. Of course, the |
79 |
same issue exists even though we are in the same repo, since smaller |
80 |
teams feel the same impact, but splitting things up might lead to more |
81 |
of a sense of ownership by these teams, which can be both good and |
82 |
bad. |
83 |
|
84 |
I guess QA standards are also a challenge. Are QA standards still |
85 |
imposed from above (thou shalt do these things to be part of the |
86 |
distro)? Or are they more like certification standards (thou shalt do |
87 |
these things to have the stable label applied to your overlay)? Will |
88 |
this also result in forks? For example, suppose the chromium project |
89 |
has no interest in a stable overlay, but there is still demand for |
90 |
one, and the two groups can't get along. Would the stable camp need |
91 |
to basically fork the chromium overlay just to create a |
92 |
chromium-stable? Is this a better use of resources? |
93 |
|
94 |
If it sounds like I'm negative on the whole thing it is more because I |
95 |
think it is promising but keep thinking of issues that would need to |
96 |
be overcome. Also, every time I ever touch a project that uses |
97 |
Google's repo tool I inevitably end up cursing it at some point. That |
98 |
isn't necessarily a reason not to try, but we do need to think such |
99 |
things out. To some degree Funtoo has the luxury that it gets to |
100 |
start with a repo where all the benefits of a single tree already |
101 |
exist, so the cons might not be as apparent there. |
102 |
|
103 |
-- |
104 |
Rich |