From 91e596eb514d61553799b8c0046629916385609d Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Mon, 28 Sep 2026 00:11:33 +0200 Subject: [PATCH] 0.0.1-alpha.3.fix.3 --- Cargo.lock | 6 +- Cargo.toml | 4 +- VERSION | 2 +- deltas/0.0.1/alpha.3.fix.3.md | 192 +++++++++++++++++++++++ docs/plans/001-V0_0_1_FOUNDATION_PLAN.md | 6 +- docs/validation/001-VALIDATION_MATRIX.md | 19 ++- history/0.0.1/alpha.3.fix.3.md | 100 ++++++++++++ 7 files changed, 320 insertions(+), 9 deletions(-) create mode 100644 deltas/0.0.1/alpha.3.fix.3.md create mode 100644 history/0.0.1/alpha.3.fix.3.md diff --git a/Cargo.lock b/Cargo.lock index 5f2be49..3423692 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,18 +4,18 @@ version = 4 [[package]] name = "knowledge-domain-lib" -version = "0.0.1-alpha.3.fix.2" +version = "0.0.1-alpha.3.fix.3" [[package]] name = "knowledge-git-api" -version = "0.0.1-alpha.3.fix.2" +version = "0.0.1-alpha.3.fix.3" dependencies = [ "knowledge-domain-lib", ] [[package]] name = "knowledge-sync-api" -version = "0.0.1-alpha.3.fix.2" +version = "0.0.1-alpha.3.fix.3" dependencies = [ "knowledge-domain-lib", ] diff --git a/Cargo.toml b/Cargo.toml index ceeb474..da4ddd2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 4 +# version: 5 [workspace] resolver = "3" @@ -10,7 +10,7 @@ members = [ ] [workspace.package] -version = "0.0.1-alpha.3.fix.2" +version = "0.0.1-alpha.3.fix.3" edition = "2024" publish = false repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge" diff --git a/VERSION b/VERSION index 3e32a6d..c5c4633 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-alpha.3.fix.2 +0.0.1-alpha.3.fix.3 diff --git a/deltas/0.0.1/alpha.3.fix.3.md b/deltas/0.0.1/alpha.3.fix.3.md new file mode 100644 index 0000000..f8d9f2a --- /dev/null +++ b/deltas/0.0.1/alpha.3.fix.3.md @@ -0,0 +1,192 @@ + + + +# Delta 0.0.1-alpha.3.fix.3 — hygiène Markdown de la matrice de validation + +## Base requise + +État `0.0.1-alpha.3.fix.2` committé et poussé après application du history : + +```text +history/0.0.1/alpha.3.fix.2.md = FAIL +``` + +La version devient : + +```text +0.0.1-alpha.3.fix.3 +``` + +## Cause du troisième fix + +`alpha.3.fix.2` a corrigé la documentation publique de `ContentFamily`. + +Les preuves opérateur confirment : + +```text +cargo check --workspace PASS +cargo clippy --workspace --all-targets --all-features PASS +knowledge-domain-lib tests 3 PASS +knowledge-git-api tests 1 PASS +knowledge-sync-api tests 1 PASS +Cargo metadata audit PASS +``` + +La tranche reste néanmoins `FAIL` parce que : + +```text +git diff --check +``` + +signale : + +```text +docs/validation/001-VALIDATION_MATRIX.md:216: new blank line at EOF. +``` + +## Correctif + +Le présent fix supprime uniquement la ligne vide supplémentaire en fin de : + +```text +docs/validation/001-VALIDATION_MATRIX.md +``` + +La matrice conserve une fin de ligne POSIX normale, sans ligne blanche supplémentaire. + +Le plan vivant enregistre le `FAIL` réel de `alpha.3.fix.2` et la transition vers `alpha.3.fix.3`. + +## Non-régression + +Le correctif ne modifie pas : + +- les quatre doc-comments de `ContentFamily` ; +- `SourceId` ; +- `GitRepository` ; +- `RepositoryEventSource` ; +- `RepositorySyncSignal` ; +- les dépendances entre crates ; +- le cadrage Web/Maud/Vite ; +- les décisions PostgreSQL/forge. + +Aucun frontend, serveur Actix, adapter de forge, schéma PostgreSQL ou nouvelle crate n'est ajouté. + +## Fichiers remplacés + +```text +VERSION +Cargo.toml +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +docs/validation/001-VALIDATION_MATRIX.md +``` + +## Fichier ajouté + +```text +deltas/0.0.1/alpha.3.fix.3.md +``` + +Aucun fichier n'est supprimé. + +## `Cargo.lock` + +Le delta ne préfabrique pas `Cargo.lock`. + +La version workspace passant à `0.0.1-alpha.3.fix.3`, Cargo peut mettre à jour le lockfile dans le workspace opérateur. Toute modification réelle reste versionnée. + +## Validation attendue + +Après application du history `alpha.3.fix.2 FAIL`, commit/push de `alpha.3.fix.2`, puis extraction du présent delta : + +```bash +test "$(cat VERSION)" = "0.0.1-alpha.3.fix.3" + +git diff --check + +python3 - <<'PY' +from pathlib import Path +import tomllib + +with Path("Cargo.toml").open("rb") as handle: + manifest = tomllib.load(handle) + +assert manifest["workspace"]["package"]["version"] == "0.0.1-alpha.3.fix.3" + +matrix_path = Path("docs/validation/001-VALIDATION_MATRIX.md") +matrix_bytes = matrix_path.read_bytes() + +assert matrix_bytes.endswith(b"\n") +assert not matrix_bytes.endswith(b"\n\n") + +content = Path( + "crates/knowledge-domain-lib/src/content_family.rs" +).read_text(encoding="utf-8") + +for variant in ("Pgr", "Howto", "Snippet", "ProjectLocal"): + marker = f" {variant}," + index = content.index(marker) + prefix = content[:index].rstrip().splitlines() + assert prefix[-1].lstrip().startswith("///"), variant + +assert "allow(missing_docs)" not in content +assert 'missing_docs = "warn"' in Path("Cargo.toml").read_text(encoding="utf-8") + +print("Knowledge 0.0.1-alpha.3.fix.3 structural audit: clean") +PY + +cargo metadata --format-version 1 --no-deps > /tmp/sasedev-knowledge-alpha3-fix3-metadata.json + +cargo fmt --all +cargo fmt --all -- --check + +python3 -B scripts/audit_rust_blank_lines.py crates +python3 -B scripts/audit_rust_item_spacing.py crates +python3 -B scripts/audit_rust_module_order.py crates +python3 -B scripts/audit_rust_trait_import_blocks.py crates +python3 -B scripts/audit_rust_reexport_blocks.py crates +python3 -B scripts/audit_rust_export_completeness.py --root . + +cargo check --workspace + +cargo clippy --workspace --all-targets --all-features -- -D warnings + +cargo test -p knowledge-domain-lib --all-targets --all-features +cargo test -p knowledge-git-api --all-targets --all-features +cargo test -p knowledge-sync-api --all-targets --all-features + +test -f Cargo.lock +if git check-ignore -q Cargo.lock; then + echo 'Cargo.lock must remain versioned' >&2 + exit 1 +fi + +python3 - <<'PY' +import json +from pathlib import Path + +metadata = json.loads( + Path("/tmp/sasedev-knowledge-alpha3-fix3-metadata.json").read_text(encoding="utf-8") +) + +packages = {package["name"] for package in metadata["packages"]} +assert packages == { + "knowledge-domain-lib", + "knowledge-git-api", + "knowledge-sync-api", +}, packages + +for package in metadata["packages"]: + assert package["version"] == "0.0.1-alpha.3.fix.3", ( + package["name"], + package["version"], + ) + +print("Knowledge 0.0.1-alpha.3.fix.3 Cargo metadata audit: clean") +PY + +git add -A +git diff --cached --check +git status --short +``` + +Ne pas committe `alpha.3.fix.3` avant production de son history à partir des résultats opérateur. diff --git a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md index 5ba9c0b..a8e1d67 100644 --- a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +++ b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md @@ -1,5 +1,5 @@ - + # Plan 0.0.1 — fondation SaseDev Knowledge @@ -132,7 +132,9 @@ La gate valide la structure et les audits puis échoue dans `knowledge-domain-li `alpha.3.fix.1` corrige ce défaut Rust, ajoute une régression directe de construction `SourceId` et précise la trajectoire Web/Maud fournie avant clôture de la tranche ; il ne démarre aucune implémentation frontend ou serveur. Sa gate opérateur reste toutefois **FAIL** : `cargo check` et les tests passent, mais Clippy strict rejette les quatre variantes publiques de `ContentFamily` non documentées sous `missing_docs`. -`alpha.3.fix.2` corrige exclusivement cette dette de documentation publique et rejoue la gate Rust complète sans modifier les contrats domaine/Git/synchronisation ni le cadrage Web/Maud. +`alpha.3.fix.2` corrige exclusivement cette dette de documentation publique et rejoue la gate Rust complète sans modifier les contrats domaine/Git/synchronisation ni le cadrage Web/Maud. Sa gate opérateur reste toutefois **FAIL** malgré le passage de `cargo check`, Clippy strict et des trois suites ciblées : `git diff --check` détecte une ligne vide supplémentaire en fin de `docs/validation/001-VALIDATION_MATRIX.md`. + +`alpha.3.fix.3` corrige exclusivement cette anomalie documentaire de fin de fichier, conserve les corrections Rust déjà validées et rejoue la gate complète avant clôture d'`alpha.3`. Le scope fonctionnel de `alpha.3` reste : introduire uniquement les premiers contrats/types nécessaires aux frontières `GitRepository`, source/famille de contenu et synchronisation, avec tests ciblés. Le modèle doit supporter au moins les trois sources initiales sans coder une limite à trois. diff --git a/docs/validation/001-VALIDATION_MATRIX.md b/docs/validation/001-VALIDATION_MATRIX.md index 40dc75d..dcab147 100644 --- a/docs/validation/001-VALIDATION_MATRIX.md +++ b/docs/validation/001-VALIDATION_MATRIX.md @@ -1,5 +1,5 @@ - + # Matrice de validation Knowledge @@ -214,3 +214,20 @@ Le second fix doit prouver : - aucun frontend, serveur Actix, schéma PostgreSQL ou adapter de forge ajouté ; - hygiène Git et documentation propres. +## Gate de `0.0.1-alpha.3.fix.3` + +Le troisième fix doit prouver : + +- `VERSION = 0.0.1-alpha.3.fix.3` et version workspace identique ; +- history `alpha.3.fix.2` `FAIL` committé avant application du fix ; +- `docs/validation/001-VALIDATION_MATRIX.md` se termine par exactement une fin de ligne, sans ligne vide supplémentaire ; +- `git diff --check` `PASS` avant clôture de tranche ; +- documentation des quatre variantes publiques `ContentFamily` conservée ; +- aucun `allow(missing_docs)` ajouté et politique `missing_docs` inchangée ; +- audits Rust PGR sélectionnés propres ; +- `cargo check --workspace` `PASS` ; +- Clippy workspace strict `-D warnings` `PASS` ; +- les trois suites ciblées `knowledge-domain-lib`, `knowledge-git-api` et `knowledge-sync-api` `PASS` ; +- aucune modification fonctionnelle des contrats domaine/Git/synchronisation ; +- aucun frontend, serveur Actix, schéma PostgreSQL ou adapter de forge ajouté ; +- staging Git propre à la tranche. diff --git a/history/0.0.1/alpha.3.fix.3.md b/history/0.0.1/alpha.3.fix.3.md new file mode 100644 index 0000000..e2558b6 --- /dev/null +++ b/history/0.0.1/alpha.3.fix.3.md @@ -0,0 +1,100 @@ + + + +# History 0.0.1-alpha.3.fix.3 — hygiène Markdown de la matrice de validation + +## Statut + +PASS + +La gate opérateur de `0.0.1-alpha.3.fix.3` exécutée le `2026-09-27` est propre. + +## Baseline opérateur + +`alpha.3.fix.2` `FAIL` a été historisé, committé et poussé avant application du troisième fix : + +```text +history/0.0.1/alpha.3.fix.2.md = FAIL +commit 3802476 +message 0.0.1-alpha.3.fix.2 +branch master +push origin/master PASS +status clean après push +``` + +Le push observé a avancé `origin/master` de `fd3d363` à `3802476`. + +## Hygiène documentaire + +Les contrôles suivants passent : + +```text +VERSION = 0.0.1-alpha.3.fix.3 +git diff --check = PASS +Knowledge 0.0.1-alpha.3.fix.3 structural audit: clean +``` + +`docs/validation/001-VALIDATION_MATRIX.md` se termine par une seule fin de ligne et ne produit plus de diagnostic `new blank line at EOF`. + +## Audits Rust PGR + +Les audits sélectionnés passent : + +```text +Rust blank-line audit: clean (8 file(s)) +Rust item-spacing audit: clean (8 file(s)) +Rust module-order audit: clean (8 file(s)) +Rust trait-import-block audit: clean (8 file(s)) +Rust re-export-block audit: clean (8 file(s)) +Rust export completeness audit: 0 candidate(s) across 3 package(s) +``` + +## Cargo et Clippy + +Les trois crates sont observées en version `0.0.1-alpha.3.fix.3`. + +Les commandes suivantes passent : + +```text +cargo check --workspace PASS +cargo clippy --workspace --all-targets --all-features + -- -D warnings PASS +``` + +## Tests ciblés + +Résultats : + +```text +knowledge-domain-lib : 3 passed; 0 failed +knowledge-git-api : 1 passed; 0 failed +knowledge-sync-api : 1 passed; 0 failed +``` + +Les corrections successives d'`alpha.3` sont donc closes : + +- `alpha.3` : `FAIL` sur construction de `SourceId` ; +- `alpha.3.fix.1` : `FAIL` sur `missing_docs` ; +- `alpha.3.fix.2` : `FAIL` sur hygiène de fin de fichier ; +- `alpha.3.fix.3` : `PASS`. + +## Staging observé + +Après la gate : + +```text +M Cargo.lock +M Cargo.toml +M VERSION +A deltas/0.0.1/alpha.3.fix.3.md +M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +M docs/validation/001-VALIDATION_MATRIX.md +``` + +`git diff --cached --check` est propre. + +## Décision + +`0.0.1-alpha.3.fix.3` est `PASS`. + +La transition autorisée est `0.0.1-alpha.4`, consacrée à la baseline Web indépendante et au laboratoire de templates statiques de référence.