[Dune] suggestion for testing
Andreas Dedner
dedner at mathematik.uni-freiburg.de
Wed May 21 13:47:44 CEST 2008
Hi,
once again I have the feeling that there has been
a huge amount of misunderstanding with respect to
this issue. I never had in mind, that every little
change to dune-grid,dune-common should be subjected
to a huge amount of testing before being committed.
My suggestion was only concerned with changes to
the build system.
Having said that much I now suggest to leave the
problem to Christian and Martin. If Christian thinks
that sending a patch to Martin is to much bother
than that his decision and otherwise Martin is
totally willing to do the suggested amount of extra
work and he will a thank you from me at least!
So why don't Christian and Marting continue this
exchange - at least if Christian thinks it is a good
idea - on their own and see if they can come to
some manageable plan?
Best
Andreas
Oliver Sander wrote:
> Hi!
> I agree with Sven in that the amtliche solution would be to have
> a special testing branch. However I think for a project of our size
> both Sven's and Andreas's suggestions are overkill. There is currently
> a refactoring of the build system and, yes, there have been disruptive
> patches. But looking at the last years this has been really rare.
> I propose the following procedure:
> - no additional branches
> - get the automated build system running again [in fact, I suppose it
> would have been smarter to have that _before_ starting to tear apart
> the build system]
> - post a warning to the list before committing something dangerous.
> In the long run I do not expect this to happen very often.
> - If svn-head is broken: do not get mad. It is a development branch
> after all. If you need some stability do not update after a warning
> has been issued. If you needs lots of stability use a release branch.
>
> --
> Oliver
>
> Sven Marnach schrieb:
>> Hi Andreas,
>>
>> Andreas Dedner schrieb am Mo, 19. Mai 2008, um 15:51:40 +0200:
>>
>>>> Managing patches is actually the job of a version control system. The
>>>> usual way of dealing with this problem is to have a testing branch
>>>> where all dubious patches go, people or test suites test this branch,
>>>> and patches that are found to be working fine are merged back to the
>>>> trunk.
>>>>
>>> I agree, but do you have a suggestion of how
>>> this can be done without too much fuss?
>>> Would this require a development branch in which
>>> changes are committed and then they are merged
>>> into the trunk after some testing. What would be
>>> a good way of doing this?
>>>
>>
>> That's what I would suggest. Patches go to testing first, and are
>> merged to the trunk if they pass the automatic tests. Maybe every
>> developer should be responsible to merge her own patches to the
>> trunk. Of course this involves to commit every patch twice, but we
>> won't be able to solve the problem without _any_ additional work.
>>
>>
>>> Having a directory of the form
>>> dune.org/patches/today/patch*
>>> would perhaps not be perfect but would be easy
>>> to get working right a way.
>>>
>>
>> I see several problems with this approach. First, it would be more
>> work to set it up than my suggestion. You would have to adapt your
>> test scripts to find the correct patches, apply them, deal with
>> conflicts etc. We would have to provide an upload infrastructure etc.
>> In contrast, the solution I suggested requires to create a testing
>> branch in subversion and tell the test suite to check out the testing
>> branch instead of the trunk.
>>
>> Second, you wouldn't have any help in merging. Patches can (and will)
>> conflict to each other and can conflict to commits that are posted
>> after the patch was uploaded. If some hunk in a patch conflicts with
>> a later commit, the patch won't apply. You have to deal with all
>> conflicting hunks manually. Subversion would perform a three way
>> merge and deal with conflicts in the usual way, i.e. writing all three
>> version in files an generate a partially merged file with conflict
>> markers. Of course, you could create an infrastructure that keeps
>> track of the respective version each patch applies to and write
>> scripts to try a three way merge, but that surely would be a lot of
>> work to get a functionality svn provides out of the box. Subversion
>> doesn't help you in merging as much as better RCS's, but it is surely
>> more convenient than doing everything manually.
>>
>> I think your suggestion would produce _lots_ of work, much more than
>> the way I suggested. But I have another suggestion that is even less
>> work. The automatic test suite could be modified to create a
>> subversion tag pointing to the latest version that passes the test
>> suite, and update this tag every time the test suite passes. So if
>> someone just needs a working version, she would know where to look for
>> the latest working version.
>>
>> Greetings from Stuttgart,
>> Sven
>>
>> _______________________________________________
>> Dune mailing list
>> Dune at dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune
>>
>
>
More information about the Dune
mailing list