public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Developer branches on proj/gentoo
@ 2015-08-11 13:52 Patrice Clement
  2015-08-11 14:01 ` Michał Górny
  2015-08-11 14:12 ` hasufell
  0 siblings, 2 replies; 18+ messages in thread
From: Patrice Clement @ 2015-08-11 13:52 UTC (permalink / raw
  To: gentoo-dev

Hi there

According to https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model,
"there may be developer-specific, task-specific, project-specific branches
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. 

proj/gentoo should be kept for "serious business" i.e. commits that affects the
tree. On the long run, if everybody goes down that road, we will see flourish
numerous branches (who said unmaintained?), all stalled at a different state of
the main repo, and it will only generate a lot of noise and confusion for
nothing. Further, since we've moved over to git, the main tree now gets
replicated to github and we all have github accounts here, don't we? Which makes
the whole forking and submitting PRs a cinch.

If a developer wants to tinker with the tree, he can fork it to its github
devspace, fiddle around, and later on send us a PR back with his changes to
merge.

Cheers,
Patrice



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 13:52 [gentoo-dev] Developer branches on proj/gentoo Patrice Clement
@ 2015-08-11 14:01 ` Michał Górny
  2015-08-11 14:09   ` Tobias Klausmann
                     ` (2 more replies)
  2015-08-11 14:12 ` hasufell
  1 sibling, 3 replies; 18+ messages in thread
From: Michał Górny @ 2015-08-11 14:01 UTC (permalink / raw
  To: Patrice Clement; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 903 bytes --]

Dnia 2015-08-11, o godz. 15:52:16
Patrice Clement <monsieurp@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 branches
> 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.

-- 
Best regards,
Michał Górny
<http://dev.gentoo.org/~mgorny/>

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 949 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:01 ` Michał Górny
@ 2015-08-11 14:09   ` Tobias Klausmann
  2015-08-11 14:10   ` Alexis Ballier
  2015-08-11 15:11   ` Ian Stakenvicius
  2 siblings, 0 replies; 18+ messages in thread
From: Tobias Klausmann @ 2015-08-11 14:09 UTC (permalink / raw
  To: gentoo-dev

Hi! 

On Tue, 11 Aug 2015, Michał Górny wrote:
> Dnia 2015-08-11, o godz. 15:52:16
> Patrice Clement <monsieurp@gentoo.org> napisał(a):
> 
> > According to https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model,
> > "there may be developer-specific, task-specific, project-specific branches
> > 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.

I agree with monsierp here, person-level stuff should not be in
the official repo.

Also note that "not in the main repo" does not mean "non-public".
People (and projects) can always publish their version of the
tree somewhere else.

I personally even dislike the project branches, but those I am
more willing to accept.

Regards,
Tobias

PS: Call me a pessimist, but every time I see "if it's used with
caution", I think: yeah, but it won't.

-- 
Sent from aboard the Culture ship
	Fine Till You Came Along


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:01 ` Michał Górny
  2015-08-11 14:09   ` Tobias Klausmann
@ 2015-08-11 14:10   ` Alexis Ballier
  2015-08-11 14:19     ` hasufell
  2015-08-11 15:11   ` Ian Stakenvicius
  2 siblings, 1 reply; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 14:10 UTC (permalink / raw
  To: Michał Górny; +Cc: Patrice Clement, gentoo-dev

On Tue, 11 Aug 2015 16:01:05 +0200
Michał Górny <mgorny@gentoo.org> wrote:

> Dnia 2015-08-11, o godz. 15:52:16
> Patrice Clement <monsieurp@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
> > branches 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.

Then we should define 'caution' I think :)

> 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.

Most, if not all, projects I've seen use forks for this. This doesn't
prevent being public but gives a clear definition of what 'caution' is.
Branches are usually reserved for releases maintainance.

Alexis.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 13:52 [gentoo-dev] Developer branches on proj/gentoo Patrice Clement
  2015-08-11 14:01 ` Michał Górny
@ 2015-08-11 14:12 ` hasufell
  2015-08-11 14:24   ` William Hubbs
  1 sibling, 1 reply; 18+ messages in thread
From: hasufell @ 2015-08-11 14:12 UTC (permalink / raw
  To: gentoo-dev

On 08/11/2015 03:52 PM, Patrice Clement wrote:
> Hi there
> 
> According to https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model,
> "there may be developer-specific, task-specific, project-specific branches
> 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. 
> 
> proj/gentoo should be kept for "serious business" i.e. commits that affects the
> tree. On the long run, if everybody goes down that road, we will see flourish
> numerous branches (who said unmaintained?), all stalled at a different state of
> the main repo, and it will only generate a lot of noise and confusion for
> nothing. Further, since we've moved over to git, the main tree now gets
> replicated to github and we all have github accounts here, don't we? Which makes
> the whole forking and submitting PRs a cinch.
> 
> If a developer wants to tinker with the tree, he can fork it to its github
> devspace, fiddle around, and later on send us a PR back with his changes to
> merge.
> 

Branches can still make sense, even if the model is that everyone has
his own fork, see
http://nvie.com/posts/a-successful-git-branching-model/
for an example.

I currently don't see a reason to limit the workflow to one master branch.

It doesn't necessarily generate noise or confusion and there are various
ways to only fetch specific branches if you really need to do so. Git's
main advantage _are_ branches and it has sufficient methods to deal with
a lot of them.

If they cause trouble, we can still prune them and enforce stricter
rules, but since we don't even know how they will be used, this point is
moot yet.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:10   ` Alexis Ballier
@ 2015-08-11 14:19     ` hasufell
  2015-08-11 14:26       ` Anthony G. Basile
  2015-08-11 15:01       ` Alexis Ballier
  0 siblings, 2 replies; 18+ messages in thread
From: hasufell @ 2015-08-11 14:19 UTC (permalink / raw
  To: gentoo-dev

On 08/11/2015 04:10 PM, Alexis Ballier wrote:
> On Tue, 11 Aug 2015 16:01:05 +0200
> Michał Górny <mgorny@gentoo.org> wrote:
> 
>> Dnia 2015-08-11, o godz. 15:52:16
>> Patrice Clement <monsieurp@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
>>> branches 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.
> 
> Then we should define 'caution' I think :)
> 
>> 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.
> 
> Most, if not all, projects I've seen use forks for this.

Blender does not, afaik. And I've seen a lot of projects doing that. The
difference between e.g. "myremote/featurebranch" and
"upstream/featurebranch" is just that someone has looked over
"upstream/featurebranch" and that it requires pull requests to get stuff
in (so the developer work happens in their developer forks, but the
results still get into the same upstream branch).

That would, for example, make sense for libressl. Since we basically
just overwrite a lot of ebuilds to be able to test them with libressl
patches. That is currently done with an overlay which always opens up
the problem that we lack behind the tree and undesired openssl ebuilds
leak in for the user, because of tree-overlay desync.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:12 ` hasufell
@ 2015-08-11 14:24   ` William Hubbs
  0 siblings, 0 replies; 18+ messages in thread
From: William Hubbs @ 2015-08-11 14:24 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2521 bytes --]

On Tue, Aug 11, 2015 at 04:12:29PM +0200, hasufell wrote:
> On 08/11/2015 03:52 PM, Patrice Clement wrote:
> > Hi there
> > 
> > According to https://wiki.gentoo.org/wiki/Gentoo_git_workflow#Branching_Model,
> > "there may be developer-specific, task-specific, project-specific branches
> > 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. 
> > 
> > proj/gentoo should be kept for "serious business" i.e. commits that affects the
> > tree. On the long run, if everybody goes down that road, we will see flourish
> > numerous branches (who said unmaintained?), all stalled at a different state of
> > the main repo, and it will only generate a lot of noise and confusion for
> > nothing. Further, since we've moved over to git, the main tree now gets
> > replicated to github and we all have github accounts here, don't we? Which makes
> > the whole forking and submitting PRs a cinch.
> > 
> > If a developer wants to tinker with the tree, he can fork it to its github
> > devspace, fiddle around, and later on send us a PR back with his changes to
> > merge.
> > 
> 
> Branches can still make sense, even if the model is that everyone has
> his own fork, see
> http://nvie.com/posts/a-successful-git-branching-model/
> for an example.
> 
> I currently don't see a reason to limit the workflow to one master branch.
> 
> It doesn't necessarily generate noise or confusion and there are various
> ways to only fetch specific branches if you really need to do so. Git's
> main advantage _are_ branches and it has sufficient methods to deal with
> a lot of them.
> 
> If they cause trouble, we can still prune them and enforce stricter
> rules, but since we don't even know how they will be used, this point is
> moot yet.
 
 I'm with mgorny and hasufell on this; I'm not worried about regulating
 branches that much.

Also, since we have our own tree on g.g.o, the tree on github is a
mirror, so we should treat it as such, e.g. it could go down at any
point, and if it does, we can keep working based on our official tree.

There's even a way in git itself to do something like a github pull
request (see the git request-pull command), so we don't need to rely on
github for that.

William


[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:19     ` hasufell
@ 2015-08-11 14:26       ` Anthony G. Basile
  2015-08-11 15:02         ` Rich Freeman
  2015-08-11 15:05         ` Alexis Ballier
  2015-08-11 15:01       ` Alexis Ballier
  1 sibling, 2 replies; 18+ messages in thread
From: Anthony G. Basile @ 2015-08-11 14:26 UTC (permalink / raw
  To: gentoo-dev

On 8/11/15 10:19 AM, hasufell wrote:
> On 08/11/2015 04:10 PM, Alexis Ballier wrote:
>> On Tue, 11 Aug 2015 16:01:05 +0200
>> Michał Górny <mgorny@gentoo.org> wrote:
>>
>>> Dnia 2015-08-11, o godz. 15:52:16
>>> Patrice Clement <monsieurp@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
>>>> branches 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.
>> Then we should define 'caution' I think :)
>>
>>
I would not say "caution" so much as good judgment.  The first example 
that came to mind was working with the profiles which crosses many 
directories and files.  In the past when I did restructuring to the 
hardened profiles, I tested by using a branch of the hardened-dev 
overlay.  It was annoying and I would do a bind mount over 
/usr/portage/profiles and had to rebase manually.  A test branch of the 
the main tree which could get rebased and eventually merged back would 
make the workflow so much better.  Another example was when we 
revitalized the selinux policies.  There were hundreds of commits to be 
done.  A branch here that got merged back would be ideal.

-- 
Anthony G. Basile, Ph.D.
Gentoo Linux Developer [Hardened]
E-Mail    : blueness@gentoo.org
GnuPG FP  : 1FED FAD9 D82C 52A5 3BAB  DC79 9384 FA6E F52D 4BBA
GnuPG ID  : F52D4BBA



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:19     ` hasufell
  2015-08-11 14:26       ` Anthony G. Basile
@ 2015-08-11 15:01       ` Alexis Ballier
  1 sibling, 0 replies; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 15:01 UTC (permalink / raw
  To: gentoo-dev

On Tue, 11 Aug 2015 16:19:12 +0200
hasufell <hasufell@gentoo.org> wrote:

> On 08/11/2015 04:10 PM, Alexis Ballier wrote:
> > On Tue, 11 Aug 2015 16:01:05 +0200
> > Michał Górny <mgorny@gentoo.org> wrote:
> > 
> >> Dnia 2015-08-11, o godz. 15:52:16
> >> Patrice Clement <monsieurp@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
> >>> branches 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.
> > 
> > Then we should define 'caution' I think :)
> > 
> >> 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.
> > 
> > Most, if not all, projects I've seen use forks for this.
> 
> Blender does not, afaik. And I've seen a lot of projects doing that.
> The difference between e.g. "myremote/featurebranch" and
> "upstream/featurebranch" is just that someone has looked over
> "upstream/featurebranch" and that it requires pull requests to get
> stuff in (so the developer work happens in their developer forks, but
> the results still get into the same upstream branch).

You can merge remote tracking branches just the same you merge
'upstream' branches. You can even rebase them which tends to give a
better history but is harder if you forbid non fast-forward pushes
to gentoo.git. Pull requests are only useful for pre-commit reviews.

> That would, for example, make sense for libressl. Since we basically
> just overwrite a lot of ebuilds to be able to test them with libressl
> patches. That is currently done with an overlay which always opens up
> the problem that we lack behind the tree and undesired openssl ebuilds
> leak in for the user, because of tree-overlay desync.

Branch or remote, this doesn't change anything since no commit to
master will automagically update your branch. The only thing you're
achieving is a fixed gentoo-x86 tree snapshot + an overlay in the same
repo, which you could already do anyway.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:26       ` Anthony G. Basile
@ 2015-08-11 15:02         ` Rich Freeman
  2015-08-11 15:05         ` Alexis Ballier
  1 sibling, 0 replies; 18+ messages in thread
From: Rich Freeman @ 2015-08-11 15:02 UTC (permalink / raw
  To: gentoo-dev

On Tue, Aug 11, 2015 at 10:26 AM, Anthony G. Basile <blueness@gentoo.org> wrote:
> I would not say "caution" so much as good judgment.  The first example that
> came to mind was working with the profiles which crosses many directories
> and files.  In the past when I did restructuring to the hardened profiles, I
> tested by using a branch of the hardened-dev overlay.  It was annoying and I
> would do a bind mount over /usr/portage/profiles and had to rebase manually.
> A test branch of the the main tree which could get rebased and eventually
> merged back would make the workflow so much better.  Another example was
> when we revitalized the selinux policies.  There were hundreds of commits to
> be done.  A branch here that got merged back would be ideal.
>

Agree.  You could still do this with an outside repository that
everybody adds a remote to (a git repository can have many remotes).
You can merge/rebase from a branch outside of gentoo to one inside of
gentoo.

I think the preference should be that users doing their own work
should try to keep the interim stuff out of the main gentoo
repository.  On the other hand, when collaborating teams should be
welcome to use the gentoo repository or their own overlay as makes
sense, with the preference moving more to gentoo as the number of
impacted devs/testers/etc gets bigger.  It will always be a judgment
call.

In the end there isn't that big a difference in git between "git
checkout origin/proj/kde5" and "git checkout kde5overlay/master."
That is the beauty of git.

-- 
Rich


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:26       ` Anthony G. Basile
  2015-08-11 15:02         ` Rich Freeman
@ 2015-08-11 15:05         ` Alexis Ballier
  1 sibling, 0 replies; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 15:05 UTC (permalink / raw
  To: gentoo-dev

On Tue, 11 Aug 2015 10:26:46 -0400
"Anthony G. Basile" <blueness@gentoo.org> wrote:

> On 8/11/15 10:19 AM, hasufell wrote:
> > On 08/11/2015 04:10 PM, Alexis Ballier wrote:
> >> On Tue, 11 Aug 2015 16:01:05 +0200
> >> Michał Górny <mgorny@gentoo.org> wrote:
> >>
> >>> Dnia 2015-08-11, o godz. 15:52:16
> >>> Patrice Clement <monsieurp@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
> >>>> branches 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.
> >> Then we should define 'caution' I think :)
> >>
> >>
> I would not say "caution" so much as good judgment.  The first
> example that came to mind was working with the profiles which crosses
> many directories and files.  In the past when I did restructuring to
> the hardened profiles, I tested by using a branch of the hardened-dev 
> overlay.  It was annoying and I would do a bind mount over 
> /usr/portage/profiles and had to rebase manually.  A test branch of
> the the main tree which could get rebased and eventually merged back
> would make the workflow so much better.  Another example was when we 
> revitalized the selinux policies.  There were hundreds of commits to
> be done.  A branch here that got merged back would be ideal.


you probably did this before it happened, but a solution in the last
months could have been to fork gentoo-portage-rsync-mirror, merge it
back (or better: rebase onto it) from time to time, and do a squashed PR
that you can merge with mgorny's scripts.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 14:01 ` Michał Górny
  2015-08-11 14:09   ` Tobias Klausmann
  2015-08-11 14:10   ` Alexis Ballier
@ 2015-08-11 15:11   ` Ian Stakenvicius
  2015-08-11 15:21     ` Alexis Ballier
  2 siblings, 1 reply; 18+ messages in thread
From: Ian Stakenvicius @ 2015-08-11 15:11 UTC (permalink / raw
  To: gentoo-dev

-----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
> <monsieurp@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.






-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iF4EAREIAAYFAlXKEK8ACgkQAJxUfCtlWe35RwEAi2VkkJkCWXCh6tJhEKDbfmzY
fP3rh20RURm84+8K2ysA/2u3dcTukXlGcLHW2xRSR/bjx5be1X+IL8A48bsqgujr
=uppX
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 15:11   ` Ian Stakenvicius
@ 2015-08-11 15:21     ` Alexis Ballier
  2015-08-11 15:51       ` Ian Stakenvicius
  2015-08-11 16:03       ` hasufell
  0 siblings, 2 replies; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 15:21 UTC (permalink / raw
  To: gentoo-dev

On Tue, 11 Aug 2015 11:11:43 -0400
Ian Stakenvicius <axs@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
> > <monsieurp@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 :)

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-*).

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?


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 15:21     ` Alexis Ballier
@ 2015-08-11 15:51       ` Ian Stakenvicius
  2015-08-11 18:47         ` Alexis Ballier
  2015-08-11 16:03       ` hasufell
  1 sibling, 1 reply; 18+ messages in thread
From: Ian Stakenvicius @ 2015-08-11 15:51 UTC (permalink / raw
  To: gentoo-dev

-----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
> <axs@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 
>>> <monsieurp@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.

> 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-----


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 15:21     ` Alexis Ballier
  2015-08-11 15:51       ` Ian Stakenvicius
@ 2015-08-11 16:03       ` hasufell
  2015-08-11 16:08         ` Ian Stakenvicius
  2015-08-11 18:53         ` Alexis Ballier
  1 sibling, 2 replies; 18+ messages in thread
From: hasufell @ 2015-08-11 16:03 UTC (permalink / raw
  To: gentoo-dev

On 08/11/2015 05:21 PM, Alexis Ballier wrote:
> 
> 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?
> 

You will run repoman (and probably other pkgcore based checks) before
you push that merge. That is for sure.

The only problem that can arise there is that we don't roll our versions
via branches, but via filenames. That means you may merge correctly, but
in master there was already a newer version of app-misc/foo which now
lacks the multilib migration (which isn't a tree breaker, since stuff
still repomanchecks).

We could probably come up with some magic git/bash lines that help with
that. As in: not just detect merge-conflicts, but also "soft conflicts"
in the sense that someone else touched the same ebuild-directory as you
in between.

NixOS for example has (probably not only for that reason) not any
version based filenames, but they roll release-channels via branches.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 16:03       ` hasufell
@ 2015-08-11 16:08         ` Ian Stakenvicius
  2015-08-11 18:53         ` Alexis Ballier
  1 sibling, 0 replies; 18+ messages in thread
From: Ian Stakenvicius @ 2015-08-11 16:08 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 11/08/15 12:03 PM, hasufell wrote:
> On 08/11/2015 05:21 PM, Alexis Ballier wrote:
>> 
>> 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?
>> 
> 
> You will run repoman (and probably other pkgcore based checks)
> before you push that merge. That is for sure.
> 
> The only problem that can arise there is that we don't roll our
> versions via branches, but via filenames. That means you may
> merge correctly, but in master there was already a newer version
> of app-misc/foo which now lacks the multilib migration (which
> isn't a tree breaker, since stuff still repomanchecks).
> 
> We could probably come up with some magic git/bash lines that
> help with that. As in: not just detect merge-conflicts, but also
> "soft conflicts" in the sense that someone else touched the same
> ebuild-directory as you in between.
> 
> NixOS for example has (probably not only for that reason) not
> any version based filenames, but they roll release-channels via
> branches.
> 

That sort of relates to the idea that was brought up last year, if
portage could be made to detect and do VDB-only merges and would
re-emerge ebuilds based on the fact that they were modified rather
than their ${PVR} being incremented, then we could get rid of
revision#'s entirely.  Not a true version removal but it would
reduce the number of distinct files we would be working with in
cases like the above.

But this isn't the place to discuss that tangent I don't think; that
needs a whole new thread and a whole lot of portage development and
possibly a PMS change?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iF4EAREIAAYFAlXKHf0ACgkQAJxUfCtlWe23RQEAuuHF7S5bKHl8ayGYgitGZFuh
ETcKKDxaKw76i2pVDwkA/RLwUKUpbZpId7mvl3j9c4obO9ZAxCaxW25UikU1ZtsV
=YBDy
-----END PGP SIGNATURE-----


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 15:51       ` Ian Stakenvicius
@ 2015-08-11 18:47         ` Alexis Ballier
  0 siblings, 0 replies; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 18:47 UTC (permalink / raw
  To: gentoo-dev

On Tue, 11 Aug 2015 11:51:14 -0400
Ian Stakenvicius <axs@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
> > <axs@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 
> >>> <monsieurp@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 :)


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [gentoo-dev] Developer branches on proj/gentoo
  2015-08-11 16:03       ` hasufell
  2015-08-11 16:08         ` Ian Stakenvicius
@ 2015-08-11 18:53         ` Alexis Ballier
  1 sibling, 0 replies; 18+ messages in thread
From: Alexis Ballier @ 2015-08-11 18:53 UTC (permalink / raw
  To: gentoo-dev

On Tue, 11 Aug 2015 18:03:54 +0200
hasufell <hasufell@gentoo.org> wrote:

> On 08/11/2015 05:21 PM, Alexis Ballier wrote:
> > 
> > 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?
> > 
> 
> You will run repoman (and probably other pkgcore based checks) before
> you push that merge. That is for sure.


passing repoman, or any static checker, is definitely a very small
subset of what is needed to be good for gentoo-x86

> The only problem that can arise there is that we don't roll our
> versions via branches, but via filenames. That means you may merge
> correctly, but in master there was already a newer version of
> app-misc/foo which now lacks the multilib migration (which isn't a
> tree breaker, since stuff still repomanchecks).
> 
> We could probably come up with some magic git/bash lines that help
> with that. As in: not just detect merge-conflicts, but also "soft
> conflicts" in the sense that someone else touched the same
> ebuild-directory as you in between.
> 
> NixOS for example has (probably not only for that reason) not any
> version based filenames, but they roll release-channels via branches.

After fixing all these sorts of conflicts, I hope you test things
thouroughly, again, after the merge. In the end, it's shorter and
simpler to stop and think at the beginning on how to split your work in
small commits without branching.


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2015-08-11 18:54 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-11 13:52 [gentoo-dev] Developer branches on proj/gentoo Patrice Clement
2015-08-11 14:01 ` Michał Górny
2015-08-11 14:09   ` Tobias Klausmann
2015-08-11 14:10   ` Alexis Ballier
2015-08-11 14:19     ` hasufell
2015-08-11 14:26       ` Anthony G. Basile
2015-08-11 15:02         ` Rich Freeman
2015-08-11 15:05         ` Alexis Ballier
2015-08-11 15:01       ` Alexis Ballier
2015-08-11 15:11   ` Ian Stakenvicius
2015-08-11 15:21     ` Alexis Ballier
2015-08-11 15:51       ` Ian Stakenvicius
2015-08-11 18:47         ` Alexis Ballier
2015-08-11 16:03       ` hasufell
2015-08-11 16:08         ` Ian Stakenvicius
2015-08-11 18:53         ` Alexis Ballier
2015-08-11 14:12 ` hasufell
2015-08-11 14:24   ` William Hubbs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox