Skip to content

v0.9.0

Choose a tag to compare

@jaspertey jaspertey released this 19 Oct 18:44
· 25 commits to main since this release
c86fd51

Headline

Mod 0.9 lets an app adopt generated files feature by feature. A checkout can hold several lineages, each with its own installed record. A lineage cannot take another lineage's files or a host-owned path, can require other lineages, and can claim existing files whose bytes already match, never overwriting ones that differ. A 0.8 checkout keeps working and moves to the new layout on its next update. The API is still experimental and supports POSIX checkouts only.

Added

  • Maintenance holds many installed lineages per checkout, one record each under .mod-maintenance/installed/. A 0.8 installed.json keeps working and migrates on that lineage's next write. Checkout::installed() lists every installed lineage (#183).
  • A path another installed lineage owns is a conflict (owned_by:<name>). While one lineage has an unfinished update, other lineages are refused (pending:<name>). Artifacts can declare requires (lineage names, at an exact version or *; an exact requirement blocks updating that lineage to another version, required_by:<name>) and hostOwned path prefixes that no other lineage may own, write or claim (host_owned:<name>) (#183).
  • Checkout::inspect() and Maintenance::resume() take a reviewed claim list: existing files with identical bytes become owned without a write, and differing bytes are a conflict. Maintenance::diagnose() reports claimable paths (#183).

What's Changed

Full Changelog: v0.8.0...v0.9.0