Skip to content

Add changelogs (scriv) to pslua + all package-set forks, backfill recent releases #101

@Unisay

Description

@Unisay

Adopt a managed changelog across the whole ecosystem — the pslua compiler (this repo) and every package in the Lua package set — using scriv (fragment files in changelog.d/, assembled into CHANGELOG.md on release). Today nothing here ships a changelog, so neither compiler users nor package consumers can tell what changed between versions — especially painful given the run of FFI fixes (#73#100) landing across the set.

Scope

  • pslua compiler — this repo (purescript-lua/purescript-lua).
  • Set forks (from purescript-lua-package-sets src/packages.dhall): assert, arrays, console, control, effect, enums, exceptions, foldable-traversable, functions, integers, lazy, lua-ngx, numbers, partial, prelude, refs, safe-coerce, st, strings, unfoldable, unsafe-coerce.

1. scriv setup (each repo)

  • Add a scriv config (pyproject.toml/setup.cfg/.scriv.toml) — Markdown, changelog.d/ fragment dir, categories (Added/Changed/Fixed/Removed).
  • Provide scriv in the dev shell (flake buildInputs, e.g. python3Packages.scriv) so scriv create/scriv collect work in nix develop.
  • Seed CHANGELOG.md with the scriv begin/end markers.
  • Make it ecosystem canon — document in the shared AGENTS.md/CONTRIBUTING and an ADR in purescript-lua-package-sets/docs/adr, alongside the treefmt/hooks/CI canons.

2. Retroactive backfill

  • Reconstruct CHANGELOG.md entries from existing release tags (one section per tag: date + summary). Prioritise releases from the current FFI-fix campaign:
    • arrays v7.4.1, v7.4.0 · prelude v7.3.0 · numbers v9.1.2 · safe-coerce v2.0.1 · st v6.4.0 · …and earlier tags per fork.
  • pslua has no release tags today (forks pin it by git rev). Decide: start tagging compiler releases, or keep a date/PR-based changelog of notable compiler changes (e.g. De Bruijn lowering Codegen: 'Unexpected bound reference Local b index 1' compiling Data.Array.foldRecM (index inflated by optimizer) #56, treefmt/hooks/CI, the format-check job split). Backfill accordingly.

3. Ongoing process

  • Require a changelog.d/ fragment per change (PR checklist / CONTRIBUTING).
  • On release, run scriv collect (in/near the annotated-tag release flow release.yml for forks; for pslua, on its chosen release trigger) so CHANGELOG.md updates for every new version.

Filed in passing during the pre-release FFI-fix campaign; implementation comes after that campaign lands.

Metadata

Metadata

Assignees

Labels

choreMaintenance / infrastructure

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions