-
-
Notifications
You must be signed in to change notification settings - Fork 107
Description
I've been pondering a few architectural changes to the build system and would welcome some feedback on these.
-
We are currently using flexible Dockerfiles that can be configured and adjusted to various changes. This keeps duplication at a minimum, but comes at the cost of added complexity in the Dockerfiles and the tools required to build the images. It's also sometimes difficult to recompile old images because we usually update the Dockerfile without thinking too much about re-building. However, rebuilding can be useful for security fixes and similar.
Hence my proposal to switch to a template-based approach: the Dockerfile for each new pandoc version would be generated afresh from the template, inserting all build details.
My initial motivation were the edge images, which require completely different settings, and currently even fail to build on alpine. Using a separate Dockerfile for edge builds would make things easier. But I think this will help in other ways, too.
The downside is that we'd have a good bit of redundancy in the repo, with multiple Dockerfiles with minor differences.
-
Switch from shell to pandoc Lua for the build tools and helper scripts.
While I love shell scripts and to keep everything POSIX-compatible, it seems that "dogfooding" pandoc would be a good choice, because all contributors would be at least somewhat familiar with it.
I'm curious to hear your thoughts.