Preferred method for local dev setup; native or docker helper?


There seem to be two ways to set up a local instance of cht-core for development; the docker helper script at scripts/docker-helper-4.x/ and natively using npm (although still with couchdb in docker). The docker compose helper seems to be newer, but the documentation here CHT Core dev environment setup | Community Health Toolkit still refers to a native installation.

For new setups going forward, which method is preferred? Will the documentation eventually be updated to use the docker helper instead of a native installation?

Hey @twier ,

Thank you for bringing this up. Are you using this Docker helper documentation?

well, yes but it points me back to this CHT Core dev environment setup | Community Health Toolkit because what I want is a local copy both to do development on, and to test integrations with.
so I guess docker helper is for APP developers only and the preferred method for local development and integraiton testing is native

Basically yes. When making code changes to the cht-core repository, the quickest way to be able to run those changes locally is via the CHT Core dev environment setup | Community Health Toolkit. The docker-helper is more useful when you want to run a particular existing version of the CHT (but are not planning to make changes to the cht-core code).

The point where they overlap, though, is that code changes from cht-core development branches can be installed into a CHT instance deployed via the docker-helper once the branch CI publishes the docker images. This is not particularly useful for an engineer trying to iterate quickly over code changes, but in many cases it can be useful if you are trying to test someone else’s branch code (I particularly like to use it when doing side-by-side comparisons between different CHT versions since it is tricky to deploy multiple local instances via the dev environment setup…).