Install custom operating system packages (apt)

We are thrilled to announce that now Read the Docs users can declare custom operating system packages in their project configuration that will get installed in our Ubuntu-based builders using apt. This has been a long awaited feature, and we think it will simplify the configuration of many projects, especially scientific ones.

Previous solutions

The Ubuntu images used by our builders contain lots of preinstalled system packages that we ship to all the projects to make the most common use cases possible. This includes compilers, development headers of common libraries, and others.

However, on one hand this makes our images way bigger than necessary, and it is still not enough to solve 100 % of the use cases. Fortunately, Read the Docs has supported the conda package manager for a long time already, and this has allowed users with special needs to add any non-Python libraries they needed. Still, interoperability between conda and pip is not perfect, and for users that are not used to conda this could feel like a hack.

New apt_packages configuration

To overcome all these problems, we have added a new configuration value, build.apt_packages, that receive a list of APT packages that will be installed in our Ubuntu-based images. Our configuration documentation contains a simple example:

version: 2

build:
  image: latest
  apt_packages:
    - libclang
    - cmake

(Notice that at the moment our images are based Ubuntu 18.04, this will change in the near future)

And you can draw inspiration from some community projects that are using this feature already:

We are happy that this feature is already being used minutes after being deployed and are looking forward to seeing more projects make use of it.

Remember you can always see the latest changes to our platforms in our Read the Docs Changelog and Ethical Ad Server Changelog.

Considering using Read the Docs for your next Sphinx or MkDocs project? Check out our documentation to get started!