LabKit MATLAB Workbench

history

Structured documentation history

id: LK-20260715-component-owned-history
date: 2026-07-15
sequence: 61
type: docs
compatibility: breaking
scope: `docs/history/records/`
scope: `tools/docs/`
scope: `tools/release/`
scope: `CHANGELOG.md`

Context

Project evolution was stored in one 3,571-line root changelog. App, framework, library, validation, launcher, and release decisions were mixed together, while the new documentation site already had component pages capable of presenting the relevant history in context.

Decision and rationale

Store each change explanation once as an independent Markdown page in the chronological docs/history/records/<year>/<month>/ tree. Let the component metadata, rather than the file's physical folder, associate a record with each affected app, framework, or library. The documentation compiler then generates both component-specific history lists and a searchable project-wide index.

Changes

User and data impact

Users see instructions, APIs, scientific context, and relevant changes from one app or library page. Source readers can find every public history record under docs/history/records/. Search still reaches the complete historical record. No project files, calculations, or experimental data formats change.

Compatibility and migration

Links that targeted the old root changelog must move to the generated Project History page or a component page. The old parser and launcher history mode are intentionally removed rather than maintained as compatibility aliases.

Validation

The documentation compiler validates unique history identities, required metadata, source pages, generated links, search indexing, and deterministic output. Project release guardrails validate the distributed record set and component aggregation.

Evidence

Known limitations and follow-up

Some older records retain the wording used when their changes were originally made. Component metadata, rather than folder placement, determines where each record is shown.