De organisatie van de modules en broncode van

De Module
groepeert de software in modules van verschillende grootte. Oorspronkelijk was dit losjes gegroepeerd in een paar grote modules, maar met de introductie van de op Git-gebaseerde broncoderepositories, zijn deze grote modules verder opgesplitst in vele kleinere modules.
Ook gebruikt dit concept van modules. In essentie, is een module een groepering van code die kan worden gedownload, gebouwd, getest, en geïnstalleerd.

Individuele modules
Het is makkelijk om het zo in te stellen dat een enkele module bouwt. De volgende lijst is een voorbeeld van hoe een declaratie voor een op Git-gebaseerde module er uit zou zien in het configuratiebestand.

module kdefoo
    cmake-options -DCMAKE_BUILD_TYPE=Debug
end module

Dit is een op Git-gebaseerde module omdat het geen repository-optie gebruikt. Ook is de cmake-options-optie alleen als voorbeeld gegeven, het is niet vereist.

Groepen van gerelateerde modulen
Op dit moment zijn de meeste broncodemodules gebaseerd op Git en worden gewoonlijk gecombineerd in groepen van modules.
ondersteunt daarom ook groepen modules, met module sets. Een voorbeeld:

module-set basis-modules
    repository kde-projects
    use-modules kde-runtime kde-workspace kde-baseapps
end module-set

U kunt de module set naam (base-modules in dit geval) leeg laten als u dat wilt. Deze instelling repository geeft aan waar de broncode kan downloaden, maar u kunt ook een git:// URL gebruiken.
Een speciale functionaliteit van de repository kde-projects is dat automatisch alle Git modules die in de door u opgegeven modules (in the KDE Project database) zijn gegroepeerd, zal downloaden.

Module branch groups
Het concept van een groep van modules verder uitbouwent, merkten de -ontwikkelaars uiteindelijk dat het synchroniseren van namen van de Git branches over een groot aantal repositories steeds moeilijker werd, met name tijdens de ontwikkeling van de nieuwe Frameworks voor 5.
Daarom is het concept branch groups ontwikkeld, om gebruikers en ontwikkelaars in staat te stellen een of alleen een paar groepen te selecteren en het script toestaan om automatisch de juiste Git-branch te selecteren.
ondersteunt deze functie vanaf versie 1.16-pre2, via de optie branch-group.

Voorbeeld van gebruikt van een branch-group
branch-group kunt u in het configuratiebestand als volgt gebruiken:

global
    # Selecteert KDE Frameworks 5 aen andere Qt5-gebaseerde apps
    branch-group kf5-qt5

    # Andere global opties hier ...
end global

module-set
    # branch-groep werkt alleen voor kde-projects
    repository kde-projects

    # branch-groep is doorgegeven van de set globally, maar kan ook
    # hier gespecificeerd.

    use-modules kdelibs kde-workspace
end module-set

# kdelibs's branch zal zijn "frameworks"
# kde-workspace's branch zal zijn "master" (vanaf Augustus 2013)

In dit geval geeft dezelfde branch-group voor elke Git-module verschillende branch-namen.
Voor deze functionaliteit moeten de -ontwikkelaars in een Git repository genaamd kde-build-metadata wat data bijhouden, maar deze module zal automatisch door (u kunt het zien verschijnen in de uitvoer van het script) worden meegeleverd.
modules die nog geen naam hebben voor de branch group die u heeft gekozen, zullen standaard een toepasselijke naam voor de branch krijgen, als u nog geen branch-group heeft opgegeven.