On Tue, 11 Aug 2015 11:51:14 -0400
Ian Stakenvicius <a...@gentoo.org> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> On 11/08/15 11:21 AM, Alexis Ballier wrote:
> > On Tue, 11 Aug 2015 11:11:43 -0400 Ian Stakenvicius
> > <a...@gentoo.org> wrote:
> > 
> >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
> >> 
> >> On 11/08/15 10:01 AM, Michał Górny wrote:
> >>> Dnia 2015-08-11, o godz. 15:52:16 Patrice Clement 
> >>> <monsie...@gentoo.org> napisał(a):
> >>> 
> >>>> Hi there
> >>>> 
> >>>> According to 
> >>>> https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model,
> >>>>
> >>>>
> >>
> >>>> 
> "there may be developer-specific, task-specific, project-specific
> >> branch es
> >>>> etc". As far as I understand, it means I can go and create
> >>>> my own branch on the main repository and push it and it
> >>>> gets spread all over the place. Is that correct?
> >>>> 
> >>>> Could someone explain to me the rationale behind this
> >>>> decision?
> >>>> 
> >>>> Truth to be told, I kinda dislike the fact any developer
> >>>> can do this.
> >>> 
> >>> As long as it's used with caution, I don't see a problem. Of
> >>> course it would be bad if everyone pushed branches for any
> >>> minor change. However, if there is a long-term work going on
> >>> a branch, I don't see a problem with keeping it public.
> >>> 
> >> 
> >> Examples in particular I can think of for something like this
> >> being useful would be for, say, major EAPI-bump-related
> >> feature implementations (ie, EAPI5 and
> >> slot-operators/subslots), or major across-tree impementation
> >> changes like what we saw with the multilib-eclass porting.
> >> 
> >> These are large projects touching most if not all ebuilds, that
> >> a great many developers would or should be involved in.
> >> Something like this could be done in a separately hosted repo
> >> instead of in the main gentoo repo, but then all developers
> >> would need to subscribe to this other repo, while having it in
> >> a branch in the main one i think would make it easier for
> >> everyone to get involved once they're ready, and would still
> >> allow the changes to stay out of the master branch until the
> >> project is ready to launch.
> > 
> > 
> > For me, this is actually a reason to prohibit it :)
> > 
> > EAPI bumps should be done package by package, not at a major
> > scale: otherwise, let's just scrap EAPI entirely and update the
> > API as we see fit with p.masked package managers :)
> 
> Not EAPI bumps, but implementation of major new features as a result
> of the new EAPI.  Most EAPI changes generally are beneficial to
> particular ebuilds, but some (such as slot-operators and subslots)
> really needed to be implemented across a great many packages (and
> eclasses too at times).  We did it with overlays and patches via
> b.g.o and slowly things migrated, but I think it would have gone a
> lot faster if all developers had quick and easy access to a branch.


I'm glad this wasn't done that way actually. When subslots appeared,
there was a serious tendency to use them in a fashion that caused
useless rebuilds most of the time. With time, and discussions on some
specific cases, saner practices were adopted.


> > multilib eclasses conversions should also be done one by one to
> > be done properly (otherwise using multilib-portage is probably a
> > better idea) and each conversion touches one package (two if you
> > count emul-*).
> 
> But they don't just touch one package -- you pretty much needed to
> do a full deptree at a time.

Sorry, but no. There was an order in which you could do it, but that's
all.

>  We worked around it with a rather
> messy 'delete all files in emul-* that collide with the
> multilib-built packages currently available' plus a convoluted set
> of ||() deps wrapping each emul and the individual alternative
> atoms.  And even then it was still a mess to try and actually use it
> on end-user systems due to various conflicts.

We split up the huge task into small and manageable ones, yes. I see it
as a clear benefit and I'd even say this is one of the major reasons
multilib-portage didn't make it. This also allowed to iteratively
improve the multilib approach with the experience gained from
converting small parts while getting feedback from those interested.

I don't know what conflicts you're talking about, but I haven't
seen any that was not due to a poor conversion.

> > Big changes that that go in feature branches and are merged in
> > one pass are, from my experience, way too much prone to errors.
> > Did anyone ever try to review a merge commit?
> 
> This makes sense, yes; the merge back to the main tree could very
> well be more difficult than it's worth, however if the branch is
> available to all, then the migration into the main tree could be
> done piecemeal in batches too rather than in one huge swash.
> 
> The point is, I think it'd be easier and faster to implement these
> major treewide projects (and easier to verify too) if the work could
> be done in a branch available to all, rather than in what would
> effectively be an overlay someplace external.

You seem to like pull requests and pre-commit reviews :)
I believe it is optimistic to say that because there is a branch in
gentoo.git then suddenly a lot of people will use this outdated branch
to test the feature.

> How we manage it
> effectively, I can't say one way or the other but likely this is
> something that we will need to learn from experience as much as
> decree policy for.

yes; or discussions :)

Reply via email to