pandoc / pandoc/dockerfiles

RFC Architectural changes

Open
#290 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement question
Dominant language
Dockerfile
Stars
439
Forks
107
PR merge metrics
No merged PRs in 30d

Description

I've been pondering a few architectural changes to the build system and would welcome some feedback on these.

  1. 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.

  2. 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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue does not name specific files or tests; start by reviewing the repository's current Dockerfiles, edge-image configuration, and shell build and helper scripts. Compare the existing Alpine and image-rebuild paths, then clarify the proposed template-based Dockerfiles and Lua replacements with maintainers before defining what completion means.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, dockerfile, lua, shell
Domain
build-system, devops, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.