May 25, 2010
I'd vote one up for git, but it won't fix the builds for us.

Andrei

On 05/25/2010 09:30 AM, Lars Tandle Kyllingstad wrote:
> On Tue, 2010-05-25 at 07:21 -0700, Steve Schveighoffer wrote:
>>
>> ----- Original Message ----
>> [snip]
>>
>>> It's great to have so many people contribute to Phobos,
>>> but I've never had such a long streak of non-builds. It looks like new scale of
>>> contribution asks for corresponding responsibility. Please, make sure everything
>>> builds before checking in, and announce to this list if you broke the build and
>>> are unable to fix it without help.
>>
>> I understand your frustration, but it might be unreasonable to ask people to ensure a build occurs properly on all OSes before checking in, this might not be practical (disclaimer: I haven't tried building the latest, maybe the build doesn't work anywhere :)
>>
>> Another option is to use branches and merging, but dsource's SVN server is very outdated, and doesn't support the better merging capability that the latest version does.
>
>
> May I suggest that we switch to a different revision control system? Besides the fact that dsource uses an ancient SVN server, I've really grown to dislike the whole concept of a centralised model for revision control.
>
> For personal uses I've switched to git, and I'd like to ask you to consider the same for Phobos.  If you're not familiar with it, here's a presentation by Linus Torvalds, who invented it:
>
>    http://www.youtube.com/watch?v=4XpnKHJAok8
>
> I think he has some good points which also apply to Phobos. (Granted, as is his usual style, he is very unforgiving towards people who disagree with him.  It makes for an entertaining talk, though.)
>
> -Lars
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 25, 2010
On 25 May 2010 16:30, Lars Tandle Kyllingstad <lars at kyllingen.net> wrote:
> On Tue, 2010-05-25 at 07:21 -0700, Steve Schveighoffer wrote:
>>
>> ----- Original Message ----
>> [snip]
>>
>> > It's great to have so many people contribute to Phobos,
>> > but I've never had such a long streak of non-builds. It looks like new scale of
>> > contribution asks for corresponding responsibility. Please, make sure everything
>> > builds before checking in, and announce to this list if you broke the build and
>> > are unable to fix it without help.
>>
>> I understand your frustration, but it might be unreasonable to ask people to ensure a build occurs properly on all OSes before checking in, this might not be practical (disclaimer: I haven't tried building the latest, maybe the build doesn't work anywhere :)

This is a build which doesn't work anywhere. In this particular instance, DMD and Phobos must be synchronized; this always happens when changes to intrinsics occur.

It's possible to have a successful build, check in your Phobos changes, but have a DMD change in the meantime which causes it to break.
May 25, 2010
I suspected it's a one-off kind of thing. Thanks, Don.

(Of course that doesn't diminish the value of being careful about checking in.)

One more thing - at some point while browsing the commits I saw a copyright notice with someone's name. I forgot who it was. It was added as the only named copyright notice on an existing module that didn't previously have one. The way the commit looked, it was as if that one author put his copyright on the entire module, including the existing stuff and his added stuff. In such cases the adder should also add the copyright notices of the previous known contributors to the file (to be found as @author tags, most of the time it's Walter and sometimes it's him and others such as Don, Sean, myself, and others) so we all share the blame.


Thanks,

Andrei

On 05/25/2010 09:45 AM, Don Clugston wrote:
> On 25 May 2010 16:30, Lars Tandle Kyllingstad<lars at kyllingen.net>  wrote:
>> On Tue, 2010-05-25 at 07:21 -0700, Steve Schveighoffer wrote:
>>>
>>> ----- Original Message ----
>>> [snip]
>>>
>>>> It's great to have so many people contribute to Phobos,
>>>> but I've never had such a long streak of non-builds. It looks like new scale of
>>>> contribution asks for corresponding responsibility. Please, make sure everything
>>>> builds before checking in, and announce to this list if you broke the build and
>>>> are unable to fix it without help.
>>>
>>> I understand your frustration, but it might be unreasonable to ask people to ensure a build occurs properly on all OSes before checking in, this might not be practical (disclaimer: I haven't tried building the latest, maybe the build doesn't work anywhere :)
>
> This is a build which doesn't work anywhere. In this particular instance, DMD and Phobos must be synchronized; this always happens when changes to intrinsics occur.
>
> It's possible to have a successful build, check in your Phobos
> changes, but have a DMD change in the meantime which causes it to
> break.
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 25, 2010
The copyright text should be boilerplate. I add authors ontje author line in order of contribution--creator would be first, etc.

Sent from my iPhone

On May 25, 2010, at 8:04 AM, Andrei Alexandrescu <andrei at erdani.com> wrote:

> I suspected it's a one-off kind of thing. Thanks, Don.
>
> (Of course that doesn't diminish the value of being careful about checking in.)
>
> One more thing - at some point while browsing the commits I saw a copyright notice with someone's name. I forgot who it was. It was added as the only named copyright notice on an existing module that didn't previously have one. The way the commit looked, it was as if that one author put his copyright on the entire module, including the existing stuff and his added stuff. In such cases the adder should also add the copyright notices of the previous known contributors to the file (to be found as @author tags, most of the time it's Walter and sometimes it's him and others such as Don, Sean, myself, and others) so we all share the blame.
>
>
> Thanks,
>
> Andrei
>
> On 05/25/2010 09:45 AM, Don Clugston wrote:
>> On 25 May 2010 16:30, Lars Tandle Kyllingstad<lars at kyllingen.net> wrote:
>>> On Tue, 2010-05-25 at 07:21 -0700, Steve Schveighoffer wrote:
>>>>
>>>> ----- Original Message ----
>>>> [snip]
>>>>
>>>>> It's great to have so many people contribute to Phobos,
>>>>> but I've never had such a long streak of non-builds. It looks
>>>>> like new scale of
>>>>> contribution asks for corresponding responsibility. Please, make
>>>>> sure everything
>>>>> builds before checking in, and announce to this list if you
>>>>> broke the build and
>>>>> are unable to fix it without help.
>>>>
>>>> I understand your frustration, but it might be unreasonable to ask people to ensure a build occurs properly on all OSes before checking in, this might not be practical (disclaimer: I haven't tried building the latest, maybe the build doesn't work anywhere :)
>>
>> This is a build which doesn't work anywhere. In this particular instance, DMD and Phobos must be synchronized; this always happens when changes to intrinsics occur.
>>
>> It's possible to have a successful build, check in your Phobos
>> changes, but have a DMD change in the meantime which causes it to
>> break.
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 25, 2010

Andrei Alexandrescu wrote:
> Thanks for looking into this, Shin. For now I commented out that unittest.
>
> My epic saga of getting things to build hasn't ended. In fact my initial goal was just to build the html, but that uses wine, which in turn has a problem. Try this:
>
> make -f linux.mak OS=win32wine debug
>
> to see the following error messages:
>
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1611): Error: sqrt cannot be interpreted at compile time,
> because it has no available source code
> std\math.d(1614): Error: static assert  (2L * (1L / (0.5L *
> sqrt(0x1p-16382L)) / 2L) * (1L / (0.5L * sqrt(0x1p-16382L)) / 2L) <=
> 0x1.fffffffffffffffep+16383L) is not evaluatable at compile time
>

I checked in the changes to std.math to fix this last night. It was necessary because of a change to dmd to allow the intrinsics like sqrt to be labeled as @safe. dmd and std.math needed to be in sync.
May 26, 2010
Was: Re: [phobos] phobos commit, revision 1553


On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote:
> I'd vote one up for git, but it won't fix the builds for us.


No, but it would have prevented the problems in the first place, because people wouldn't commit their changes directly to 'trunk'.

When several people make several changes to the same codebase, it can be hard to track down exactly which change caused an error.  In a project like Phobos, where there is a lot of interdependence between modules, it may even happen that an error is caused by a combination of different changes made by different people.

And even when an error is tracked down, it may not be a trivial operation to remove the bad code again if there have been a lot of changes to trunk after the code was committed.

I'm guessing this hasn't been a problem so far due to the relatively low number of Phobos developers.  But this seems to be changing now.

Like Steve points out, it would be possible to use branches and merging when making changes.  There are some problems with this, though:

     1. dsource's ancient SVN server is terribly bad at merging.
     2. The branches/ directory would quickly become an unwieldly mess
        if a new branch is created for every little change.
     3. SVN doesn't really seem to be designed with such a decentralised
        coding model in mind.

git, on the other hand, is made for exactly this purpose.

With git, if I make a change to Phobos, I tell you guys: "Hey folks, please pull this code from my repo and test it."  If there are no problems with it, only then may it be included in the next release.  At no point do I commit anything to trunk and say: "Hey folks, I've *already* uploaded some not-completely-tested-nor-reviewed change to our single, common codebase.  It may break stuff for everyone in ways I hadn't thought of, but hey, there's only one way to find out."

Here are some more links for the curious:

        http://en.wikipedia.org/wiki/Distributed_revision_control_system
        http://en.wikipedia.org/wiki/Git_%28software%29

-Lars


May 26, 2010
I'd say, if you (or anyone) want to switch to git, you must volunteer your time to be an administrator and go-to person for git. I can use git to find my way out of a paper bag, but not much more. We have a very strong git person at the company and I rely on him to fix any mess I'm doing. We need to garner some level of committment from a champion in order to switch to git.

Andrei

On 05/26/2010 04:19 AM, Lars Tandle Kyllingstad wrote:
> Was: Re: [phobos] phobos commit, revision 1553
>
>
> On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote:
>> I'd vote one up for git, but it won't fix the builds for us.
>
>
> No, but it would have prevented the problems in the first place, because people wouldn't commit their changes directly to 'trunk'.
>
> When several people make several changes to the same codebase, it can be hard to track down exactly which change caused an error.  In a project like Phobos, where there is a lot of interdependence between modules, it may even happen that an error is caused by a combination of different changes made by different people.
>
> And even when an error is tracked down, it may not be a trivial operation to remove the bad code again if there have been a lot of changes to trunk after the code was committed.
>
> I'm guessing this hasn't been a problem so far due to the relatively low number of Phobos developers.  But this seems to be changing now.
>
> Like Steve points out, it would be possible to use branches and merging when making changes.  There are some problems with this, though:
>
>       1. dsource's ancient SVN server is terribly bad at merging.
>       2. The branches/ directory would quickly become an unwieldly mess
>          if a new branch is created for every little change.
>       3. SVN doesn't really seem to be designed with such a decentralised
>          coding model in mind.
>
> git, on the other hand, is made for exactly this purpose.
>
> With git, if I make a change to Phobos, I tell you guys: "Hey folks, please pull this code from my repo and test it."  If there are no problems with it, only then may it be included in the next release.  At no point do I commit anything to trunk and say: "Hey folks, I've *already* uploaded some not-completely-tested-nor-reviewed change to our single, common codebase.  It may break stuff for everyone in ways I hadn't thought of, but hey, there's only one way to find out."
>
> Here are some more links for the curious:
>
>          http://en.wikipedia.org/wiki/Distributed_revision_control_system
>          http://en.wikipedia.org/wiki/Git_%28software%29
>
> -Lars
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 26, 2010
I like Git in theory but I'd prefer people simply be responsible when making changes then put myself in the position of integrator. We're all overworked as it is.

That said, the Git model works well for having a staging area where a build occurs and unit tests are run automatically for each commit before puishing to the central repo. I've used this model at work in the past and it's great, though a lot of setup is involved.

Sent from my iPhone

On May 26, 2010, at 2:19 AM, Lars Tandle Kyllingstad <lars at kyllingen.net> wrote:

> Was: Re: [phobos] phobos commit, revision 1553
>
>
> On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote:
>> I'd vote one up for git, but it won't fix the builds for us.
>
>
> No, but it would have prevented the problems in the first place,
> because
> people wouldn't commit their changes directly to 'trunk'.
>
> When several people make several changes to the same codebase, it
> can be
> hard to track down exactly which change caused an error.  In a project
> like Phobos, where there is a lot of interdependence between
> modules, it
> may even happen that an error is caused by a combination of different
> changes made by different people.
>
> And even when an error is tracked down, it may not be a trivial operation to remove the bad code again if there have been a lot of changes to trunk after the code was committed.
>
> I'm guessing this hasn't been a problem so far due to the relatively
> low
> number of Phobos developers.  But this seems to be changing now.
>
> Like Steve points out, it would be possible to use branches and
> merging
> when making changes.  There are some problems with this, though:
>
>     1. dsource's ancient SVN server is terribly bad at merging.
>     2. The branches/ directory would quickly become an unwieldly mess
>        if a new branch is created for every little change.
>     3. SVN doesn't really seem to be designed with such a
> decentralised
>        coding model in mind.
>
> git, on the other hand, is made for exactly this purpose.
>
> With git, if I make a change to Phobos, I tell you guys: "Hey folks,
> please pull this code from my repo and test it."  If there are no
> problems with it, only then may it be included in the next release.
> At
> no point do I commit anything to trunk and say: "Hey folks, I've
> *already* uploaded some not-completely-tested-nor-reviewed change to
> our
> single, common codebase.  It may break stuff for everyone in ways I
> hadn't thought of, but hey, there's only one way to find out."
>
> Here are some more links for the curious:
>
>        http://en.wikipedia.org/wiki/
> Distributed_revision_control_system
>        http://en.wikipedia.org/wiki/Git_%28software%29
>
> -Lars
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 26, 2010
We also need hardware. Does dsource support git?

Sent from my iPhone

On May 26, 2010, at 7:12 AM, Andrei Alexandrescu <andrei at erdani.com> wrote:

> I'd say, if you (or anyone) want to switch to git, you must volunteer your time to be an administrator and go-to person for git. I can use git to find my way out of a paper bag, but not much more. We have a very strong git person at the company and I rely on him to fix any mess I'm doing. We need to garner some level of committment from a champion in order to switch to git.
>
> Andrei
>
> On 05/26/2010 04:19 AM, Lars Tandle Kyllingstad wrote:
>> Was: Re: [phobos] phobos commit, revision 1553
>>
>>
>> On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote:
>>> I'd vote one up for git, but it won't fix the builds for us.
>>
>>
>> No, but it would have prevented the problems in the first place,
>> because
>> people wouldn't commit their changes directly to 'trunk'.
>>
>> When several people make several changes to the same codebase, it
>> can be
>> hard to track down exactly which change caused an error.  In a
>> project
>> like Phobos, where there is a lot of interdependence between
>> modules, it
>> may even happen that an error is caused by a combination of different
>> changes made by different people.
>>
>> And even when an error is tracked down, it may not be a trivial operation to remove the bad code again if there have been a lot of changes to trunk after the code was committed.
>>
>> I'm guessing this hasn't been a problem so far due to the
>> relatively low
>> number of Phobos developers.  But this seems to be changing now.
>>
>> Like Steve points out, it would be possible to use branches and
>> merging
>> when making changes.  There are some problems with this, though:
>>
>>      1. dsource's ancient SVN server is terribly bad at merging.
>>      2. The branches/ directory would quickly become an unwieldly
>> mess
>>         if a new branch is created for every little change.
>>      3. SVN doesn't really seem to be designed with such a
>> decentralised
>>         coding model in mind.
>>
>> git, on the other hand, is made for exactly this purpose.
>>
>> With git, if I make a change to Phobos, I tell you guys: "Hey folks,
>> please pull this code from my repo and test it."  If there are no
>> problems with it, only then may it be included in the next
>> release.  At
>> no point do I commit anything to trunk and say: "Hey folks, I've
>> *already* uploaded some not-completely-tested-nor-reviewed change
>> to our
>> single, common codebase.  It may break stuff for everyone in ways I
>> hadn't thought of, but hey, there's only one way to find out."
>>
>> Here are some more links for the curious:
>>
>>         http://en.wikipedia.org/wiki/Distributed_revision_control_system
>>         http://en.wikipedia.org/wiki/Git_%28software%29
>>
>> -Lars
>>
>>
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
May 26, 2010
Is this because git is more complicated to work with than SVN and hence people are more likely to need help from said champion, or because such a person is needed regardless of which system is used?

If it's the latter, then I suppose that person would be whoever is the SVN go-to person now, since dsource has official support for both SVN and git.

If it's the former, well... I'm no git guru myself.  I've only used it for a couple of months, but I instantly liked it better than SVN.  But I see what you mean -- such a change would definitely not be trivial.

-Lars



On Wed, 2010-05-26 at 09:12 -0500, Andrei Alexandrescu wrote:
> I'd say, if you (or anyone) want to switch to git, you must volunteer your time to be an administrator and go-to person for git. I can use git to find my way out of a paper bag, but not much more. We have a very strong git person at the company and I rely on him to fix any mess I'm doing. We need to garner some level of committment from a champion in order to switch to git.
> 
> Andrei
> 
> On 05/26/2010 04:19 AM, Lars Tandle Kyllingstad wrote:
> > Was: Re: [phobos] phobos commit, revision 1553
> >
> >
> > On Tue, 2010-05-25 at 09:32 -0500, Andrei Alexandrescu wrote:
> >> I'd vote one up for git, but it won't fix the builds for us.
> >
> >
> > No, but it would have prevented the problems in the first place, because people wouldn't commit their changes directly to 'trunk'.
> >
> > When several people make several changes to the same codebase, it can be hard to track down exactly which change caused an error.  In a project like Phobos, where there is a lot of interdependence between modules, it may even happen that an error is caused by a combination of different changes made by different people.
> >
> > And even when an error is tracked down, it may not be a trivial operation to remove the bad code again if there have been a lot of changes to trunk after the code was committed.
> >
> > I'm guessing this hasn't been a problem so far due to the relatively low number of Phobos developers.  But this seems to be changing now.
> >
> > Like Steve points out, it would be possible to use branches and merging when making changes.  There are some problems with this, though:
> >
> >       1. dsource's ancient SVN server is terribly bad at merging.
> >       2. The branches/ directory would quickly become an unwieldly mess
> >          if a new branch is created for every little change.
> >       3. SVN doesn't really seem to be designed with such a decentralised
> >          coding model in mind.
> >
> > git, on the other hand, is made for exactly this purpose.
> >
> > With git, if I make a change to Phobos, I tell you guys: "Hey folks, please pull this code from my repo and test it."  If there are no problems with it, only then may it be included in the next release.  At no point do I commit anything to trunk and say: "Hey folks, I've *already* uploaded some not-completely-tested-nor-reviewed change to our single, common codebase.  It may break stuff for everyone in ways I hadn't thought of, but hey, there's only one way to find out."
> >
> > Here are some more links for the curious:
> >
> >          http://en.wikipedia.org/wiki/Distributed_revision_control_system
> >          http://en.wikipedia.org/wiki/Git_%28software%29
> >
> > -Lars
> >
> >
> > _______________________________________________
> > phobos mailing list
> > phobos at puremagic.com
> > http://lists.puremagic.com/mailman/listinfo/phobos