Skip to content
  • Michael Pyne's avatar
    Apply a consistent ordering of module list generation. · 671140a6
    Michael Pyne authored
    This fixes one of the most annoying outstanding issues with
    kdesrc-build. Though if I had known it would be this easy I'd have done
    it sooner.
    
    The issue is that running the same build command, with the same
    dependencies applied, would often come up with different build orders.
    
    $ kdesrc-build -p --print-modules --resume-from kcoreaddons
     ... build list shown
    $ kdesrc-build -p --print-modules --resume-from kcoreaddons
     ... a different build list shown
    
    The major cause of this is that the implicit ordering is derived from
    how the KDE project modules are loaded, using a filesystem search.
    Sorting the list of loaded modules when doing a search through the KDE
    project hierarchy is enough to handle this.
    
    A more theoretical issue is that the loaded dependencies themselves
    could be reordered even though the dependencies haven't really changed.
    To pre-emptively address this before the next kde-build-metadata cleanup
    we also canonicalize all loaded dependencies into a sorted order.
    
    Test suite passes.
    671140a6