namespace RBProcess {

namespace bootloader {
    include resources/blocks/dev_basic.txt(
         Bootloader
    );
}

namespace bootmanager {
    include resources/blocks/dev_basic.txt(
         BootManager
    );
}

namespace bootloaderUpdater {
    include resources/blocks/dev_basic.txt(
         BootloaderUpdater
    );
}

namespace rte {
    include resources/blocks/dev_basic.txt(
         RTE
    );
}

namespace stub {
    include resources/blocks/dev_basic.txt(
         stub
    );
}

namespace blackbox {
    include resources/blocks/dev_basic.txt(
         BlackBox
    );
}

//*****************************************************************

folder developmentBuilds {
    label "development builds";
    contains 
         bootloader_build,
         bootmanager_build,
         bootloaderUpdater_build,
         rte_build,
         stub_build,
         blackbox_build;
} 

role jenkinsRole {
    label "Jenkins";
    brief "Jenkins is an automation engine with an unparalleled plugin ecosystem to support all of your favorite tools in your delivery pipelines, whether your goal is continuous integration, automated testing, or continuous delivery.";
}

role integrator {
    label "Integrator";
    brief "This role is responsible to integrate all releases of the sub domains";
}

artefact pdx {
    label "PDX container";
}

activity integrate {
    responsible integrator;
    transform
         bootloader_releaseBaseline,
         bootmanager_releaseBaseline,
         bootloaderUpdater_releaseBaseline,
         rte_releaseBaseline,
         stub_releaseBaseline,
         blackbox_releaseBaseline;
    create pdx;
}

role projectManager {
    label "project manager";
    brief "The process manager is the overall responsible for a project";
    text md/project_manager.md;
}

activity develop {
    subactivities
         bootloader_develop,
         bootmanager_develop,
         bootloaderUpdater_develop,
         rte_develop,
         stub_develop,
         blackbox_develop,
         integrate;
}

process process {
    label "RBProcess";    
    responsible projectManager;
    repository integrity, jenkins;
    subactivities
        develop;
    text md/RBProcess/process.md;
}

repository jenkins {
    label "Jenkins";
    brief "Jenkins, as a buils server, archives the build artefacts.";
    contains developmentBuilds;
}

repository integrity {
    label "PTC Integrity";
    contains
         bootloader_releaseBaseline,
         bootmanager_releaseBaseline,
         bootloaderUpdater_releaseBaseline,
         rte_releaseBaseline,
         stub_releaseBaseline,
         blackbox_releaseBaseline,
         bootloader_data,
         bootmanager_data,
         bootloaderUpdater_data,
         rte_data,
         stub_data,
         blackbox_data;
}


}