127 lines
3.2 KiB
Markdown
127 lines
3.2 KiB
Markdown
<!-- file: deltas/0.0.1/alpha.4.md -->
|
||
<!-- version: 1 -->
|
||
|
||
# Delta 0.0.1-alpha.4 — baseline Web indépendante et template lab
|
||
|
||
## Base requise
|
||
|
||
État `0.0.1-alpha.3.fix.3` committé et poussé après application du history :
|
||
|
||
```text
|
||
history/0.0.1/alpha.3.fix.3.md = PASS
|
||
```
|
||
|
||
La version devient :
|
||
|
||
```text
|
||
0.0.1-alpha.4
|
||
```
|
||
|
||
## Objectif
|
||
|
||
Matérialiser le skeleton Web PGR `003-WEB_FRONTEND` sans démarrer encore Actix/Maud.
|
||
|
||
La tranche introduit un package unique :
|
||
|
||
```text
|
||
Web/knowledge-template-lab/
|
||
```
|
||
|
||
Ce package est un laboratoire de templates statiques partagé par les trois façades. Il n'est ni une application produit supplémentaire ni un renderer de production.
|
||
|
||
## Décisions matérialisées
|
||
|
||
```text
|
||
package manager npm
|
||
lockfile package-lock.json versionné
|
||
TypeScript strict
|
||
Vite build/dev/preview + manifest
|
||
styles Sass via sass-embedded
|
||
framework CSS Bootstrap
|
||
Bootstrap runtime @popperjs/core explicite
|
||
```
|
||
|
||
Le package commun est retenu tant qu'aucune divergence réelle ne justifie plusieurs toolchains.
|
||
|
||
## Versions sélectionnées
|
||
|
||
La tranche fixe explicitement :
|
||
|
||
```text
|
||
typescript 7.0.2
|
||
vite 8.3.1
|
||
sass-embedded 1.105.0
|
||
bootstrap 5.3.8
|
||
@popperjs/core 2.11.8
|
||
@types/bootstrap 5.2.11
|
||
```
|
||
|
||
`@types/bootstrap` est justifié par l'import TypeScript du runtime Bootstrap. Aucun `@types/node` n'est ajouté : la configuration Vite ne consomme pas d'API Node typée.
|
||
|
||
## Build externe
|
||
|
||
Le cache et l'output sont configurés hors du dépôt :
|
||
|
||
```text
|
||
../builds/sasedev-knowledge/vite-cache/template-lab/
|
||
../builds/sasedev-knowledge/web/template-lab/
|
||
```
|
||
|
||
Aucun `dist/`, cache Vite ou `node_modules/` n'est versionné.
|
||
|
||
## Manifest et future intégration Maud
|
||
|
||
Le build Vite active :
|
||
|
||
```text
|
||
build.manifest = true
|
||
```
|
||
|
||
L'entrée stable :
|
||
|
||
```text
|
||
src/main.ts
|
||
```
|
||
|
||
importe également `src/styles/main.scss`.
|
||
|
||
Le manifest doit donc permettre à la future intégration Actix/Maud de résoudre les sorties JavaScript et CSS hashées à partir d'une clé logique stable, sans coder leurs noms de fichiers.
|
||
|
||
`alpha.4` ne contient aucun loader Rust du manifest. Ce contrat appartient à `alpha.5`.
|
||
|
||
## Template statique de référence
|
||
|
||
`index.html` matérialise une référence minimale commune :
|
||
|
||
- trois familles PGR/HOWTOs/snippets ;
|
||
- layout responsive Bootstrap ;
|
||
- styles Sass ;
|
||
- un exemple d’interaction JavaScript Bootstrap via tooltip.
|
||
|
||
Aucune URL admin/login ni hostname de production n'est introduit.
|
||
|
||
## Lockfile npm
|
||
|
||
Le delta ne préfabrique pas `package-lock.json`.
|
||
|
||
L'opérateur doit le générer avec npm à partir du manifest réel, puis vérifier une restauration reproductible avec `npm ci`. Le lockfile généré devient partie du staging et du commit de tranche.
|
||
|
||
## Scope exclu
|
||
|
||
La tranche n'ajoute pas :
|
||
|
||
- Actix Web ;
|
||
- Maud ;
|
||
- les trois crates serveur ;
|
||
- PostgreSQL/migrations ;
|
||
- adapter Gitea ;
|
||
- routes `/admin`, `/login` ou équivalentes ;
|
||
- loader Rust du manifest ;
|
||
- UI d'administration fonctionnelle.
|
||
|
||
## Validation attendue
|
||
|
||
La gate combine les preuves Rust existantes et le skeleton Web réel. Elle est fournie dans `docs/validation/001-VALIDATION_MATRIX.md`.
|
||
|
||
Ne pas committe `alpha.4` avant production de son history à partir des résultats opérateur.
|