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:
- geoserver-rest, a Python library to interact with GeoServer, uses apt_packages to install some GDAL and pycurl dependencies.
- UCX-Py, a Python interface for the low-level networking library UCX, installs extra dependencies to temporarily work around upstream issues.
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!