From 779495080202e4acb4719a51652a3202fd25b8ad Mon Sep 17 00:00:00 2001 From: Merlin Mathesius Date: Thu, 7 Feb 2019 14:12:05 -0600 Subject: [PATCH] Add preliminary module scratch build details to documentation. Signed-off-by: Merlin Mathesius --- docs/HOW_MBS_BUILDS_MODULES.rst | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/HOW_MBS_BUILDS_MODULES.rst b/docs/HOW_MBS_BUILDS_MODULES.rst index daa88d7b..bfac0231 100644 --- a/docs/HOW_MBS_BUILDS_MODULES.rst +++ b/docs/HOW_MBS_BUILDS_MODULES.rst @@ -11,13 +11,27 @@ User submits module build request There is the MBS frontend, which provides a REST API (See ``views.py``). A user sends a POST request with JSON describing the module to build. There is mainly the URL to the git repository (called -``scmurl``) and branch name (called ``branch``). The ``scmurl`` points to the git repository containing -the modulemd file defining the module. +``scmurl`` |---| which points to the git repository containing the modulemd file defining the module) +and branch name (called ``branch``). This JSON data is handled by ``views.SCMHandler``, which validates the JSON and calls ``utils.submit.submit_module_build_from_scm(...)`` method. This goes down to ``submit_module_build(...)``. +Alternatively, if submitting a YAML modulemd file is allowed (MBS setting +``YAML_SUBMIT_ALLOWED`` is ``True``), the user can send a ``multipart/form-data`` +POST request directly including the contents of a YAML modulemd file +(called ``yaml``). In this case, the JSON data and YAML file are handled by +``views.YAMLFileHandler``, which validates the data and calls the +``utils.submit.submit_module_build_from_yaml(...)`` method which also goes down +to ``submit_module_build(...)``. + +If module scratch builds are allowed (MBS setting ``MODULE_ALLOW_SCRATCH`` is +``True``), the user can also upload one or more source RPMs uploaded to Koji +via calls to Koji's ``session.uploadWrapper(..)``, and supply the list of +upload links to MBS (called ``srpms``). Such custom SRPMs will be used to +override the git repository source for corresponding components. + Module Stream Expansion (MSE) ----------------------------- @@ -183,3 +197,6 @@ The "done" state message is handled in the ``scheduler.handlers.modules.done(... This method imports the module build into Koji using the ``KojiContentGenerator`` class. The module build in Koji points to the Koji tag with the module's components and also contains the final modulemd files generated for earch architecture the module is built for. + +.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace + :trim: