Development Environment (Dev)
Purpose and Characteristics
The Development environment is where developers write, test, and integrate new code. According to OpenMRS infrastructure documentation, development environments can be local (on developer machines) or hosted community instances for short-term collaborative work.
● Key Features:
○ Updated frequently with latest code commits, often multiple times daily
○ Contains test data or minimal datasets for development purposes
○ May be unstable as developers experiment with new features
○ Database can be reset or rebuilt without concern
○ Runs on developer workstations using OpenMRS SDK or manual setup
○ Limited security controls since no real patient data is present
Infrastructure and Tools
OpenMRS SDK: The recommended development environment setup tool that bundles OpenMRS with required dependencies. Requires Java 1.7 or higher.
Manual Setup: For core developers who need access to source code. Uses Git for version control and Maven for dependency management.
Docker Compose: All OpenMRS environments can be run locally using docker-compose configurations available in the community repository.
Hosted Dev Environments: Limited community-hosted developer test servers available for short-term collaboration projects (e.g., http://dev3.openmrs.org for OpenMRS 3.x development).
Development Workflow
OpenMRS development is strongly CI-driven. The Bamboo continuous integration server runs unit tests after every commit to key branches. GitHub repositories use Travis CI for pull request testing, and test coverage is monitored via http://coveralls.io .
● Key Users:
○ Software developers creating new features and fixing bugs
○ Technical architects designing system components
○ Module developers extending OpenMRS functionality