From df467bded6be821854f3d475d570b45e8ada38c5 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Mon, 28 Sep 2026 11:21:40 +0200 Subject: [PATCH] 0.0.1-rc.1 --- Cargo.lock | 14 +- Cargo.toml | 4 +- VERSION | 2 +- deltas/0.0.1/rc.1.md | 106 +++++++++++++ docs/plans/001-V0_0_1_FOUNDATION_PLAN.md | 20 ++- docs/validation/001-VALIDATION_MATRIX.md | 27 +++- history/0.0.1/rc.1.md | 181 +++++++++++++++++++++++ 7 files changed, 340 insertions(+), 14 deletions(-) create mode 100644 deltas/0.0.1/rc.1.md create mode 100644 history/0.0.1/rc.1.md diff --git a/Cargo.lock b/Cargo.lock index 540649e..ac8a69d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -475,46 +475,46 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "knowledge-domain-lib" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" [[package]] name = "knowledge-git-api" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "knowledge-domain-lib", ] [[package]] name = "knowledge-howtos-server" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "knowledge-web-lib", ] [[package]] name = "knowledge-pgr-server" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "knowledge-web-lib", ] [[package]] name = "knowledge-snippets-server" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "knowledge-web-lib", ] [[package]] name = "knowledge-sync-api" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "knowledge-domain-lib", ] [[package]] name = "knowledge-web-lib" -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" dependencies = [ "actix-files", "actix-web", diff --git a/Cargo.toml b/Cargo.toml index ca2a501..f843324 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 12 +# version: 13 [workspace] resolver = "3" @@ -14,7 +14,7 @@ members = [ ] [workspace.package] -version = "0.0.1-beta.1" +version = "0.0.1-rc.1" edition = "2024" publish = false repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge" diff --git a/VERSION b/VERSION index 7390193..871d40b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-beta.1 +0.0.1-rc.1 diff --git a/deltas/0.0.1/rc.1.md b/deltas/0.0.1/rc.1.md new file mode 100644 index 0000000..c6f62ac --- /dev/null +++ b/deltas/0.0.1/rc.1.md @@ -0,0 +1,106 @@ + + + +# Delta 0.0.1-rc.1 — release candidate + +## Base requise + +État `0.0.1-beta.1` committé et poussé après application du history : + +```text +history/0.0.1/beta.1.md = PASS +``` + +La version devient : + +```text +0.0.1-rc.1 +``` + +## Objet + +Geler le scope de `0.0.1` et exécuter sa gate complète de release candidate. + +Aucune nouvelle fonctionnalité n'est introduite. + +## Scope + +La RC remplace uniquement : + +```text +VERSION +Cargo.toml +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +docs/validation/001-VALIDATION_MATRIX.md +``` + +et ajoute : + +```text +deltas/0.0.1/rc.1.md +``` + +Aucun fichier n'est supprimé. + +Le code Rust, le package Web, les manifests npm, les études, la roadmap, le changelog candidat et le prompt `0.0.2` sont gelés. + +## Histories attendus avant RC + +La gate doit retrouver exactement les quatorze histories antérieurs suivants : + +```text +alpha.1 FAIL +alpha.1.fix.1 PASS +alpha.2 PASS +alpha.3 FAIL +alpha.3.fix.1 FAIL +alpha.3.fix.2 FAIL +alpha.3.fix.3 PASS +alpha.4 FAIL +alpha.4.fix.1 FAIL +alpha.4.fix.2 PASS +alpha.5 FAIL +alpha.5.fix.1 FAIL +alpha.5.fix.2 PASS +beta.1 PASS +``` + +Pendant la gate, `rc.1.md` doit être le seul delta `0.0.1` sans history correspondant. + +## Présentation candidate + +La RC conserve : + +```text +CHANGELOG.md -> ## 0.0.1 (candidate) +ROADMAP.md -> 0.0.1 planifié, 0.0.2 engagé, aucun 0.0.3 +prompt 002 -> reprise bloquée jusqu'à v0.0.1 + publish.001 PASS +``` + +La présentation stable proprement dite appartient à `rel.1`, pas à la RC. + +## Gate complète + +La RC rejoue : + +- réconciliation documentaire et histories ; +- audits Markdown PGR ; +- hygiène texte globale ; +- audits Rust PGR et layout des tests ; +- `cargo check`, Clippy strict et tests workspace ; +- restore/typecheck/build Web ; +- audit du manifest Vite ; +- smoke HTTP des trois launchers ; +- hygiène Git finale. + +## Transition + +Si `rc.1` obtient `PASS`, la seule transition autorisée est : + +```text +0.0.1-rel.1 +``` + +Cette promotion stable doit rester mécanique, porter `VERSION = 0.0.1`, finaliser README/ROADMAP/CHANGELOG/plan/index si nécessaire, exécuter sa propre gate pré-tag et ne jamais anticiper un résultat post-tag. + +Ne pas committe `rc.1` 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 3a0919c..eabd11d 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 @@ -249,7 +249,21 @@ Aucun nouveau crate runtime, contrat métier, dépendance, route, schéma SQL ou ### rc.1 — candidate stable -Clôturer les défauts de cohérence, préparer la présentation stable, le handoff suivant et vérifier l'absence de scope futur introduit par anticipation. +Geler le scope fonctionnel de `0.0.1` et exécuter la gate complète de release candidate. + +La RC ne modifie aucun code Rust, package Web, dépendance, roadmap, changelog candidat, étude de fondation ou prompt de reprise. Elle doit uniquement : + +- porter `VERSION = 0.0.1-rc.1` et la version workspace identique ; +- vérifier les quatorze histories antérieurs et leurs statuts réels ; +- vérifier que `rc.1` est la seule tranche possédant un delta sans history pendant sa gate ; +- confirmer le changelog `0.0.1 (candidate)` sans détails de fixes internes ; +- confirmer la roadmap avec `0.0.1` encore planifié, `0.0.2` engagé et aucun `0.0.3` réservé ; +- confirmer le handoff `002` bloqué jusqu'à la stable taggée et au rapport post-tag `PASS` ; +- confirmer les DEFER de fondation ; +- rejouer audits Markdown, audits Rust, Cargo/Clippy/tests, baseline Web, manifest Vite et les trois smokes HTTP ; +- vérifier l'hygiène texte et Git. + +Un défaut fonctionnel important découvert en RC impose un retour de phase ou un REPLAN ; il ne doit pas être absorbé silencieusement dans la promotion stable. ### rel.1 — fermeture stable @@ -281,7 +295,7 @@ REPLAN obligatoire si : ## Revue d'horizon -État à l'entrée de `beta.1` : **instruite par la tranche, en attente de gate opérateur**. +État après gate opérateur `beta.1` : **PASS**. Décision matérialisée : diff --git a/docs/validation/001-VALIDATION_MATRIX.md b/docs/validation/001-VALIDATION_MATRIX.md index 328a0d1..f216320 100644 --- a/docs/validation/001-VALIDATION_MATRIX.md +++ b/docs/validation/001-VALIDATION_MATRIX.md @@ -1,5 +1,5 @@ - + # Matrice de validation Knowledge @@ -405,3 +405,28 @@ La réconciliation beta doit prouver : - manifest Vite parsable ; - smoke HTTP des trois launchers propre ; - `git diff --cached --check` propre. + +## Gate de `0.0.1-rc.1` + +La release candidate doit prouver : + +- `VERSION = 0.0.1-rc.1` et version workspace identique ; +- history `beta.1` `PASS` committé avant application de la RC ; +- aucun diff sous `crates/` ou `Web/` ; +- aucun nouveau package, dépendance, route, contrat métier, étude technique ou scope fonctionnel ; +- quatorze histories antérieurs présents avec leurs statuts réels ; +- `deltas/0.0.1/rc.1.md` présent et `history/0.0.1/rc.1.md` absent pendant la gate ; +- `CHANGELOG.md` conserve `## 0.0.1 (candidate)` et ne contient pas de détail de tranche/fix ; +- `ROADMAP.md` conserve `0.0.1` planifié, engage `0.0.2` et ne réserve pas `0.0.3` ; +- étude de réconciliation `003` et prompt `002` inchangés depuis beta ; +- prompt `002` toujours bloqué jusqu'au tag `v0.0.1` et au rapport post-tag `PASS` ; +- PostgreSQL, forge, auth/admin complète, formats finaux et workflow Git d'écriture restent différés ; +- audits Markdown headers/tables/links propres ; +- hygiène texte globale propre : pas de CR, whitespace terminal ni fichier texte suivi sans newline finale ; +- `cargo fmt --check`, audit de layout des tests, audits Rust, `cargo check`, Clippy strict et tests workspace propres ; +- `npm ci`, typecheck et build Web propres ; +- manifest Vite parsable ; +- smoke HTTP des trois launchers propre ; +- `git diff --cached --check` propre. + +La RC `PASS` autorise uniquement la promotion mécanique `0.0.1-rel.1`. diff --git a/history/0.0.1/rc.1.md b/history/0.0.1/rc.1.md new file mode 100644 index 0000000..f668080 --- /dev/null +++ b/history/0.0.1/rc.1.md @@ -0,0 +1,181 @@ + + + +# History 0.0.1-rc.1 — release candidate + +## Statut + +FAIL + +La gate opérateur de `0.0.1-rc.1` exécutée le `2026-09-28` valide la quasi-totalité de la candidate, mais l'audit d'intégration livré contient une assertion incorrecte sur le diff Git avant staging. + +Après cette gate, l'opérateur décide également de retirer `Cargo.lock` du repository avant la stable `0.0.1`. Cette décision locale est compatible avec PGR `v0.1.1`, qui exige une politique explicite de lockfile sans imposer universellement son versionnement. + +## Baseline opérateur + +`beta.1` `PASS` a été historisé, committé et poussé avant application de la RC : + +```text +history/0.0.1/beta.1.md = PASS +commit 7c0048b +message 0.0.1-beta.1 +branch master +push origin/master PASS +status clean après push +``` + +Le push observé a avancé `origin/master` de `515f815` à `7c0048b`. + +## Gel initial + +Les premières preuves passent : + +```text +VERSION = 0.0.1-rc.1 +git diff --check PASS +cargo fmt --all -- --check PASS +aucun diff sous crates/ ou Web/ PASS +``` + +## Défaut bloquant de l'audit d'intégration + +L'audit livré attendait exactement : + +```text +Cargo.toml +VERSION +deltas/0.0.1/rc.1.md +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +docs/validation/001-VALIDATION_MATRIX.md +``` + +via : + +```text +git diff --name-only +``` + +Cette commande n'inclut pas les fichiers non suivis. + +Au moment du contrôle, `deltas/0.0.1/rc.1.md` est précisément un fichier non suivi. L'ensemble réellement observé est donc : + +```text +Cargo.toml +VERSION +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +docs/validation/001-VALIDATION_MATRIX.md +``` + +L'assertion échoue et maintient la tranche en `FAIL`. + +Le delta RC lui-même est bien présent dans le workspace et apparaît ensuite dans le staging final après `git add -A`. + +## Preuves non bloquées + +Malgré le défaut de l'audit d'intégration, les autres gates passent. + +### Markdown + +```text +Markdown header audit: clean (30 file(s)) +Markdown table audit: clean (4 table(s), 30 file(s)) +Markdown link audit: clean (28 local link(s), 30 file(s)) +``` + +### Hygiène texte + +```text +Knowledge 0.0.1-rc.1 text hygiene: clean +``` + +### Rust + +```text +Rust test-layout audit: clean (7 crate(s)) +Rust blank-line audit: clean (18 file(s)) +Rust item-spacing audit: clean (18 file(s)) +Rust module-order audit: clean (18 file(s)) +Rust trait-import-block audit: clean (18 file(s)) +Rust re-export-block audit: clean (18 file(s)) +Rust export completeness audit: 0 candidate(s) across 7 package(s) +``` + +`cargo check`, Clippy strict et les tests workspace passent. + +Tests observés : + +```text +knowledge-domain-lib : 3 PASS +knowledge-git-api : 1 PASS +knowledge-sync-api : 1 PASS +knowledge-web-lib : 4 PASS +launchers : 0 test chacun +``` + +### Web + +`npm ci`, `npm run typecheck` et `npm run build` passent. + +Le warning `@parcel/watcher@2.6.0` reste observable mais non approuvé et non bloquant. + +### Manifest Vite + +```text +Knowledge 0.0.1-rc.1 Vite manifest audit: clean +``` + +### Smokes HTTP + +```text +knowledge-pgr-server smoke PASS +knowledge-howtos-server smoke PASS +knowledge-snippets-server smoke PASS +Knowledge 0.0.1-rc.1 HTTP smoke: clean +``` + +## Staging final observé + +Après `git add -A` : + +```text +M Cargo.lock +M Cargo.toml +M VERSION +A deltas/0.0.1/rc.1.md +M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +M docs/validation/001-VALIDATION_MATRIX.md +``` + +`git diff --cached --check` passe. + +## Décision `Cargo.lock` + +Avant promotion stable, l'opérateur choisit de ne plus versionner `Cargo.lock`. + +La politique cible devient : + +```text +Cargo.lock généré localement par Cargo +Cargo.lock ignoré par Git +Cargo.lock absent de l'index/repository +``` + +Cette décision ne modifie pas la politique frontend : `Web/knowledge-template-lab/package-lock.json` reste versionné. + +## Décision + +`0.0.1-rc.1` est `FAIL`. + +La transition autorisée est : + +```text +0.0.1-rc.1.fix.1 +``` + +Le fix doit : + +- corriger la gate d'intégration afin de ne plus confondre diff suivi et fichiers non suivis ; +- retirer `Cargo.lock` du suivi Git sans supprimer sa copie locale ; +- ignorer explicitement `/Cargo.lock` ; +- réconcilier les documents vivants avec cette politique ; +- rejouer la gate complète RC.