Skip to content

v1.0.22

Choose a tag to compare

@zanjonke zanjonke released this 30 Sep 07:22
· 34 commits to main since this release

New release 🎉

Hello everyone! We are releasing a new version of plain-forge - 1.0.22!

Run npx plain-forge update in your terminal to upgrade!

New features & improvements

  • plain-forge no longer depends on one particular renderer. Skills, rules and docs now say "the renderer" instead of codeplain. The codeplain-only run-codeplain and load-codeplain-reference skills have been removed. The installer no longer tells you to install the codeplain CLI.

  • pyro is the default renderer, and its render-spec skill ships in the package. At the end of forge-plain and add-feature, the agent asks whether to render with pyro. If the skill isn't available, it points you to pyro's install docs. This release bundles pyro v0.4.0.

  • plain-forge install now installs plain-parser. It uses uv tool install and installs uv first if it's missing (astral's install.sh on Linux/macOS, install.ps1 on Windows). If this step fails, it prints the commands to run by hand, and the install itself still succeeds. Pass --skip-plain-parser to skip it.

  • plain-healthcheck validates specs with plain-parser check. It runs on every top module together with its import/requires chain, replacing codeplain --dry-run. It then checks what the parser can't judge: section ownership, bullets, and the contents of linked resources. If plain-parser is missing, the healthcheck fails. forge-plain Phase 4 and add-feature both gate on this check before handing off to the renderer.

  • check-plain-env always checks for plain-parser and Python ≥ 3.11. It no longer looks for the codeplain CLI or CODEPLAIN_API_KEY.

  • init-config-file is renderer-neutral. config.yaml still configures test scripts, templates and output folders, but no longer contains codeplain CLI keys, logging settings or CODEPLAIN_API_KEY.

Fixes

  • Linked-resource paths are resolved the way the renderer actually resolves them. Paths are relative to the directory of the .plain file passed to the renderer, not the current working directory. This also applies to links inside imported and required modules. Paths that don't resolve there are looked up in template-dir, then in the renderer's built-in template library. So a render gives the same result from any working directory. (#25)

Internal improvements

  • pyro is vendored as a git submodule at vendor/pyro, pinned to v0.4.0. scripts/bundle-pyro.sh copies render-spec into the package on release, on next prereleases and in deploy.sh, checks that it's there and reports the pyro version.
  • The bundled-skill check now handles npm 12's new npm pack --json output format.
  • A new CI job runs the real install on Linux, macOS and Windows and checks that plain-parser can validate a spec.
  • Removed the presentations/ deck and the codeplain npm keyword.