Next focus: PROCESS

foobar foo at bar.com
Mon Dec 17 14:10:12 PST 2012


On Monday, 17 December 2012 at 22:02:45 UTC, foobar wrote:
> On Monday, 17 December 2012 at 21:03:04 UTC, Rob T wrote:
>> On Monday, 17 December 2012 at 18:14:54 UTC, foobar wrote:
>>> At the moment we may use git commands but really we are still 
>>> developing on mostly a subversion model. Walter used to 
>>> accept patches and those were simply replaced by pull 
>>> requests. There isn't any change in the mental model required 
>>> to really benefit from a decentralized system such as git. 
>>> This is what the process discussion is ultimately meant to 
>>> fix.
>>
>> I think you've made a very good point. In order to make the 
>> most out of the way decentralized systems work vs a 
>> centralized one, will require an adjustment in the way people 
>> think. If we choose to follow the centralized model nothing 
>> will be gained when using a decentralized service, however 
>> centralization has its place and there's an obvious need to 
>> merge decentralized branches into a common centralize branch 
>> so that there's a common branch to use for testing and 
>> performing releases (etc).
>>
>> I find it's great to debate ideas in here first, not the talk 
>> page, but any conclusions or interesting points of view should 
>> be posted into the wiki talk page so that it is not lost. IMO 
>> this one should go in the wiki if only to remind people that 
>> we have the flexibility of decentralized model to take 
>> advantage of.
>>
>> --rt
>
> DVCS is not about centralized vs. non centralized. This is a 
> common misunderstanding which I too had when I started using 
> git.
> The actual difference is a client-server topology (CVS, SVN, 
> etc) vs. P2P or perhaps "free-form" topology. By making all 
> users equal with their own full copies of the repository, git 
> and similar systems made the topology an aspect of the human 
> work-flow instead of part of the technical design & 
> implementation.
>
> This gives you the freedom to have whatever topology you want - 
> a star, a circle, whatever. For instance, Linux is developed 
> with a "web of trust". the topology represents trust 
> relationships. Thus, all the people Linus is pulling from 
> directly are "core" developers he personally trust. They in 
> turn trust other developers, and so on and so forth. Linus's 
> version is the semi-official release of the Linux kernel but it 
> is not the only release. For instance, Linux distributions can 
> have their own repositories, and Google maintains their own 
> repository for the android fork. So in fact, there are 
> *multiple* repositories that represent graph roots in this "web 
> of trust" topology.
>
> What about D?
> The current git-hub repository owned by Walter and the core 
> devs (the github organization) is the official repository. 
> *But*, we could also treat other compilers as roots. more over, 
> there's no requirement for developers to go through the "main" 
> github repository to share and sync. E.g Walter can pull 
> directly from Don's repository *without* going through a formal 
> branch on github. This in fact should be *the default workflow* 
> for internal collaboration to reduce clutter and facilitate 
> better organization.
>
> This is why I'm arguing fiercely against having any sort of 
> official alpha stage. There is no need standardizing this and 
> it only mixes "private" developer only code and builds with 
> builds aimed at end-users (those would be us, people writing D 
> code and compiling with DMD). If you look on SVN servers, you 
> often find an endless list of developer folders, "test" 
> branches, "experimental" branches, etc, etc.
>
> As a user, this is highly annoying to figure out what branches 
> are meant for user consumption (releases, betas, preview for a 
> new feature) and what isn't, dev X's private place to conduct 
> experiments. This is only a result of the client-server 
> topology imposed by svn architecture.
>
> The official process should only standardize and focus on the 
> points where integration is required. Everything else is much 
> better served as being left alone. On the other hand, I think 
> that we need to add more focus on pre/post stages of the actual 
> coding. This means, the planning, setting priorities (aka 
> roadmap, mile-stones, etc) as well as reducing regressions. I 
> saw a post suggesting an automated build-bot that will run the 
> test suit and build nightlies. What about DIPs, how do they 
> integrate in the work-flow?
> I think Andrei talked about the DIPs before but I don't thik it 
> was discussed as part of this thread.

I forgot to explain that the multiple roots is applicable to D as 
well in that we have there fully working compilers - LDC, GDC and 
DMD. They currently share the same front-end - GDC and LDC merge 
DMD's code. This situation is also sub optimal and requires 
manual work and has redundancies in the process. E.g. what if the 
LDC guys fix a bug in the "shared" front-end? Should this be 
integrated back to DMD? What if Walter comes up with a different 
fix?


More information about the Digitalmars-d mailing list