Skip to content

Orthogonalize the API for Docker vs LaTeX engine/platform #2367

@mortenpi

Description

@mortenpi

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 platform for picking the LaTeX engine. Deprecate platform = "docker" (falls back to platform="native", docker=true).
  • Add docker::Union{Bool,AbstractString}. Default false (tries to use system binaries). If true, 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Format: LaTeXRelated to the LaTeX / PDF outputStatus: SpeculativeIt's unknown if this is something that we wan't to do

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions