Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
So that others may use the module you develop, you must Release the module.
We recommend releasing your module to Bintray. Typically modules are released to a generic omod repository; some projects like OpenMRS code are release as maven repository.
Artifacts published to the maven repository are used by developers and include module's Java API and an OMOD. The omod repository on the other hand is used to distribute modules to implementers, thus only OMODs are published there.
Implementers will typically find your module via the OpenMRS add-ons index, so you should get your module indexed there. (It can index modules from various distribution channels including Bintray.)
In OpenMRS we adopted the semantic versioning e.g. 1.2.3. As a guideline:
Community maintained modules are available at https://github.com/openmrs. For those modules developer artifacts are published to the dedicated OpenMRS maven repository at https://mavenrepo.openmrs.org. Compiled OMODs are published to the Bintray repository at https://bintray.com/openmrs/omod.
Thanks to the generosity of the JFrog company we have virtually unlimited space in the dedicated maven repository, but every new module adds some maintenance on us, thus modules are approved on case-by-case basis. All modules published to the OpenMRS maven repository are automatically published to the Bintray repository without any additional steps. However, it may take up to 3 hours to see the omod on Bintray; check this Bamboo build if that didn't happen. If you want to update some details of a module in Bintray, please ask via Talk.
Please see this page on how to setup a module and do releases to the OpenMRS maven repository.
All community supported module releases should be done through CI at https://ci.openmrs.org/.
In order to be able to release to Bintray you need to create an open source account at https://bintray.com/signup/oss and set it up as follows.
Add your Bintray credentials to maven's settings.xml as follows:
<server> <id>bintray-[YOUR_USERNAME]-maven</id> <username>[YOUR_USERNAME]</username> <password>[YOUR_PASSWORD]</password> </server>
After the first release of your module, you need to request for the module to be included in Bintray's JCenter repository so that it is publicly visible and can be fetched for example with SDK. See Bintray's instructions on how to do that.
In order to be able to release to Bintray you need to add the following snippets to pom.xml in your module (make sure there is only one scm and distributionManagement section in your pom.xml):
<scm> <connection>scm:git:https://github.com/[YOUR_GITHUB_USERNAME]/openmrs-module-[YOUR_MODULE_ID]</connection> <developerConnection>scm:git:https://github.com/[YOUR_GITHUB_USERNAME]/openmrs-module-[YOUR_MODULE_ID]</developerConnection> <url>https://github.com/[YOUR_GITHUB_USERNAME]/openmrs-module-[YOUR_MODULE_ID]</url> </scm> <distributionManagement> <repository> <id>bintray-[YOUR_BINTRAY_USERNAME]-maven</id> <name>[YOUR_BINTRAY_USERNAME]-maven</name> <url>https://api.bintray.com/maven/[YOUR_BINTRAY_USERNAME]/maven/openmrs-module-[YOUR_MODULE_ID]/;publish=1</url> </repository> </distributionManagement>
Releasing your module to the maven repository can be done with:
mvn release:prepare release:perform
Please see the maven release plugin documentation for more details.
In order to publish your module to your 'omod' repository follow these instructions (soon to be automated with OpenMRS SDK!).
Once you make the first release you are welcome to apply for your module to be listed under https://bintray.com/openmrs/omod among other modules for better recognition within the OpenMRS community. Simply ask for your module to be linked on Bintray via 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 "/openmrs/omod" for the repo name and click the "tick" icon next to it to include the module.
See these instructions for adding your module to the OpenMRS add-ons index. (Your module will be periodically checked for new releases and updated accordingly.)