SVN succesful-compilation tag
Kurt Pfeifle
k1pfeifle at gmx.net
Fri Feb 3 14:58:41 GMT 2006
On Thursday 02 February 2006 20:55, Frans Englich wrote:
> On Thursday 02 February 2006 18:24, Mantia Andras wrote:
> > On Thursday 02 February 2006 03:22, Marcos Mayorga wrote:
> > > Hi all
> > > I think a process is building the repository constantly, isn't it?
> > >
> > > Could it be a good idea to have a tags indicating the most modern
> > > version of the repository which is known to compile?
> >
> > It is the branches/KDE/3.5, in other words the latest stable branch.
> > This is what is known to compile and should compile almost any time any
> > where. ;-)
> >
> > But giving such a tag/revision for the development branch (trunk), ah,
> > that would be a hard job.
>
> But when I think about it, it would perhaps nevertheless be a good idea.
But when you actually start *doing* it (not just thinking about the
"good idea" in an abstract way), you'd nevertheless see why this will
not work in a practical way.
Do you even compile (the complete) KDE from branch or trunk on a regular
basis?!
It seems not -- because your comments must be originating from a very
limited KDE compilatation experience.
I saw and still see (complete) KDE branch (3.5) and trunk (before it
became 4.0) builds *daily*.
I make this happen on at least 3 different machines (SUSE 9.1, 9.3 and
10.0 for i386 and SUSE-9.x for x64). Thanks to scripted automation with
the help of Michael Pyne's marvellous kdesvn-build script, this is less
time consuming than it sounds (but looking into compile logs of the 4
machines still takes at least one hour of attention in order to fix
build problems).
Soooo... it *very* often happens, that one machine built the module
were the other one failed. Looking at the SVN revision, I'll see that
the one succeeding had a slightly earlier or later rev. number than
the failing one; updating both at the same time (within 10 seconds)
may still give different results, even with reversed successes;
looking again at the SVN revision number will show that the revisions
*again* do differ (though I kicked off both "svn up"s within 10
seconds: network latency, intermediate commits and more factors make
it impossible to reliably get the same revision for different machines
doing updates even at the same time.
OK -- I could check out the exact SVN revision to all machines. Well,
I did for curiosity, about 6 months ago for a few days. Result: there
are *still* occassions where moduls will not build on one machine, but
on all others. Reason: differnt compiler versions, different versions
of ependency libs, different platform, different moon phase,...
That said -- KDE branch's modules (as well as trunk while it did lead
to the later 3.5) compiled at about 95% of the time (with exception
of a few "notorious" ones containing some, hmmm..., let's say
"not-so-well-maintained" apps, or kdebindings, which didnt compile
lots of times. Usually, a "do-not-compile kverbos" line for the kdeedu
module in the kdesvn-buildrc would circumvent that problem).
Usually, when I reported a compilation error (one that didn't go away
after another "svn up", and was still there after 2 more hours), I
found other people in IRC saying "compiles for me" -- but of course,
they had another distro, another platform, another compiler, another
environment....
To get a reliable "succesful-compilation" tag, you'd need to have a
*huge* compile farm, that continuously builds KDE from SVN...
And if we *had* such a compile farm at all (Brad Hards once announced
his willingness to lead the building of one, if only there came some
more volunteers to his help -- what happened to this idea?) -- well,
then this compile farm could be put to much better use than just
creating a "successful-compilation" tag. One side effect of such a
compile farm would probably be that compilation success on avarage
goes up overall (from 95% to 99% maybe?) -- now what is the practical
use of tagging 99% of all SVN revisions with "successful-compilation"
?!
I do not see the benefit of such a tag when we have in fact a SVN
that compiles in more than 90% of the cases. When success rate is much
less (such as current trunk leading to KDE4), we have a separate
branch, kdelibs4_snapshot, that is doing what you want...
And just *who* would benefit from such a "successful-compilation"
flag, anyway? Would it be people *hacking* on KDE code & contributing
to it? Or wouldn't it be rather those rare people who just want to run
"bleeding edge" for the sake of running bleeding edge to impress
their (girl)friends, and without contributing to KDE?
> A
> script could somehow figure out what most receent revision that builds, and
> then commit a snapshot of that. What revision that builds could be determined
> by iteratively building, or query one of those cmake build farms(that's
> possible? no?).
Which of the (supposedly multiple) cmake build farms??
Do you have an idea about what you talk here?
Cheers,
Kurt
More information about the kde-core-devel
mailing list