Skip to content

version-matrix

Pure decision layer for running a suite against every supported Obsidian version.

Support is the range [latest public, latest catalyst] and both ends must be verified (G99). The two ends are moving targets, and they periodically coincide — when public catches up to catalyst, both specifiers provision the same build, so running the suites twice re-runs the same build and buys nothing. Worse, a consumer that ran both still reports “green on public AND catalyst”, a two-end claim it never verified.

The decision therefore lives here rather than in every consuming repo: a list of version specifiers is resolved to concrete versions, de-duplicated on the resolved version (never on the specifier string, so an explicit 1.13.4 and catalyst-latest collapse when catalyst is 1.13.4), and the suites run once per distinct version.

Everything here is pure and unit-tested; the manifest fetch and the logging live in the integration-time run-version-matrix.ts glue.

InterfaceDescription
ObsidianVersionMatrixEntryOne distinct Obsidian version the suites will run against.
VariableDescription
DEFAULT_OBSIDIAN_VERSION_SPECSThe version specifiers a matrix run defaults to: both ends of the supported range (G99). They are de-duplicated on their resolved versions, so when public has caught up to catalyst this yields a single run.