-
Notifications
You must be signed in to change notification settings - Fork 501
Description
Not sure if this makes sense, but while looking at #2350, I noticed that we don't build the latex_simple_nondocker example build on CI. I'm pretty sure that's because we don't want to deal with installing the dependencies.
While we could add commands to install native deps on CI, it's probably easier to manage that via Docker images. So I'm thinking that we should refactor the code in a way that you can run any platform either within Docker or not, and that the platform-specific code that runs in the container is identical. Not entirely sure how this should work though.. we normally just run() the binaries.. and for Docker we run() a docker run command..
API-wise:
- Keep
platformfor picking the LaTeX engine. Deprecateplatform = "docker"(falls back toplatform="native", docker=true). - Add
docker::Union{Bool,AbstractString}. Defaultfalse(tries to use system binaries). Iftrue, uses our default image. Additionally, you can specify the image via a string (Allow configuring the docker image of DocumenterLaTeX #979).
That way we could also test all the platforms on CI by using Docker images, and don't have to manage dependencies in the CI workflows. That said, might be an overengineered solution for the CI problem. Also, e.g. tectonic doesn't fully fit into the picture here -- the JLL binaries are not going to be available in the Docker image (but we could just disallow running Tectonic in Docker).