1 |
On Tue, 11 Aug 2015 11:51:14 -0400 |
2 |
Ian Stakenvicius <axs@g.o> wrote: |
3 |
|
4 |
> -----BEGIN PGP SIGNED MESSAGE----- |
5 |
> Hash: SHA256 |
6 |
> |
7 |
> On 11/08/15 11:21 AM, Alexis Ballier wrote: |
8 |
> > On Tue, 11 Aug 2015 11:11:43 -0400 Ian Stakenvicius |
9 |
> > <axs@g.o> wrote: |
10 |
> > |
11 |
> >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 |
12 |
> >> |
13 |
> >> On 11/08/15 10:01 AM, Michał Górny wrote: |
14 |
> >>> Dnia 2015-08-11, o godz. 15:52:16 Patrice Clement |
15 |
> >>> <monsieurp@g.o> napisał(a): |
16 |
> >>> |
17 |
> >>>> Hi there |
18 |
> >>>> |
19 |
> >>>> According to |
20 |
> >>>> https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model, |
21 |
> >>>> |
22 |
> >>>> |
23 |
> >> |
24 |
> >>>> |
25 |
> "there may be developer-specific, task-specific, project-specific |
26 |
> >> branch es |
27 |
> >>>> etc". As far as I understand, it means I can go and create |
28 |
> >>>> my own branch on the main repository and push it and it |
29 |
> >>>> gets spread all over the place. Is that correct? |
30 |
> >>>> |
31 |
> >>>> Could someone explain to me the rationale behind this |
32 |
> >>>> decision? |
33 |
> >>>> |
34 |
> >>>> Truth to be told, I kinda dislike the fact any developer |
35 |
> >>>> can do this. |
36 |
> >>> |
37 |
> >>> As long as it's used with caution, I don't see a problem. Of |
38 |
> >>> course it would be bad if everyone pushed branches for any |
39 |
> >>> minor change. However, if there is a long-term work going on |
40 |
> >>> a branch, I don't see a problem with keeping it public. |
41 |
> >>> |
42 |
> >> |
43 |
> >> Examples in particular I can think of for something like this |
44 |
> >> being useful would be for, say, major EAPI-bump-related |
45 |
> >> feature implementations (ie, EAPI5 and |
46 |
> >> slot-operators/subslots), or major across-tree impementation |
47 |
> >> changes like what we saw with the multilib-eclass porting. |
48 |
> >> |
49 |
> >> These are large projects touching most if not all ebuilds, that |
50 |
> >> a great many developers would or should be involved in. |
51 |
> >> Something like this could be done in a separately hosted repo |
52 |
> >> instead of in the main gentoo repo, but then all developers |
53 |
> >> would need to subscribe to this other repo, while having it in |
54 |
> >> a branch in the main one i think would make it easier for |
55 |
> >> everyone to get involved once they're ready, and would still |
56 |
> >> allow the changes to stay out of the master branch until the |
57 |
> >> project is ready to launch. |
58 |
> > |
59 |
> > |
60 |
> > For me, this is actually a reason to prohibit it :) |
61 |
> > |
62 |
> > EAPI bumps should be done package by package, not at a major |
63 |
> > scale: otherwise, let's just scrap EAPI entirely and update the |
64 |
> > API as we see fit with p.masked package managers :) |
65 |
> |
66 |
> Not EAPI bumps, but implementation of major new features as a result |
67 |
> of the new EAPI. Most EAPI changes generally are beneficial to |
68 |
> particular ebuilds, but some (such as slot-operators and subslots) |
69 |
> really needed to be implemented across a great many packages (and |
70 |
> eclasses too at times). We did it with overlays and patches via |
71 |
> b.g.o and slowly things migrated, but I think it would have gone a |
72 |
> lot faster if all developers had quick and easy access to a branch. |
73 |
|
74 |
|
75 |
I'm glad this wasn't done that way actually. When subslots appeared, |
76 |
there was a serious tendency to use them in a fashion that caused |
77 |
useless rebuilds most of the time. With time, and discussions on some |
78 |
specific cases, saner practices were adopted. |
79 |
|
80 |
|
81 |
> > multilib eclasses conversions should also be done one by one to |
82 |
> > be done properly (otherwise using multilib-portage is probably a |
83 |
> > better idea) and each conversion touches one package (two if you |
84 |
> > count emul-*). |
85 |
> |
86 |
> But they don't just touch one package -- you pretty much needed to |
87 |
> do a full deptree at a time. |
88 |
|
89 |
Sorry, but no. There was an order in which you could do it, but that's |
90 |
all. |
91 |
|
92 |
> We worked around it with a rather |
93 |
> messy 'delete all files in emul-* that collide with the |
94 |
> multilib-built packages currently available' plus a convoluted set |
95 |
> of ||() deps wrapping each emul and the individual alternative |
96 |
> atoms. And even then it was still a mess to try and actually use it |
97 |
> on end-user systems due to various conflicts. |
98 |
|
99 |
We split up the huge task into small and manageable ones, yes. I see it |
100 |
as a clear benefit and I'd even say this is one of the major reasons |
101 |
multilib-portage didn't make it. This also allowed to iteratively |
102 |
improve the multilib approach with the experience gained from |
103 |
converting small parts while getting feedback from those interested. |
104 |
|
105 |
I don't know what conflicts you're talking about, but I haven't |
106 |
seen any that was not due to a poor conversion. |
107 |
|
108 |
> > Big changes that that go in feature branches and are merged in |
109 |
> > one pass are, from my experience, way too much prone to errors. |
110 |
> > Did anyone ever try to review a merge commit? |
111 |
> |
112 |
> This makes sense, yes; the merge back to the main tree could very |
113 |
> well be more difficult than it's worth, however if the branch is |
114 |
> available to all, then the migration into the main tree could be |
115 |
> done piecemeal in batches too rather than in one huge swash. |
116 |
> |
117 |
> The point is, I think it'd be easier and faster to implement these |
118 |
> major treewide projects (and easier to verify too) if the work could |
119 |
> be done in a branch available to all, rather than in what would |
120 |
> effectively be an overlay someplace external. |
121 |
|
122 |
You seem to like pull requests and pre-commit reviews :) |
123 |
I believe it is optimistic to say that because there is a branch in |
124 |
gentoo.git then suddenly a lot of people will use this outdated branch |
125 |
to test the feature. |
126 |
|
127 |
> How we manage it |
128 |
> effectively, I can't say one way or the other but likely this is |
129 |
> something that we will need to learn from experience as much as |
130 |
> decree policy for. |
131 |
|
132 |
yes; or discussions :) |