changelog
A package's changelog: its releases' notes, newest first (up to upTo, if given).
import type { Codebase } from "#codebase/tcmts/cli/codebase"; import { MARKER } from "#codebase/tcmts/cli/releases"; export function changelog(cb: Codebase, pkg: string, upTo?: string): string { const until = upTo ? cb.store.release(pkg, upTo) : undefined; const rs = cb.store.releases(pkg).filter((r) => !until || cb.store.isAncestor(r.causal, until.causal)); const body = rs.map((r) => r.notes.replace(`${MARKER}\n\n`, "").trimEnd()).join("\n\n"); return `# Changelog\n\n${body || "No releases yet."}\n`; }