Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 03:09
· 12 commits to main since this release

Features

  • publish release media together (7edaff9) (by yohimik)

Fixes

  • templates execute without reflect (daf8778) (by yohimik, Claude Fable 5.1)
    crier's templates ran on html/template and text/template, whose executors
    reach into values and call functions through reflection. That was the one
    thing a TinyGo toolchain could not do for crier: its reflect has no
    Type.NumOut and no Value.Call, and text/template needs both before it
    executes a line, so a fork-built crier panicked on its first template.

    internal/template/exec is an executor over text/template/parse's tree with
    no reflection in it. crier's data is never an arbitrary struct — a document
    is YAML or JSON, so maps, lists and scalars — and its function set is its
    own, so the executor walks plain values and dispatches functions through
    a typed table. Its tests run the same templates through both executors
    and require the same output: the truth rules, the missing-key options,
    the comparison functions and their errors, the printing, the variable
    scoping, the range order. The real templates — every example and both
    announcement layouts — render byte for byte what html/template rendered,
    comments aside.

    What changes for a gc binary is small and written down in the template
    documentation: one escaping rule (every value escaped as HTML text) where
    html/template had a context machine for URLs, CSS and scripts that a
    renderer never needed; template comments kept rather than stripped;
    method calls limited to times; join accepting a list from the data
    document, which the documentation's own example relied on and
    text/template refused; and a version line that names TinyGo when TinyGo
    built the binary.

    Under the fork the black-box suite now passes 106 of its tests where it
    passed 47, and renders. What fails is the fork's net, which dials and
    does not listen, so the stage server cannot serve; that is the fork's to
    close, and until it does the release binaries stay gc's.

Authors

  • yohimik
  • Claude Fable 5.1

Install

curl -fsSL https://raw.githubusercontent.com/yohimik/crier/v1.1.0/install.sh | CRIER_VERSION=1.1.0 sh
:CRIER_VERSION = '1.1.0'
irm https://raw.githubusercontent.com/yohimik/crier/v1.1.0/install.ps1 | iex
dispat install yohimik/crier