RFC Architectural changes
Nobody has claimed this yet.
- 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.
-
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.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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