changelog

tcmts.cli.releases.changelog · #uf2ohaqc · term · runs anywhere

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`;
}

uses

used by