Three years after the knitr package was created, it had gotten hundreds of reverse dependencies on CRAN, which brought a painful problem to me. That is, I had to check a large number of reverse dependencies each time before I submit a new version of knitr to CRAN, to make sure the new version would not break packages that depend on knitr. To check these packages, I had to install their R package dependencies as well as system dependencies. The latter was especially tricky. In short, this process was both complicated and time-consuming for …