Skip to content

Versioning and releases

YadeWira edited this page Oct 29, 2026 · 8 revisions

Versioning and releases

line language where state
v0.4.x Free Pascal repository root current: archive and stream formats frozen
v0.3.x Free Pascal repository root the real command line, the archiver (from v0.3.1); last release v0.3.4
v0.2.x Free Pascal repository root the codec, sylz formats v2 and v3; last release v0.2.14
v0.1.x Rust legacy/rust/ frozen; last release v0.1.29
  • Every release is a pre-release until v1.0.0. That includes all the v0.1.x ones.
  • Formats are frozen one by one, each at a tag, when they are ready: sylz v2 (v0.2.2), sylz v3 (v0.2.14), the archive format 2 and the stream version 4 (v0.4.0). A frozen format never changes: a change is a new format number, and readers keep reading the old ones. Before its freeze a format may change between pre-releases.
  • The v0.1.x releases carry Linux x86-64 and Windows x86-64 binaries; v0.1.29 adds a Windows 7 32-bit build.
  • From v0.2.1 the releases carry Linux x86-64 and arm64, Windows x86-64 and 32-bit binaries; from v0.2.2 also the zpaq-std plugin for the same four. From v0.5.2 also Linux x86 (32-bit) and macOS arm64 (built by CI) binaries of the CLI and the benchmark.
  • Since v0.5.1 every target writes the same bytes; since v0.5.2 CI checks it on every push.
  • sylz block formats are frozen per tag once anything outside syc depends on them: format v2 at v0.2.2 (zpaq-std's -ma:sylz). A change after that is a new format version, never an edit of a frozen one. Format v3 (-ec) is experimental and not frozen: it may still change, and only syc writes it.
  • Compressor output is not frozen: a level may write different (equally valid) bytes in a later version, as levels 0–2 did in v0.2.5 and 2–3 in v0.2.6.

Clone this wiki locally