From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 8797B139737 for ; Tue, 11 Aug 2015 15:51:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id E2D44141A8; Tue, 11 Aug 2015 15:51:16 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id EDF0F14179 for ; Tue, 11 Aug 2015 15:51:15 +0000 (UTC) Received: from [192.168.1.130] (CPE002401f30b73-CM78cd8ec1b205.cpe.net.cable.rogers.com [99.224.138.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: axs) by smtp.gentoo.org (Postfix) with ESMTPSA id D5F1D340B98 for ; Tue, 11 Aug 2015 15:51:14 +0000 (UTC) Subject: Re: [gentoo-dev] Developer branches on proj/gentoo To: gentoo-dev@lists.gentoo.org References: <20150811135216.GG21010@sigkill.axestech.net> <20150811160105.5e3ceb08@pomiot> <55CA10AF.1000204@gentoo.org> <20150811172122.07c79e90@gentoo.org> From: Ian Stakenvicius Message-ID: <55CA19F2.5070901@gentoo.org> Date: Tue, 11 Aug 2015 11:51:14 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 In-Reply-To: <20150811172122.07c79e90@gentoo.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Archives-Salt: 68e0ba94-e0c3-4296-823b-ed8b27926c02 X-Archives-Hash: 1b80cc39ed5ecfba3a80eeab56aee84a -----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 > 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 >>> 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. > 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. 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. > 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.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. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iF4EAREIAAYFAlXKGfIACgkQAJxUfCtlWe11XgD/SvvIb9pcZ/k2WRH5OsrKG2G4 0uYC0godRRVytY7s78MA/0dMKUqAlVmqF/HntzPJYoLAqQxGCsrNassDB1iLBV6p =/msL -----END PGP SIGNATURE-----