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: