From 98ec46fe73bd50dacbe6be220650d87dd2000b74 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Mon, 28 Sep 2026 13:02:02 +0200 Subject: [PATCH] 0.0.1 --- CHANGELOG.md | 4 +- Cargo.toml | 4 +- README.md | 12 +- ROADMAP.md | 4 +- VERSION | 2 +- deltas/0.0.1/rel.1.md | 116 ++++++++++++ docs/000-README.md | 6 +- docs/plans/001-V0_0_1_FOUNDATION_PLAN.md | 26 ++- history/0.0.1/rel.1.md | 213 +++++++++++++++++++++++ 9 files changed, 368 insertions(+), 19 deletions(-) create mode 100644 deltas/0.0.1/rel.1.md create mode 100644 history/0.0.1/rel.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e5aefc9..121d753 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ - + # Changelog SaseDev Knowledge Ce fichier décrit les changements utiles des releases publiées. Les détails de tranches et preuves opérateur appartiennent aux plans, deltas et histories. -## 0.0.1 (candidate) +## 0.0.1 - établit la gouvernance locale Knowledge à partir de PGR `v0.1.1` vérifiée ; - cadre trois applications Actix Web distinctes pour PGR, HOWTOs et snippets dans un workspace commun ; diff --git a/Cargo.toml b/Cargo.toml index feeccf2..37d8c5f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 15 +# version: 16 [workspace] resolver = "3" @@ -14,7 +14,7 @@ members = [ ] [workspace.package] -version = "0.0.1-rc.2" +version = "0.0.1" edition = "2024" publish = false repository = "https://git.sasedev.com/Sasedev/sasedev-knowledge" diff --git a/README.md b/README.md index 280a03e..13c350b 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # SaseDev Knowledge @@ -11,7 +11,7 @@ Le dépôt applicatif retenu est `sasedev-knowledge`. Le nom court du projet et La version courante est définie par [`VERSION`](VERSION). -`0.0.1` est une release de fondation. Elle établit la gouvernance, les frontières d'architecture, le workspace minimal, les premiers contrats et les validations nécessaires avant toute implémentation fonctionnelle importante. +`0.0.1` est la première stable de fondation de SaseDev Knowledge. Elle établit la gouvernance, les frontières d'architecture, le workspace Rust/Web, les premiers contrats provider-neutral et les validations nécessaires avant les capacités fonctionnelles des releases suivantes. ## Topologie produit de fondation @@ -35,7 +35,7 @@ Le workspace Rust matérialise sept packages : les trois frontières de fondatio ## Frontend de référence et rendu Maud -Knowledge adopte le profil Web PGR comme partie obligatoire de la fondation. `alpha.4` matérialise un package partagé de laboratoire sous `Web/knowledge-template-lab/` avec npm, TypeScript strict, Vite, Sass et Bootstrap. +Knowledge adopte le profil Web PGR comme partie obligatoire de la fondation. La stable `0.0.1` matérialise un package partagé de laboratoire sous `Web/knowledge-template-lab/` avec npm, TypeScript strict, Vite, Sass et Bootstrap. Ce package sert à développer, prévisualiser et valider les assets et templates statiques de référence indépendamment des serveurs Actix. Il n'est pas une quatrième application produit ni une UI de production. @@ -43,7 +43,7 @@ Les templates statiques sont un **harness de conception/validation**, pas le mot Le mécanisme observé dans `actix-auth-app` est documenté comme corpus technique à adapter, pas comme code autoritaire à copier. -`alpha.5` matérialise `knowledge-web-lib` et les trois launchers `knowledge-*-server`. La bibliothèque commune possède le rendu Maud, la sélection dev-server/manifest Vite et le service des assets de production ; les trois `main.rs` ne contiennent que la sélection de façade et du nom de variable d'environnement de bind. +La stable `0.0.1` matérialise `knowledge-web-lib` et les trois launchers `knowledge-*-server`. La bibliothèque commune possède le rendu Maud, la sélection dev-server/manifest Vite et le service des assets de production ; les trois `main.rs` ne contiennent que la sélection de façade et du nom de variable d'environnement de bind. Le runtime exige un bind configuré par launcher et l'une des deux sources d'assets suivantes : `KNOWLEDGE_VITE_DEV_ORIGIN` en développement ou `KNOWLEDGE_VITE_MANIFEST_PATH` en production. `KNOWLEDGE_ASSET_BASE_PATH` peut remplacer le préfixe `/` de production. Aucune route admin/login n'est matérialisée à ce stade. @@ -70,10 +70,10 @@ Le runtime exige un bind configuré par launcher et l'une des deux sources d'ass - [`docs/studies/001-AUTH_ADMIN_CORPUS_STUDY.md`](docs/studies/001-AUTH_ADMIN_CORPUS_STUDY.md) — étude des deux corpus historiques auth/admin et décisions de réutilisation conceptuelle ; - [`docs/studies/002-ACTIX_MAUD_VITE_CORPUS_STUDY.md`](docs/studies/002-ACTIX_MAUD_VITE_CORPUS_STUDY.md) — étude ciblée du pattern Vite manifest / Actix / Maud à adapter pour Knowledge ; - [`docs/studies/003-V0_0_1_FOUNDATION_RECONCILIATION.md`](docs/studies/003-V0_0_1_FOUNDATION_RECONCILIATION.md) — réconciliation `beta.1`, état matérialisé, DEFER conservés et revue d'horizon ; -- [`docs/plans/001-V0_0_1_FOUNDATION_PLAN.md`](docs/plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan vivant de `0.0.1` ; +- [`docs/plans/001-V0_0_1_FOUNDATION_PLAN.md`](docs/plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan historique de la fondation stable `0.0.1` ; - [`docs/validation/001-VALIDATION_MATRIX.md`](docs/validation/001-VALIDATION_MATRIX.md) — matrice de validation ; - [`prompts/001-V0_0_1_START_PROMPT.md`](prompts/001-V0_0_1_START_PROMPT.md) — prompt de démarrage autoritaire de la release. -- [`prompts/002-V0_0_2_START_PROMPT.md`](prompts/002-V0_0_2_START_PROMPT.md) — handoff préparé pour `0.0.2`, exécutable uniquement après publication vérifiée de `0.0.1`. +- [`prompts/002-V0_0_2_START_PROMPT.md`](prompts/002-V0_0_2_START_PROMPT.md) — handoff préparé pour `0.0.2`, à utiliser uniquement après publication du tag `v0.0.1` et vérification post-tag `PASS`. ## Langue et nomenclature diff --git a/ROADMAP.md b/ROADMAP.md index 3124eee..00203eb 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap SaseDev Knowledge @@ -9,7 +9,7 @@ Statuts : `( )` planifié, `(x)` terminé, `(d)` différé, `(c)` annulé. ## Fondation -- `( ) 0.0.1` — fondation Knowledge : gouvernance PGR, workspace à trois applications Actix Web, architecture Git/forge/PostgreSQL partagé, frontières PGR/HOWTO/snippet, contrat d'administration locale protégée sans UI/auth complète, workspace Rust, premiers contrats, baseline Web reproductible, rendu Maud et intégration réelle du manifest Vite, sans implémentation métier disproportionnée. +- `(x) 0.0.1` — fondation Knowledge : gouvernance PGR, workspace à trois applications Actix Web, architecture Git/forge/PostgreSQL partagé, frontières PGR/HOWTO/snippet, contrat d'administration locale protégée sans UI/auth complète, workspace Rust, premiers contrats, baseline Web reproductible, rendu Maud et intégration réelle du manifest Vite, sans implémentation métier disproportionnée. ## Horizon engagé diff --git a/VERSION b/VERSION index 1535ea9..8acdd82 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-rc.2 +0.0.1 diff --git a/deltas/0.0.1/rel.1.md b/deltas/0.0.1/rel.1.md new file mode 100644 index 0000000..c0a4b4a --- /dev/null +++ b/deltas/0.0.1/rel.1.md @@ -0,0 +1,116 @@ + + + +# Delta 0.0.1 rel.1 — promotion stable pré-tag + +## Baseline et version + +Baseline : `0.0.1-rc.2`, avec `history/0.0.1/rc.2.md` appliqué et committé. + +Ce delta MUST NOT être appliqué avant ce commit. + +Version avant application : + +```text +0.0.1-rc.2 +``` + +Version après application : + +```text +0.0.1 +``` + +`rel.1` identifie la tranche de clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit. + +## Objet + +Promouvoir mécaniquement la candidate finale validée vers la stable `0.0.1` sans rouvrir le scope. + +La tranche finalise uniquement la version stable, la présentation stable du README, la roadmap, le changelog, l'index documentaire et le statut historique du plan de fondation. + +Aucun fichier Rust, frontend, dépendance, contrat Git/sync, règle produit, étude ou prompt de reprise n'est modifié. + +## Politique `Cargo.lock` + +La politique finale reste inchangée : + +```text +Cargo.lock + présent localement + généré par Cargo + ignoré par Git + non suivi +``` + +Le fichier n'appartient pas au delta ni à la future archive du tag. + +`Web/knowledge-template-lab/package-lock.json` reste versionné. + +## Scope + +REPLACE : + +```text +VERSION +Cargo.toml +README.md +ROADMAP.md +CHANGELOG.md +docs/000-README.md +docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +``` + +ADD : + +```text +deltas/0.0.1/rel.1.md +``` + +DELETE : aucun. + +Le history `rc.2` est livré séparément. Le history `rel.1` sera produit uniquement après la gate opérateur. + +## Présentation stable attendue + +Après application : + +```text +VERSION 0.0.1 +Cargo workspace version 0.0.1 +ROADMAP (x) 0.0.1 +CHANGELOG ## 0.0.1 +README fondation stable 0.0.1 +plan 001 historique de la stable 0.0.1 +prompt 002 toujours conditionnel au post-tag PASS +``` + +`0.0.2` reste la seule prochaine release engagée. Aucun `0.0.3` n'est réservé. + +## Gate pré-tag + +La gate doit vérifier le history `rc.2` `PASS` committé, les dix-sept histories antérieurs, `rel.1` comme seul delta sans history, la présentation stable, l'absence de diff sous `crates/` ou `Web/`, les politiques de lockfiles, les audits Markdown/texte/Rust, Cargo/Clippy/tests, la baseline Web, le manifest Vite, les trois smokes HTTP et l'hygiène Git finale. + +La validation est strictement pré-tag. Ce delta ne déclare ni le tag `v0.0.1`, ni son archive source, ni un rapport post-tag comme existants. + +## Transition + +### PASS + +Produire séparément `history/0.0.1/rel.1.md`, l'appliquer, puis créer le commit stable avec le message exact : + +```text +0.0.1 +``` + +Après push de `master`, créer et publier le tag annoté `v0.0.1`, vérifier l'objet tag local/distant et son commit déréférencé, puis télécharger l'archive source réellement produite par Gitea depuis le tag et produire le rapport externe : + +```text +sasedev-knowledge-0.0.1-publish.001-report.md +``` + +Le prompt `002-V0_0_2_START_PROMPT.md` devient la reprise effective de `0.0.2` uniquement après un rapport post-tag `PASS`. + +### FAIL + +Créer `history/0.0.1/rel.1.md` avec le diagnostic réel, ne pas créer le tag et corriger uniquement la fermeture dans `rel.1.fix.1`. diff --git a/docs/000-README.md b/docs/000-README.md index 78993bd..806b6fe 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # Documentation SaseDev Knowledge @@ -20,7 +20,7 @@ ## Plans -- [`plans/001-V0_0_1_FOUNDATION_PLAN.md`](plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan vivant de la release de fondation `0.0.1`. +- [`plans/001-V0_0_1_FOUNDATION_PLAN.md`](plans/001-V0_0_1_FOUNDATION_PLAN.md) — plan historique de la stable de fondation `0.0.1`. ## Validation @@ -30,4 +30,4 @@ Les deltas et histories sont des artefacts de workflow, pas des substituts à ce ## Handoff -- [`../prompts/002-V0_0_2_START_PROMPT.md`](../prompts/002-V0_0_2_START_PROMPT.md) — prompt de reprise préparé pour `0.0.2`, non exécutable avant publication et vérification post-tag de `0.0.1`. +- [`../prompts/002-V0_0_2_START_PROMPT.md`](../prompts/002-V0_0_2_START_PROMPT.md) — prompt de reprise préparé pour `0.0.2`, à utiliser seulement après publication du tag `v0.0.1` et vérification post-tag `PASS`. diff --git a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md index a5e62cb..9d27364 100644 --- a/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +++ b/docs/plans/001-V0_0_1_FOUNDATION_PLAN.md @@ -1,11 +1,11 @@ - + # Plan 0.0.1 — fondation SaseDev Knowledge ## Statut et sources -Plan actif préparé après vérification de la stable PGR `v0.1.1` et de `pgr-0.1.1-publish.001-report.md` `PASS`. +Plan historique de la stable de fondation `0.0.1`, préparé après vérification de la stable PGR `v0.1.1` et de `pgr-0.1.1-publish.001-report.md` `PASS`. Sources de cadrage : @@ -285,9 +285,29 @@ Rejouer une release candidate complète après le changement de politique `Cargo - rejouer la gate RC complète sur le scope final ; - autoriser `rel.1` uniquement après `PASS`. +Statut opérateur : **PASS**. + +La candidate finale a été validée après récupération d'un commit local erroné non publié. La récupération n'a modifié ni le contenu `rc.2` ni `origin/master`, et l'intégralité de la gate RC a ensuite été confirmée. + ### rel.1 — fermeture stable -Exécuter la gate de release, produire le premier history `rel.N[/fix.M]` réellement `PASS`, matérialiser le commit produit `0.0.1`, publier le tag stable selon la politique Git retenue et effectuer la vérification post-tag requise. +Promotion mécanique pré-tag de la candidate validée vers `0.0.1`. + +La tranche : + +- porte `VERSION = 0.0.1` et la version workspace Cargo identique ; +- marque `0.0.1` terminée dans `ROADMAP.md` ; +- retire le marqueur `candidate` du `CHANGELOG.md` ; +- présente `README.md`, l'index documentaire et le présent plan comme état stable/historique ; +- conserve `0.0.2` comme seule prochaine release engagée ; +- conserve le prompt `002` conditionnel à la publication réelle de `v0.0.1` et au rapport post-tag `PASS` ; +- ne modifie aucun fichier sous `crates/` ou `Web/`, aucune dépendance et aucun contrat technique. + +Le résultat opérateur appartient à `history/0.0.1/rel.1.md`, créé uniquement après la gate. + +Si `rel.1` est `PASS`, son history est appliqué puis le commit produit porte le message exact `0.0.1`. Le tag stable `v0.0.1` n'est créé et poussé qu'après ce commit et son push sur la branche canonique. + +La vérification post-tag est séparée et doit produire `sasedev-knowledge-0.0.1-publish.001-report.md` à partir de l'archive réellement téléchargée depuis le tag et des preuves Git observées. Le prompt `002` reste bloqué jusqu'à un `publish.001 PASS` réel. ## Déclencheurs de REPLAN diff --git a/history/0.0.1/rel.1.md b/history/0.0.1/rel.1.md new file mode 100644 index 0000000..7526af5 --- /dev/null +++ b/history/0.0.1/rel.1.md @@ -0,0 +1,213 @@ + + + +# History 0.0.1 rel.1 — promotion stable pré-tag + +## Statut + +PASS + +La gate opérateur de `0.0.1-rel.1` exécutée le `2026-09-28` est propre. + +## Baseline opérateur + +`rc.2` `PASS` a été historisé, committé et poussé avant application de `rel.1` : + +```text +history/0.0.1/rc.2.md = PASS +commit aa9f6ac +message 0.0.1-rc.2 +branch master +push origin/master PASS +status clean après push +``` + +Le push observé a avancé `origin/master` de `c9fee69` à `aa9f6ac`. + +`Cargo.lock` reste présent localement, ignoré et non suivi. + +## Promotion stable + +La version produit est : + +```text +VERSION 0.0.1 +Cargo workspace version 0.0.1 +``` + +La tranche ne modifie aucun fichier sous : + +```text +crates/ +Web/ +``` + +La présentation stable est cohérente : + +```text +ROADMAP 0.0.1 terminé ; 0.0.2 engagé ; aucun 0.0.3 réservé +CHANGELOG section ## 0.0.1 sans marqueur candidate +README fondation présentée comme première stable +plan 001 plan historique de la stable 0.0.1 +prompt 002 toujours conditionné au tag v0.0.1 et au publish.001 PASS +``` + +## Audit stable + +L'audit de cohérence passe : + +```text +Knowledge 0.0.1-rel.1 stable audit: clean +(17 prior histories, rel.1 pending) +``` + +Il confirme notamment : + +- exactement sept packages Cargo ; +- les dix-sept histories antérieurs et leurs statuts réels ; +- `rc.2 = PASS` ; +- `rel.1` comme seul delta sans history pendant sa gate ; +- présentation stable cohérente ; +- aucune réservation `0.0.3` ; +- handoff `0.0.2` toujours bloqué jusqu'à la publication vérifiée. + +## Markdown et hygiène texte + +Les audits PGR passent : + +```text +Markdown header audit: clean +Markdown table audit: clean +Markdown link audit: clean +``` + +L'hygiène texte passe : + +```text +Knowledge 0.0.1-rel.1 text hygiene: clean +``` + +## Rust + +Les audits passent : + +```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) +``` + +Les sept packages compilent en version stable `0.0.1`. + +```text +cargo check --workspace PASS +cargo clippy --workspace --all-targets --all-features + -- -D warnings PASS +cargo test --workspace --all-targets --all-features PASS +``` + +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 +``` + +Après Cargo : + +```text +Cargo.lock local présent +Cargo.lock ignore actif +Cargo.lock Git absent +``` + +## Web + +Les commandes suivantes passent : + +```text +npm ci +npm run typecheck +npm run build +``` + +npm observe toujours `@parcel/watcher@2.6.0` comme script d'installation non couvert par `allowScripts`. Aucune approbation automatique n'est effectuée. + +Les warnings Sass Bootstrap restent non bloquants. + +## Manifest Vite + +L'audit passe : + +```text +Knowledge 0.0.1-rel.1 Vite manifest audit: clean +JS assets/assets/main-BMHcm6u9.js +CSS assets/main-V0IwlRbh.css +``` + +## Smokes HTTP + +Les trois launchers passent la gate stable : + +```text +knowledge-pgr-server smoke PASS +knowledge-howtos-server smoke PASS +knowledge-snippets-server smoke PASS +Knowledge 0.0.1-rel.1 HTTP smoke: clean +``` + +## Hygiène Git finale + +Les contrôles finaux passent : + +```text +Cargo.lock local présent +Cargo.lock ignore actif +Cargo.lock suivi non +git diff --cached --check PASS +``` + +Le staging final observé avant ajout du présent history est exactement : + +```text +M CHANGELOG.md +M Cargo.toml +M README.md +M ROADMAP.md +M VERSION +A deltas/0.0.1/rel.1.md +M docs/000-README.md +M docs/plans/001-V0_0_1_FOUNDATION_PLAN.md +``` + +## Décision + +`0.0.1-rel.1` est `PASS`. + +La release stable `0.0.1` peut maintenant être matérialisée. + +L'ordre obligatoire est : + +```text +appliquer ce history +-> git add / diff --cached --check / status +-> commit exact "0.0.1" +-> push origin master +-> vérifier workspace propre +-> créer le tag annoté v0.0.1 sur ce commit +-> pousser le tag +-> vérifier tag local et distant +-> télécharger l'archive réellement servie par Gitea depuis v0.0.1 +-> produire sasedev-knowledge-0.0.1-publish.001-report.md +``` + +Le présent history ne déclare pas le tag ou le rapport post-tag comme déjà existants. + +`prompts/002-V0_0_2_START_PROMPT.md` reste bloqué jusqu'à un `publish.001 PASS` réel.