Application Creation and Maintenance
WORK IN PROGRESS
Creation of an application descriptor
Create a dedicated repo, e.g.
GitHub - folio-org/app-consortia This can live in your GitHub organization. I don't think there's a requirement that application descriptor repositories live in the "folio-org" GitHub organization.
Add an application descriptor template
The mainline/master branch should use the "latest" version placeholder. This gets replaced at "build" time with the latest snapshot version of the module. See
app-consortia/app-consortia.template.json at master · folio-org/app-consortia for example.Declare application dependencies.
Add a README - Again, use existing application descriptor repositories for examples.
Add a pom.xml - I would suggest copy-pasting/modifying an existing one.
Add users/teams to the newly created repository and configure the appropriate roles for them:
fsejenkins - maintain,
kitfox - admin,
folio-devops - write,
owning dev team - admin.
When moving modules between applications, you must also remove these modules from the old applications.
Once you have that all set, you can clone your repo into a fresh place and try to "build" it (e.g., with mvn). You should get an application descriptor that has the latest snapshot versions of modules.
Maintenance and Releases
This repository can now be tagged/released like any other repository, following standard release processes.
For releases, the “latest” placeholder should be replaced with an explicit module version. The application version should also be a non-snapshot version, e.g. 1.0.0. Release tags should include the concrete application descriptor (at the top level) resulting from “building” the application.
Whenever a new version of the application’s modules are released, a new version of the application should also be released.
Please consider posting an announcement to #releases slack channel when releasing applications.