Introduction
When the initial development of a new front-end (client-side) module is established, and snapshot artifacts are being generated by the continuous integration, then it is able to be added to an appropriate FOLIO application.
The procedure explained below will prepare the new frontend module for inclusion in an application, so it can be made available in the reference environments.
There is a separate procedure to install a new back-end module.
(After the new module has been operating in reference environments, and an initial release is ready to be made, then instead follow the release procedures.)
Require backend only when ready
The normal process is that a UI module will require interfaces that are provided by back-end modules (declared in the “okapiInterfaces” section of their package.json file).
A UI module could be added, and deliberately not yet require the interfaces of its companion backend module.
However do not later require those interfaces, until that backend module has completed their addition to reference environments.
Otherwise the addition of the frontend module will automatically pull in the backend module before it is ready, and disrupt the daily reference environment builds.
Verify MD and required interfaces
Ensure that this new module’s ModuleDescriptor is deployed to the FOLIO Module Registry.
Then verify that all required interfaces are available. (The Jenkins build of your Platform branch will do this anyway.)
For example, consider the ui-users module.
Obtain its MD and extract the “requires” section:
curl -s -S -w'\n' \
'https://folio-registry.dev.folio.org/_/proxy/modules?filter=folio_users&latest=1&full=true' \
| jq '.[].requires'
That shows that it requires various interfaces, including users 15.0
Now ensure that each needed interface version is available. One method is to visit the https://folio-etesting-snapshot-diku.ci.folio.org/settings/about page.
Another way is to conduct a curl query for each of the required interfaces against the module descriptor registry:
curl -s -S -w'\n' \
'https://folio-registry.dev.folio.org/_/proxy/tenants/diku/modules?latest=1&provide=users%3D15.0'
If there is a non-empty result for each of the required interfaces, then ready to proceed. If not, then investigate further and consult the relevant back-end module developers.
Declare new module
Follow the documentation for Working With Application Repositories to add the frontend module to the appropriate application, or create a new application if necessary.
Verify deployment
After merge, follow the subsequent and the scheduled builds of the reference environments.
Visit the Software versions page of each to verify that the new module is present.