Application Creation and Maintenance
WORK IN PROGRESS
Creation of an application descriptor
Create a dedicated repo, e.g. https://github.com/folio-org/app-consortia
this can live in your github organization. I don't think there's 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 https://github.com/folio-org/app-consortia/blob/master/app-consortia.template.json for example.
Declare application dependencies.
This tool can be helpful for generating the application descriptor, though in some cases it may be overkill https://github.com/folio-org/application-builder. ATM it does not allow for module descriptor references (urls). It instead pulls in the entire module descriptors, but it does do dependency checking for you.
Add a README - Again use existing application descriptor repositories for examples.
Add a pom.xml - I would suggest copy/paste/modifying an existing one.
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 which 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.