Skip to content

RFC: use Nickel to generate Dockerfiles#181

Draft
develop7 wants to merge 1 commit intohaskell:masterfrom
develop7:feat-generator_nickel
Draft

RFC: use Nickel to generate Dockerfiles#181
develop7 wants to merge 1 commit intohaskell:masterfrom
develop7:feat-generator_nickel

Conversation

@develop7
Copy link
Copy Markdown
Collaborator

This replaces Haskell-based generator with a set of files in Nickel.

Pros:

  1. Minimal footprint — Nickel evaluator is a single binary in Rust, contrary to the Haskell toolchain. And blazing fast too.
  2. Native types (contracts) — YAML would require JSON Schema and external validator, Nickel contracts are written in Nickel itself.
  3. Gradual typing — start cheap with Strings and Numbers (or without types even, not a problem), harden requirements when needed.
  4. Native string interpolation — the Dockerfile template (templating function) is also written in Nickel.
  5. Lean but rich standard library — should cover Jinja functionality.

Cons: another programming language, albeit small & simple.

@develop7 develop7 requested review from chreekat and jhrcek April 24, 2026 08:01
@develop7 develop7 mentioned this pull request Apr 24, 2026
Copy link
Copy Markdown
Collaborator

@jhrcek jhrcek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In principle I don't have objections.
I must admin I'm not familiar with nickel and in general expect that fewer people will be familiar with it than with haskell/yaml, I trust folks from Tweag develop technically robust implementation of a configuration language.

@develop7 develop7 force-pushed the feat-generator_nickel branch from 6d7b970 to 86ec67c Compare April 26, 2026 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants