Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3121 — The release compatibility analyzer's invariants hold under property tests

Add proptest properties to apps/majordomus-cli/src/release/compat.rs: diff(a,a) is empty; reordering a surface gives no change; adding a distinct atom is at least minor; removing one is at least major from 1.0; normalisation is idempotent.

PŘIPRAVENO vlna 0 · p2 · profil implementation · bezpečné souběžně

Part of a-test-fails-when-the-code-is-wrong — The suites that guard critical predicates are shown to fail when those predicates are wrong.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3121 bude přijato.

Cíl

Add proptest properties to apps/majordomus-cli/src/release/compat.rs: diff(a,a) is empty; reordering a surface gives no change; adding a distinct atom is at least minor; removing one is at least major from 1.0; normalisation is idempotent.

Proč

Proposed on 2026-09-11 (c111#6) when the owner ordered that Elm-like versioning be enforced. The version a landing allocates (ADR 0134) rests on this analyzer, and on master 707a04c (grep -c '#\\[test\\]' apps/majordomus-cli/src/release/compat.rs, 2026-10-18) it has 33 example tests and no property. Sources: chatgpt-majordomus:c111#6, chatgpt-majordomus:c079#6.

Aktuální stav

compat.rs: 33 #[test]s on master 707a04c (same grep). proptest is a dev-dependency used in other modules (mesh, deploy, served, integration, economics). surface.rs:699 tests normalisation idempotence on one example.

Cílový stav

Five named properties in the lib suite.

Rozsah

  • apps/majordomus-cli/src/release/compat.rs

Mimo rozsah

  • Changing the bump policy

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Each of the five properties runs at the default case count and passes

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib release::compat

Požadované důkazy

  • compat_properties

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3121.yaml. Read it back with majordomus plan show I3121.

Prohledává názvy a popisy všech stránek, které tento web publikuje.