0.0.1-rc.1

This commit is contained in:
2026-09-28 11:21:40 +02:00
parent 7c0048b6a7
commit df467bded6
7 changed files with 340 additions and 14 deletions

14
Cargo.lock generated
View File

@@ -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",

View File

@@ -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"

View File

@@ -1 +1 @@
0.0.1-beta.1
0.0.1-rc.1

106
deltas/0.0.1/rc.1.md Normal file
View File

@@ -0,0 +1,106 @@
<!-- file: deltas/0.0.1/rc.1.md -->
<!-- version: 1 -->
# 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.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/001-V0_0_1_FOUNDATION_PLAN.md -->
<!-- version: 14 -->
<!-- version: 15 -->
# 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 :

View File

@@ -1,5 +1,5 @@
<!-- file: docs/validation/001-VALIDATION_MATRIX.md -->
<!-- version: 14 -->
<!-- version: 15 -->
# 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`.

181
history/0.0.1/rc.1.md Normal file
View File

@@ -0,0 +1,181 @@
<!-- file: history/0.0.1/rc.1.md -->
<!-- version: 1 -->
# 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.