Bug 157992

Summary: don't build and install modules without updates
Product: [Developer tools] kdesrc-build Reporter: Dario Panico <dariopnc>
Component: generalAssignee: Michael Pyne <mpyne>
Status: RESOLVED NOT A BUG    
Severity: wishlist    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dario Panico 2008-02-17 23:35:13 UTC
Version:           1.6 (using Devel)
Installed from:    Compiled sources
OS:                Linux

I think that if svn doesn't find any file change (add, remove, update) for a module listed in .kdesvn-buildrc it mustn't be built, it's a waste of time since no-change in files → no change on built.
It happens quite often with modules like kdeartwork or kdemultimedia.
Comment 1 Michael Pyne 2008-05-16 01:22:42 UTC
Well recent versions of CMake will handle this just fine (CMake will rig it so that make won't try to recompile or reinstall anything).

The issue is that if the last time the module was built it was interrupted, then you still want to try and build this time even if the source code didn't change.  kdesvn-build doesn't really record the status of the last run (and even if it did, it would have to record back far enough in time to the last attempted build of that specific module).

So IMO this is not really a huge issue.  Now if CMake is trying to reinstall all the artwork even though it's installed that would be a bug but I haven't noticed that issue.
Comment 2 Michael Pyne 2008-08-04 03:27:52 UTC
SVN commit 841748 by mpyne:

Add persistent data store for kdesvn-build.  Initially the only things tracked are the last
successful build revision, last successful install revision, and the number of consecutive
module failures.

In addition the user is warned at program end of all modules that have failed to build for more
than 3 consecutive build attempts for the module to take a closer look at the issue.

If there's other cool things that would be useful for the script to track I'm all ears.  The
last-successful-rev stuff was initially for tracking if a module should be rebuilt or not.  But
if required library dependencies have changed in the interim (i.e. qt-copy or kdelibs) then we
should allow CMake to do its things no matter what so I will not actually implement that feature
after all.  But it's still useful to track IMO.

CCBUG:157992


 M  +190 -1    kdesvn-build  


WebSVN link: http://websvn.kde.org/?view=rev&revision=841748
Comment 3 Michael Pyne 2008-08-04 03:30:55 UTC
Closing the bug as INVALID since David Faure brought up a good point to me while I was prototyping how I would implement this:

If a module depends on an underlying module (such as qt-copy and kdelibs) then it may be required to build a module even if the source code has not changed since the last successful build and install, if any of the underlying dependencies have changed.  kdesvn-build doesn't know all of the underlying dependencies of a given module, and can't track changes to system dependencies anyway (that is all CMake's job).  So it is dangerous for kdesvn-build to skip building in order to try and shave a minute.