Marey

Compatibility

What a version number promises

From 1.0.0, the public API is what api/ lists, package by package. A patch release fixes defects and changes no public signature. A minor release adds, and removes, renames or retypes nothing a 1.x release published. Anything else waits for a major release, with four exceptions, which a minor release may make:

Two formats are versioned on their own rather than by the package. A scene on the wire (Wire) carries its format version, and a reader refuses one it does not know, naming the version. A LiveLog saved as JSON is format version 1, which every 1.x reads. LiveMsg, which passes between a kernel and a page of the same release, is not a format and may change in any release.

The packages are released together and depend on each other by exact version, so upgrading one means upgrading all of them; referencing Marey does that in one line.

What it runs on

Target frameworks netstandard2.1, except the GPU backend (net8.0) and the Verso extension (net8.0 and net10.0)
FSharp.Core 8.0.100 or newer
.NET SDK each release is checked on the 10.0.100 band and on the newest SDK
Fable the nine packages that carry their sources are built and tested with Fable 5.20
Verso a live figure needs 1.2.3 or newer
The window Linux and Windows; not macOS, which allows a window only on the main thread
External programs latex and dvisvgm for typeset text, ffmpeg and ffprobe for video: found on PATH, reported when missing, and not required at any version

The packages with sources for Fable are Core, Units, Anim, Plot, Fields, Interact, Sim, Backend.Svg and Backend.Web.