It’s important that all work done on the platform follows the eSaude development process. Once this work is done and the community is ready to perform a POC release, the steps outlined in this document should be followed.
Overview
The eSaude EMR POC is released as an eSaude App. An eSaude App is just a set of one or more Docker images. When containers are created from the images at runtime, they are linked together using Docker Compose. The eSaude EMR POC app depends on the eSaude EMR Platform app, which it uses as a backend.
eSaude Apps are hosted in Docker Registries in the eSaude organisation on Bintray. The images are built using TravisCI(our continuous integration server) and are automatically uploaded to Bintray when a new tag is created in the GitHub repository.
The eSaude EMR POC App consists of only one Docker image - the pocimage. A new version of the image ispublished by TravisCI when a new tag is created in GitHub. The image consists of the Apache web server, statically serving the eSaude EMR POC assets(JavaScript, images, etc).
To make changes to version of the POC published in the image, make changes to the Dockerfile. To makes configuration changes, edit the relevant assets in the GitHub repository.
The eSaude App(Docker image) is built using a published version(configured in the Dockerfile) of the code in the GitHub repository, so to pubish a new version of the app, you must first publish a new version of the eSaude EMR POC application. This is done by creating and pushing a new tag to the esaude-emr-poc repo.
First, bump the version:
npm run create-version <OPTION>
where <OPTION> can be major, minor, patch or a specific semver version(like1.2.3). This command basically just changes the version in the package.json file(seedocs).
Once all code has been completed(and a new version published), and any data or metadata changes have been published as a new eSaude EMR Plaform release, we are ready to publish a new version of the eSaude EMR POC app. This is done as follows:
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 semver version(like1.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:
npm run publish-version
This will create a tag in repo with the same(new) version as specified in package.json. It will also push the tag to GitHub.
Overview
Code Changes
npm run create-version <OPTION>
npm run publish-version
Data & Metadata Changes
Release Publishing
npm run create-version <OPTION>
npm run publish-version