0.1.1-alpha.3

This commit is contained in:
2026-09-27 10:56:05 +02:00
parent e351f57be4
commit 5033547534
10 changed files with 650 additions and 21 deletions

130
history/0.1.1/alpha.3.md Normal file
View File

@@ -0,0 +1,130 @@
<!-- file: history/0.1.1/alpha.3.md -->
<!-- version: 1 -->
# History 0.1.1-alpha.3 — TypeScript et écosystème de package
## Statut
PASS
La gate opérateur de `0.1.1-alpha.3` exécutée le `2026-09-27` est propre.
La tranche matérialise une baseline TypeScript stricte indépendante du bundler, le script canonique `typecheck`, un `package.json` privé minimal, une sélection explicite du package manager et une politique de lockfile fondée sur le rôle de l'artefact.
Une amélioration de revue a été identifiée après la réussite de la gate : expliciter la découverte et la déclaration des types externes (`@types/*`) nécessaires à l'analyse TypeScript et aux IDE. Cette amélioration appartient exactement au scope `alpha.3`, mais ne remet pas en cause les preuves exécutées. Le delta livré reste immuable ; la précision sera donc portée par `alpha.3.fix.1`.
## Baseline opérateur
La tranche `0.1.1-alpha.2.fix.1` et son history `PASS` ont été commités puis poussés avant application de `alpha.3` :
```text
commit e351f57
message 0.1.1-alpha.2.fix.1
push origin/master PASS
```
Le history `PASS` du fix est présent dans `HEAD` avant la gate de `alpha.3`.
## Contrôles d'identité
Les contrôles opérateur ont confirmé :
```text
VERSION 0.1.1-alpha.3
history/0.1.1/alpha.2.fix.1.md présent dans HEAD
deltas/0.1.1/alpha.3.md présent
history/0.1.1/alpha.3.md absent pendant la gate
history alpha.2.fix.1 PASS
docs/000-README.md version 26
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md version 4
docs/rules/530-TYPESCRIPT.md version 2
docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md version 2
docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md version 1
```
## Gate spécifique
La gate TypeScript/package atteint son message final :
```text
0.1.1 alpha.3 TypeScript/package audit: clean (strict typecheck, package-manager neutral, role-based lockfile policy, 2 JSON templates parsed)
```
Elle confirme notamment :
- `strict`, `noEmit`, `noUnusedLocals`, `noUnusedParameters` et `noFallthroughCasesInSwitch` dans la baseline ;
- le script `typecheck` basé sur `tsc --noEmit` ;
- l'absence de package manager universel imposé ;
- la politique de lockfile fondée sur le rôle ;
- le parsing exact des templates `package.json` et `tsconfig.json` ;
- le maintien de Vite en `alpha.4` et CSS/Sass en `alpha.5`.
## Tests Python
La suite complète a affiché :
```text
Ran 48 tests in 0.718s
OK
```
Soit `48/48` tests `PASS`.
## Audits Markdown
Les audits ont affiché :
```text
Markdown header audit: clean (211 file(s))
Markdown table audit: clean (9 table(s), 211 file(s))
Markdown link audit: clean (228 local link(s), 211 file(s))
```
## Hygiène Git et scope
`git diff --check` et `git diff --cached --check` n'ont produit aucune erreur.
Le scope indexé observé est exactement :
```text
M VERSION
A deltas/0.1.1/alpha.3.md
M docs/000-README.md
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
M docs/rules/530-TYPESCRIPT.md
M docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md
A docs/templates/008-WEB_TYPESCRIPT_PACKAGE.md
A templates/web-typescript/package.json
A templates/web-typescript/tsconfig.json
```
Aucun contenu Vite de `alpha.4` ni CSS/Sass de `alpha.5` n'a été absorbé.
## Décision de revue — déclarations de types externes
La revue opérateur demande de rendre explicite le traitement des packages de déclarations tels que `@types/node` ou `@types/bootstrap`, afin d'améliorer le contrôle TypeScript, l'intégration IDE, les diagnostics et la complétion lorsque la dépendance concernée ne fournit pas déjà des types suffisants.
La règle à introduire par `alpha.3.fix.1` doit rester conditionnelle :
1. vérifier d'abord si le package consommé fournit ses propres déclarations TypeScript ;
2. si elles sont absentes ou insuffisantes, rechercher le package `@types/...` correspondant ou une autre déclaration maintenue appropriée ;
3. pour une application/outillage privé, placer normalement ces dépendances de types dans `devDependencies` ;
4. ne pas ajouter `@types/node` à un frontend navigateur qui n'analyse aucun code/config Node ;
5. ne pas ajouter `@types/bootstrap` à un projet qui n'utilise que CSS/Sass et n'importe aucune API JavaScript Bootstrap nécessitant ces déclarations ;
6. pour une bibliothèque publiée, ne pas cacher en `devDependencies` un package de déclarations requis par les `.d.ts` publics des consommateurs ;
7. conserver une compatibilité de version cohérente entre le package runtime, ses déclarations externes et la version TypeScript sélectionnée.
Le template PGR générique ne doit pas inventer `@types/node`, `@types/bootstrap` ou leurs versions : ces dépendances dépendent des imports et de l'environnement réels du projet.
## Résultat
`0.1.1-alpha.3` est validée `PASS`.
La transition immédiate devient :
```text
0.1.1-alpha.3.fix.1
```
Le correctif reste local au contrat TypeScript/package et à son guide. Après son `PASS`, la trajectoire reprend avec `0.1.1-alpha.4` consacré à Vite.