In 2019 we established a new application development paradigm with the App Platform. The Platform provides a unified framework for DHIS2 Web App development, so it is time to deprecate a few of our legacy libraries!
DHIS2 with Docker
The DHIS2 Core Team uses Docker to make development and testing efforts easier every day! It allows us to spin up various environments with any DHIS2 version, numerous tomcat versions and different components, such as Redis, NGINX, in no time. Because we wanted to share Docker with the community, we made publishing Docker images a part of our delivery pipeline. This guide aims to provide some guidelines on how to use Docker to quickly set up DHIS2.
What is this DHIS2 Application Platform?
During the DHIS2 Annual Conference a few weeks ago I had the pleasure of introducing our ongoing efforts to develop a formalized and consolidation Application Platform here at UiO.
Keep in mind that the Application Platform is still a work in progress! It's not quite ready for prime-time yet, but if you're excited about where we're going (or have questions or concerns), don't hesitate to reach out.
Command a fleet of repositories
As a developer you operate on many repositories. To keep all of the repositories up-to-date there are as many strategies as there are developers. Personally I have gone from doing it manually, to writing scripts (e.g. 1, 2), trying different tools (e.g. 1), and the latter is what this post is about.
Introducing d2, the DHIS2 CLI
Today we are excited to announce the stable v1.0 release of d2
, the DHIS2 CLI!
d2
is a modular, standardized, and consolidated tool to make developing in the DHIS2 ecosystem as painless as possible.
Build acrobatics
Ready for some practical tricks on how to use the build system? Create custom builds, deterministic builds, reproduce specific builds, and more!
The Build System
The last year has seen some significant changes to how the build system operates and this post will walk through the technical aspects of the system. The release and development processes which drive the build system is out of scope for this post and subsequently left out.
There are a few moving pieces, so let's get started!
Packages and style conventions
Style conventions are always a topic for debate. Everyone agrees that conventions are good, and simultaneously prefers their own conventions. Tools like Prettier were built in that particular kind of bikeshed. In that spirit, allow me to introduce two tools that consolidate our JavaScript conventions.