IDM engineering guidance

This repository contains style and community guidelines for IDM projects. The engineering guidance is divided into the following sections:

  1. Design philosophy: common tasks should be simple, audience is scientists, and workload/readability matter.
  2. Python style: Google style plus house rules, including no type annotations, longer lines, etc.
  3. R style and engineering practice: Tidyverse style, plus IDM expectations for renv, testthat, project structure, and CI.
  4. Testing: focus on scientific correctness, and support triple execution (standalone scripts + pytest + GitHub Actions).
  5. Documentation: readmes, auto-generated API reference, and tutorials.
  6. Other principles: for example, be very careful not include sensitive data in repos.
  7. Zen of IDM: short principles and credos for research and software (simplicity, docs, tests, change).

Note: although not part of the engineering guidance, the IDM software engineering quality guidelines are also included here for completeness. The engineering guidance and the engineering quality guidelines together give a (pretty) complete picture of what good IDM code looks like.

Version: 2.2 | Last updated: 2026-06-10