This page will briefly discuss the workflow for releasing Open Web Apps. For a description of what Open Web Apps are, see the wiki page.
To release an Open Web Application(OWA) you need to
- Develop the application
- Host the compiled application on Bintray.
- Release the application
- Create a Talk Post announcing the release.
1. Develop the application
This involves ensuring the OWA application meets all the requirements HERE.
2. Host the compiled application on Bintray
To ensure the OWA software distribution and versioning is automated and secure we use Bintray.
- SignUp to https://bintray.com
- Create a new repository (if you do not have one yet) named 'owa' of type 'Generic'
- Add a new package on Bintray as per your OWA name to the 'owa' repository
- Post on talk.openmrs.com requesting for your package to be added to the openMRS Bintray account
- If you are a member of the openmrs organisation on bintray, navigate to the owa repository and Add a new package
- The package should have:
- The URL to the repo (a.k.a VCS URL) from which the OWA shall be deployed
- A naming format consistent with the name of the OWA to be released e.g. openmrs-owa-addonmanager
- A License
- Reference to JIRA board if any for issue tracking
- Deploy your bundled OWA file:
- Deploying with TravisCI:
- Install travis command line client
- Get bintray API KEY. You can find the API Key at https://bintray.com/profile/edit (see the left menu) after you log in to Bintray.
- Set up project for deployment to bintray
The preferred deployment trigger to bintray is using version tags. In your .travis.yml file, include the following lines
on: tags: true
- Releasing an OWA requires the necessary privileges to create version tags.
- It is preferable to set the bintray API key as an environment variable in the Travis env e.g. key: $BINTRAY_API_KEY. If the repo does not have this variable set, please reach out on talk.openmrs.com requesting for support from someone with the privileges to add their api_key and you can then use their username
- Create the appropriate version tag
- Set bintray api key as an environment variable on travis command line client (travis env set NAME VALUE)
- Push changes to remote repo to trigger the deployment process
- Deploying with TravisCI:
Once you make the first release you are welcome to apply for your OWA to be listed under https://bintray.com/openmrs/owa among other OWAs for better recognition within the OpenMRS community. Simply ask for your OWA to be linked on Bintray by posting to Repo Management on Talk. Don't forget to include its Bintray URL in your post.
Anyone, who is a member of the OpenMRS org on Bintray can go to the provided Bintray URL, click "Link", type in "owa" for the repo name and then select the "tick" icon next to "/openmrs/owa" to include the OWA.
After confirming that the OWA has been listed under the packages at this location https://bintray.com/openmrs/owa , a member of the OpenMRS bintray org should then go to the package details and under the Files tab, go to the specific deployed file. It should have an actions menu. Select the option to make the file available under downloads.
This should make the file show as an available file for download on the OWA's bintray url under the General tab
3. Add the released Open Web App to OpenMRS Addon Index:
4. Release the App
To release the application, you need to have the necessary privileges. You need to be at least /dev/3, if you are not, ask on talk.openmrs.com and it will be released for you.
For /dev/3 developers and above,
If you have rights to push to the main repo of the openmrs project you're releasing, you can create tags on your local instance with
git tag -a v1.4
If your .travis.yml file is configured to release on tags, travis will rebuild when the version tags are pushed to the main repo
5. Create a Talk Post announcing the release
To release an open web application, you need to create a post on OpenMRS Talk detailing information about the application. The aim of the OpenMRS talk post is to inform the community about the new release and get feedback from the users of the OWA and fellow developers.
The blog post should at minimum contain
- A link to the OWA Github repository
- A list of the modules the OWA depends on
- A link to the OWA .zip file hosted by the OpenMRS organization on Bintray.
- Some screenshots of the OWA
- A list of the developers who worked on the project with their OpenMRS handles.
An example of an OWA release talk post can be found HERE.