eSaude EMR Platform Release Process
It’s important that all work done on the platform follows the . Once this work is done and the community is ready to perform a platform release, the steps outlined in this document should be followed.
As of v1.2.0, the eSaude EMR Platform is released as an eSaude App. An eSaude App is just a set of one or more images. When containers are created from the images at runtime, they are linked together using .
- eSaude Apps are hosted in Docker Registries in the . The images are built using TravisCI (our continuous integration server) and are automatically uploaded to Bintray when a new tag is created in the .
The eSaude EMR Platform App consists of two Docker images - the mysql and tomcat images. New version of both images are released when a new tag is created in GitHub, but since their version are specified individually in the file (the Docker Compose file used for production installation), images with different version could theoretically be used together.
See the sections before for instruction on how to perform new releases of the eSaude EMR Platform App.
- A new mysql image should only be released if we want to upgrade the MySQL version, change the way the image is built or if we want to release a new clean install database. If you want to release new metadata to distribute to implementations, see the .
The eSaude EMR Platform mysql image is built using the in the mysql directory in the .
To upgrade the database version, change the version number in the Dockerfile.
To upgrade the version of the clean database, change the version number in the Bintray URL in the Dockerfile. If you need to make changes to the clean database, the .
Once you have made your changes to the Docker, see the Release Publishing section below.
A new tomcat should be released when we need to upgrade the OpenMRS core version or we need to change the modules (add or remove modules, or upgrade their versions). The image is build using the in the tomcat directory in the .
The OpenMRS core and modules used in the eSaude EMR Platform are hosted in the in the eSaude organisation on Bintray.
If required, create a new versions in the or package on Bintray and upload a new openmrs.war file or esaude-platform-modules.zip file.
If you need to make Tomcat or Bahmni configuration changes, edit the relevant files in the tomcat directory.
Once new resources have been uploaded to Bintray and configuration changes have been pushed to GitHub, publish new images using the instructions below.
New containers are built using TravisCI. The configuration can be seen in the . New images are only pushed to Bintray when a new tag is created in GitHub, so when you have made your changes as describe in the above sections, and are ready to publish a new version, do the following:
1. Bump Version
Use the npm script to create a new version:
npm run create-version <OPTION>
where <OPTION> can be major, minor, patch or a specific version (like 1.2.3). This command basically just changes the version in the package.json file. The options will have the following effect:
- major will increase the first number in the version and set the others to zero
- minor will increase the second number and set the last one to zero
- patch will increase the last number
If you specify a specific version, the version in package.json will be set to that version.
2. Create & Push Tag
The command to create and push the tag is: