forked from yvv/decision
Lot T4 : les textes et la structure de l'Acte d'engagement (Yvv, 03/11) — I1, E1, E2 prennent les textes d'Yvv (fr, en, es ; « il y a une et une seule clé » lu comme la coquille de « il n'y a une et une seule ») ; E12 « Responsabilité civique », Proposition seed au cran 2, entre E1 et E2 ; les sections formule, inertie, ordonnancement sortent du document (ADR 0014). Migration 0012 additive (units.retired_at et retired_reason, retirement_amendments, article_amendments) ; une unité retirée n'est ni lue avec son document, ni listée, ni votée, ni proposée, corrigée, traduite ou objectée (404), ni comptée, ni publiée ; rien d'effacé. Amendements gardés, une fois par document : 2026-11-03-i1-amorce, -e1-amorce, -e2-amorce (Version::SeedProposal ; la ligne seed_proposal admise quand l'amendement de Proposition seed l'a écrite), 2026-11-03-e12-responsabilite-civique (article_amend : entre E1 et E2 tant que l'ordre de la section n'a pas de vote, sinon en fin de section), 2026-11-03-fonctionnement-hors-vote (retire : tous ou aucun, refus à la moindre trace d'une personne, avec sa raison et l'unité) ; les amendements dont le seed ne donne plus le texte, dépassés (superseded_by) ; seed::write_unit partagé
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -59,6 +59,10 @@ pub struct SeedProposalAmendment {
|
||||
pub levels: &'static [u8],
|
||||
/// Reason given to the publication queue, and so to the texts repository.
|
||||
pub reason: &'static str,
|
||||
/// The seed amendment that gives the seed proposal another text since (lot T4): the seed
|
||||
/// no longer puts this one forward, and this amendment decides nothing more, without
|
||||
/// an error (the decisions already taken stay).
|
||||
pub superseded_by: Option<&'static str>,
|
||||
}
|
||||
|
||||
pub const AMENDMENTS: &[SeedProposalAmendment] = &[
|
||||
@@ -69,6 +73,7 @@ pub const AMENDMENTS: &[SeedProposalAmendment] = &[
|
||||
text: "a7095d70602a0fc60d0904e9ffbce6d8520914ce3cb424d8f75e48bf6cfdf41a",
|
||||
levels: &[3],
|
||||
reason: "Proposition seed : I1 sort de la vigueur",
|
||||
superseded_by: Some("2026-11-03-i1-amorce"),
|
||||
},
|
||||
SeedProposalAmendment {
|
||||
id: "2026-11-02-e1-proposition-seed",
|
||||
@@ -77,6 +82,7 @@ pub const AMENDMENTS: &[SeedProposalAmendment] = &[
|
||||
text: "bdca2713fdb1186bc59ac130f13a205a35376986f14f7cfba7223b37ed9a41bd",
|
||||
levels: &[3, 4],
|
||||
reason: "Proposition seed : E1 sort de la vigueur",
|
||||
superseded_by: Some("2026-11-03-e1-amorce"),
|
||||
},
|
||||
SeedProposalAmendment {
|
||||
id: "2026-11-02-e2-proposition-seed",
|
||||
@@ -85,6 +91,7 @@ pub const AMENDMENTS: &[SeedProposalAmendment] = &[
|
||||
text: "bde76a30edaf8b623f3de0ff7eb94ec57eb5134b3c8aeae1590798fb6b9956f0",
|
||||
levels: &[3, 4],
|
||||
reason: "Proposition seed : E2 sort de la vigueur",
|
||||
superseded_by: Some("2026-11-03-e2-amorce"),
|
||||
},
|
||||
];
|
||||
|
||||
@@ -257,6 +264,15 @@ fn seed_says(seeds: &[SeedDoc], a: &SeedProposalAmendment) -> bool {
|
||||
});
|
||||
match unit {
|
||||
Some((u, print)) if print == a.text && u.inertia.is_none() => true,
|
||||
_ if a.superseded_by.is_some() => {
|
||||
tracing::debug!(
|
||||
amendment = a.id,
|
||||
unit = a.unit,
|
||||
superseded_by = a.superseded_by,
|
||||
"seed proposal amendment superseded: nothing decided"
|
||||
);
|
||||
false
|
||||
}
|
||||
_ => {
|
||||
tracing::error!(
|
||||
amendment = a.id,
|
||||
@@ -459,6 +475,7 @@ mod tests {
|
||||
text: "seed",
|
||||
levels: &[3, 4],
|
||||
reason: "Proposition seed : E1 sort de la vigueur",
|
||||
superseded_by: None,
|
||||
};
|
||||
|
||||
fn intact() -> Facts {
|
||||
|
||||
Reference in New Issue
Block a user