0.1.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: CHANGELOG.md -->
|
||||
<!-- version: 12 -->
|
||||
<!-- version: 13 -->
|
||||
|
||||
# Changelog Project Governance Rules
|
||||
|
||||
@@ -7,7 +7,7 @@ Ce fichier décrit les changements utiles aux utilisateurs ou intégrateurs des
|
||||
|
||||
Les tranches `alpha`, `beta`, `rc`, fixes, validations, audits et détails de développement appartiennent aux plans, deltas et historiques. Ils ne sont pas recopiés ici par défaut.
|
||||
|
||||
## 0.1.1 (candidate)
|
||||
## 0.1.1
|
||||
|
||||
- établit une fondation frontend Web composable avec quatre owners indépendants : TypeScript, écosystème de package JavaScript, Vite et CSS/Sass, sans transformer un outil concret en obligation universelle ;
|
||||
- recommande TypeScript pour les frontends durables avec vérification stricte et `noEmit`, tout en distinguant les types embarqués des packages `@types/*` réellement nécessaires à l'analyse, à l'intégration IDE et aux API consommées ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: README.md -->
|
||||
<!-- version: 18 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# Project Governance Rules
|
||||
|
||||
@@ -11,9 +11,9 @@ Le dépôt officiel est `https://git.sasedev.com/Sasedev/pgr`.
|
||||
|
||||
## Statut
|
||||
|
||||
PGR a clôturé sa phase de fondation `0.0.x` et dispose avec `0.1.0` de sa première baseline réutilisable stable pour initialiser de nouveaux projets et adopter progressivement des projets existants.
|
||||
PGR a clôturé sa phase de fondation `0.0.x`, dispose avec `0.1.0` de sa première baseline réutilisable stable et avec `0.1.1` d’une fondation frontend Web stable, composable et indépendante du host.
|
||||
|
||||
La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La release `0.0.4` définit le contrat transversal des skeleton specifications, ajoute une fondation composable de gouvernance locale et une première spécialisation Rust/Cargo workspace fondée sur les profils `500 + 510` et les cinq templates existants. La release `0.0.5` réconcilie PGR avec les baselines réelles de `khadhroony-solana-project` et `sasedev-games` : prompts versionnés, contrats documentaires locaux, lifecycle inter-release, profil Rust strict et audits monotâches, premier profil Tauri 2 et décision explicite de différer son skeleton complet jusqu'à matérialisation d'owners Web suffisants. La release `0.1.0` stabilise la première baseline réutilisable : adoption `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, skeletons/templates Rust/Cargo exercés par dry-run, clôture `rel.N`, handoff opérateur automatique et trajectoire `0.1.1` à `0.1.7` issue d'une revue d'horizon explicite.
|
||||
La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La release `0.0.4` définit le contrat transversal des skeleton specifications, ajoute une fondation composable de gouvernance locale et une première spécialisation Rust/Cargo workspace fondée sur les profils `500 + 510` et les cinq templates existants. La release `0.0.5` réconcilie PGR avec les baselines réelles de `khadhroony-solana-project` et `sasedev-games` : prompts versionnés, contrats documentaires locaux, lifecycle inter-release, profil Rust strict et audits monotâches, premier profil Tauri 2 et décision explicite de différer son skeleton complet jusqu'à matérialisation d'owners Web suffisants. La release `0.1.0` stabilise la première baseline réutilisable : adoption `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, skeletons/templates Rust/Cargo exercés par dry-run, clôture `rel.N`, handoff opérateur automatique et trajectoire `0.1.1` à `0.1.7` issue d'une revue d'horizon explicite. La release `0.1.1` stabilise la fondation frontend Web : owners indépendants TypeScript/package/Vite/CSS-Sass, déclarations de types externes conditionnelles, package manager neutre, validation frontend indépendante du host et skeleton Web composable, tout en conservant le skeleton Tauri en `DEFER` jusqu’à son réexamen `0.1.4`.
|
||||
|
||||
## Entrées principales
|
||||
|
||||
@@ -30,7 +30,7 @@ La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` é
|
||||
- [`docs/plans/004-V0_0_4_SKELETONS_PLAN.md`](docs/plans/004-V0_0_4_SKELETONS_PLAN.md) — plan historique des skeleton specifications `0.0.4` ;
|
||||
- [`docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md`](docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md) — plan historique de réconciliation `0.0.5` ;
|
||||
- [`docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md`](docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md) — plan historique de la première baseline réutilisable `0.1.0` ;
|
||||
- [`docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md`](docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md) — plan actif de la fondation frontend Web contrôlée `0.1.1` ;
|
||||
- [`docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md`](docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md) — plan historique de la fondation frontend Web stable `0.1.1` ;
|
||||
- [`docs/studies/001-KSP_GAMES_RECONCILIATION.md`](docs/studies/001-KSP_GAMES_RECONCILIATION.md) — étude de réconciliation et classification des écarts entre PGR, KSP et Games ;
|
||||
- [`docs/skeletons/000-README.md`](docs/skeletons/000-README.md) — index des skeleton specifications et de leur contrat de composition ;
|
||||
- [`docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md`](docs/skeletons/001-PROJECT_GOVERNANCE_FOUNDATION.md) — fondation composable de gouvernance locale pour un projet adoptant PGR ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: ROADMAP.md -->
|
||||
<!-- version: 11 -->
|
||||
<!-- version: 12 -->
|
||||
|
||||
# Roadmap Project Governance Rules
|
||||
|
||||
@@ -23,7 +23,7 @@ Statuts : `( )` planifié, `(x)` terminé, `(d)` différé, `(c)` annulé.
|
||||
|
||||
La revue d'horizon de `0.1.0-beta.1` engage les releases suivantes, chacune avec un domaine cohérent et une session/release indépendante :
|
||||
|
||||
- `( ) 0.1.1` — fondation frontend Web : TypeScript, Vite, Sass/CSS, package/build outputs et validation frontend indépendante ;
|
||||
- `(x) 0.1.1` — fondation frontend Web : TypeScript, Vite, Sass/CSS, package/build outputs et validation frontend indépendante ;
|
||||
- `( ) 0.1.2` — réévaluation pratique du profil Java/Maven/Gradle existant et matérialisation des artefacts génériques réellement nécessaires ;
|
||||
- `( ) 0.1.3` — réévaluation pratique du profil Android existant à partir de Games, sans absorber les décisions propres aux jeux ou à SDL ;
|
||||
- `( ) 0.1.4` — domaine Tauri : réexamen du `DEFER` et matérialisation du skeleton contrôlé seulement si les owners Web issus de `0.1.1` satisfont réellement les conditions de sortie ;
|
||||
@@ -35,7 +35,7 @@ Le détail et les conditions de cette séquence sont conservés dans [`docs/stud
|
||||
|
||||
## Trajectoires différées ou non numérotées
|
||||
|
||||
- `(d) skeleton Tauri jusqu'au réexamen 0.1.4` — le `DEFER` de `0.0.5-alpha.9` reste actif pendant `0.1.1`; `0.1.1-beta.1` confirme que ses cinq prérequis Web disposent désormais d'owners PGR, mais seul `0.1.4` peut réexaminer le candidat à partir du corpus alors courant ;
|
||||
- `(d) skeleton Tauri jusqu'au réexamen 0.1.4` — le `DEFER` de `0.0.5-alpha.9` a été maintenu pendant `0.1.1`; `0.1.1-beta.1` confirme que ses cinq prérequis Web disposent désormais d'owners PGR, mais seul `0.1.4` peut réexaminer le candidat à partir du corpus alors courant ;
|
||||
- `WASM` — candidat séparé à réévaluer pendant l'adoption Games si un owner PGR apporte une valeur immédiate ;
|
||||
- `serveur Web Rust / Actix Web ou alternative` — candidat à partir d'un corpus d'implémentation réel, pas sur la seule base d'une trajectoire roadmap ;
|
||||
- `saselang-bible`, projets documentaires/spécifications et généricité hors logiciel — candidats d'une trajectoire ultérieure `0.2.x` / `0.3.x` à décider ;
|
||||
|
||||
252
deltas/0.1.1/rel.1.md
Normal file
252
deltas/0.1.1/rel.1.md
Normal file
@@ -0,0 +1,252 @@
|
||||
<!-- file: deltas/0.1.1/rel.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.1 rel.1 — promotion stable pré-tag
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline : `0.1.1-rc.1`, avec `history/0.1.1/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.1-rc.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.1
|
||||
```
|
||||
|
||||
`rel.1` identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.
|
||||
|
||||
## Objet
|
||||
|
||||
Promouvoir mécaniquement la RC validée vers la stable `0.1.1` sans rouvrir le scope fonctionnel.
|
||||
|
||||
La tranche finalise uniquement la présentation et les métadonnées de release : version stable, roadmap terminée, changelog sans marqueur `candidate`, README/index en état stable et plan `007` historique. Aucun owner, profil, template, skeleton, validation, étude technique ou script d'audit n'est modifié.
|
||||
|
||||
La validation de cette tranche est **pré-tag**. Le tag `v0.1.1`, son archive source Gitea et le rapport `pgr-0.1.1-publish.001-report.md` ne sont pas déclarés existants par ce delta. Ils suivent uniquement un history `rel.1` `PASS`, le commit stable `0.1.1` et la publication réelle du tag.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/000-README.md
|
||||
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.1/rel.1.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Le history `rc.1` est livré séparément. Le history `rel.1` sera produit uniquement après la gate opérateur.
|
||||
|
||||
## Validation opérateur pré-tag
|
||||
|
||||
Après application sur le commit contenant `history/0.1.1/rc.1.md` :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.1.1'
|
||||
git cat-file -e HEAD:history/0.1.1/rc.1.md
|
||||
test -f history/0.1.1/rc.1.md
|
||||
test -f deltas/0.1.1/rel.1.md
|
||||
test -f prompts/008-V0_1_2_START_PROMPT.md
|
||||
test ! -e history/0.1.1/rel.1.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.1.1/rc.1.md | grep -Fx 'PASS'
|
||||
grep -Fx '<!-- version: 19 -->' README.md
|
||||
grep -Fx '<!-- version: 12 -->' ROADMAP.md
|
||||
grep -Fx '<!-- version: 13 -->' CHANGELOG.md
|
||||
grep -Fx '<!-- version: 31 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 11 -->' docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||
grep -F -- '- `(x) 0.1.1`' ROADMAP.md
|
||||
grep -Fx '## 0.1.1' CHANGELOG.md
|
||||
grep -F 'fondation frontend Web stable' README.md
|
||||
grep -F 'plan historique de la stable `0.1.1`' docs/000-README.md
|
||||
|
||||
python3 -B - <<'PYGATE'
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
expected = {
|
||||
"alpha.1.md": "PASS",
|
||||
"alpha.2.md": "FAIL",
|
||||
"alpha.2.fix.1.md": "PASS",
|
||||
"alpha.3.md": "PASS",
|
||||
"alpha.3.fix.1.md": "FAIL",
|
||||
"alpha.3.fix.2.md": "PASS",
|
||||
"alpha.4.md": "PASS",
|
||||
"alpha.5.md": "PASS",
|
||||
"beta.1.md": "PASS",
|
||||
"rc.1.md": "PASS",
|
||||
}
|
||||
|
||||
for name, status in expected.items():
|
||||
delta = Path("deltas/0.1.1", name)
|
||||
history = Path("history/0.1.1", name)
|
||||
assert delta.is_file(), name
|
||||
assert history.is_file(), name
|
||||
text = history.read_text(encoding="utf-8")
|
||||
assert re.search(rf"## Statut\s+{status}\s", text), (name, status)
|
||||
|
||||
pending = {path.name for path in Path("deltas/0.1.1").glob("*.md")} - {
|
||||
path.name for path in Path("history/0.1.1").glob("*.md")
|
||||
}
|
||||
assert pending == {"rel.1.md"}, pending
|
||||
|
||||
roadmap = Path("ROADMAP.md").read_text(encoding="utf-8")
|
||||
assert "- `(x) 0.1.1`" in roadmap
|
||||
for version in ("0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7"):
|
||||
assert f"- `( ) {version}`" in roadmap, version
|
||||
assert "- `( ) 0.1.8`" not in roadmap
|
||||
assert "skeleton Tauri jusqu'au réexamen 0.1.4" in roadmap
|
||||
|
||||
changelog = Path("CHANGELOG.md").read_text(encoding="utf-8")
|
||||
assert "## 0.1.1" in changelog.splitlines()
|
||||
assert "## 0.1.1 (candidate)" not in changelog
|
||||
section = changelog.split("## 0.1.1", 1)[1].split("## 0.1.0", 1)[0]
|
||||
for forbidden in ("alpha.2", "alpha.3", "alpha.4", "alpha.5", "beta.1", "rc.1", "rel.1"):
|
||||
assert forbidden not in section, forbidden
|
||||
|
||||
readme = Path("README.md").read_text(encoding="utf-8")
|
||||
assert "fondation frontend Web stable" in readme
|
||||
assert "plan historique de la fondation frontend Web stable `0.1.1`" in readme
|
||||
|
||||
index = Path("docs/000-README.md").read_text(encoding="utf-8")
|
||||
assert "plan historique de la stable `0.1.1`" in index
|
||||
assert "à utiliser seulement après publication et vérification post-tag de `0.1.1`" in index
|
||||
|
||||
plan = Path("docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md").read_text(encoding="utf-8")
|
||||
assert "### rc.1 — release candidate\n\nStatut opérateur : **PASS**." in plan
|
||||
assert "history/0.1.1/rel.1.md" in plan
|
||||
assert "pgr-0.1.1-publish.001-report.md" in plan
|
||||
assert "commit `0.1.1` avant le tag `v0.1.1`" in plan
|
||||
|
||||
prompt = Path("prompts/008-V0_1_2_START_PROMPT.md").read_text(encoding="utf-8")
|
||||
assert "tag Gitea `v0.1.1`" in prompt
|
||||
assert "pgr-0.1.1-publish.001-report.md" in prompt
|
||||
assert "0.1.2-alpha.1" in prompt
|
||||
|
||||
for path, version in (
|
||||
("docs/rules/530-TYPESCRIPT.md", 3),
|
||||
("docs/rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md", 3),
|
||||
("docs/rules/550-VITE.md", 2),
|
||||
("docs/rules/560-CSS_SASS.md", 2),
|
||||
("docs/rules/710-TAURI.md", 6),
|
||||
("docs/skeletons/003-WEB_FRONTEND.md", 1),
|
||||
("docs/validation/005-WEB_FRONTEND_VALIDATION.md", 1),
|
||||
("docs/studies/002-TAURI_SKELETON_DECISION.md", 2),
|
||||
):
|
||||
lines = Path(path).read_text(encoding="utf-8").splitlines()
|
||||
assert lines[1] == f"<!-- version: {version} -->", (path, lines[1])
|
||||
|
||||
workflow = Path("docs/rules/210-WORKFLOW.md").read_text(encoding="utf-8")
|
||||
assert "history rel.1 FAIL / PARTIAL / BLOCKED" in workflow
|
||||
assert "premier history rel.N[/fix.M] PASS qui établit réellement la stable" in workflow
|
||||
assert "commit X.Y.Z" in workflow
|
||||
|
||||
print("0.1.1 rel.1 stable gate audit: clean (10 prior histories, rel.1 pending, stable Web presentation and post-tag handoff coherent)")
|
||||
PYGATE
|
||||
|
||||
python3 -B -m unittest discover -s tests -v
|
||||
|
||||
python3 -B scripts/audit_markdown_headers.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
python3 -B scripts/audit_markdown_tables.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
python3 -B scripts/audit_markdown_links.py \
|
||||
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
||||
|
||||
python3 -B - <<'PYHYGIENE'
|
||||
from pathlib import Path
|
||||
import json
|
||||
|
||||
json.loads(Path("templates/web-typescript/package.json").read_text(encoding="utf-8"))
|
||||
json.loads(Path("templates/web-typescript/tsconfig.json").read_text(encoding="utf-8"))
|
||||
|
||||
roots = (
|
||||
Path("VERSION"), Path("README.md"), Path("RULES.md"), Path("ROADMAP.md"), Path("CHANGELOG.md"),
|
||||
Path("docs"), Path("deltas"), Path("history"), Path("prompts"), Path("templates"),
|
||||
)
|
||||
files = []
|
||||
for root in roots:
|
||||
if root.is_file():
|
||||
files.append(root)
|
||||
elif root.is_dir():
|
||||
files.extend(path for path in root.rglob("*") if path.is_file())
|
||||
for path in files:
|
||||
try:
|
||||
data = path.read_bytes()
|
||||
text = data.decode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
continue
|
||||
assert b"\r" not in data, path
|
||||
assert text.endswith("\n"), path
|
||||
for number, line in enumerate(text.splitlines(), 1):
|
||||
assert line == line.rstrip(" \t"), (path, number)
|
||||
print("0.1.1 rel.1 text/JSON hygiene: clean")
|
||||
PYHYGIENE
|
||||
|
||||
git diff --check
|
||||
git add VERSION README.md ROADMAP.md CHANGELOG.md docs/000-README.md \
|
||||
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md \
|
||||
deltas/0.1.1/rel.1.md
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
Le scope attendu avant ajout du history est exactement :
|
||||
|
||||
```text
|
||||
M CHANGELOG.md
|
||||
M README.md
|
||||
M ROADMAP.md
|
||||
M VERSION
|
||||
A deltas/0.1.1/rel.1.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||
```
|
||||
|
||||
La RC a déjà reconfirmé le dry-run structurel Web, les owners gelés et le contrat du prompt `008`. Comme `rel.1` ne modifie aucun artefact technique frontend, la promotion stable ne simule pas de nouvelle exécution `tsc`/Vite/Sass sans projet concret ; elle rejoue les tests PGR, les audits documentaires et l'hygiène des artefacts.
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
Confirmer que :
|
||||
|
||||
- le scope fonctionnel de `rc.1` ne change pas ;
|
||||
- `0.1.1` est présenté comme stable de manière cohérente dans VERSION/README/ROADMAP/CHANGELOG/index/plan ;
|
||||
- les `FAIL` historiques `alpha.2` et `alpha.3.fix.1` restent conservés avec leurs fixes `PASS` ;
|
||||
- les owners Web `530/540/550/560`, le skeleton Web et la validation Web restent gelés ;
|
||||
- le skeleton Tauri reste `DEFER` jusqu'au réexamen `0.1.4` ;
|
||||
- la roadmap engagée `0.1.2` à `0.1.7` reste intacte sans `0.1.8` ;
|
||||
- le prompt `008` reste conditionnel à une vraie publication de `v0.1.1` et à un rapport post-tag `PASS` réel ;
|
||||
- aucune preuve post-tag n'est anticipée.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire séparément `history/0.1.1/rel.1.md`, l'appliquer, puis créer le commit stable sous le message exact :
|
||||
|
||||
```text
|
||||
0.1.1
|
||||
```
|
||||
|
||||
Après push de la branche canonique, créer et publier le tag annoté `v0.1.1`. Vérifier localement et à distance l'objet tag et son commit déréférencé. Télécharger ensuite l'archive source depuis le tag Gitea et la fournir au générateur avec les sorties Git de publication afin de produire `pgr-0.1.1-publish.001-report.md` à partir de preuves réelles.
|
||||
|
||||
Le prompt `008-V0_1_2_START_PROMPT.md` ne devient la reprise effective de `0.1.2` qu'après un rapport post-tag `PASS`.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le diagnostic réel dans `history/0.1.1/rel.1.md`, ne pas créer le tag et corriger uniquement la fermeture dans `rel.1.fix.1` avant toute publication.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 30 -->
|
||||
<!-- version: 31 -->
|
||||
|
||||
# Documentation PGR
|
||||
|
||||
@@ -22,7 +22,7 @@ Les templates techniques copiables sous `templates/` restent séparés des instr
|
||||
|
||||
## Points d'entrée de 0.1.1
|
||||
|
||||
- [`plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md`](plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md) — plan actif de la fondation frontend Web contrôlée, de l'audit des corpus à la séparation TypeScript/Vite/styles/package/validation.
|
||||
- [`plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md`](plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md) — plan historique de la stable `0.1.1`, de l'audit des corpus à la fondation Web composable et à la préparation du futur réexamen Tauri.
|
||||
- [`rules/530-TYPESCRIPT.md`](rules/530-TYPESCRIPT.md), [`rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md`](rules/540-JAVASCRIPT_PACKAGE_ECOSYSTEM.md), [`rules/550-VITE.md`](rules/550-VITE.md) et [`rules/560-CSS_SASS.md`](rules/560-CSS_SASS.md) — owners frontend matérialisés par `0.1.1-alpha.2`, séparant langage typé, écosystème de package, build tool et styles.
|
||||
- [`templates/008-WEB_TYPESCRIPT_PACKAGE.md`](templates/008-WEB_TYPESCRIPT_PACKAGE.md) — adaptation de la baseline minimale `package.json` + `tsconfig.json` de `alpha.3`, sans package manager, versions ou bundler imposés.
|
||||
- [`templates/009-WEB_VITE.md`](templates/009-WEB_VITE.md) — guide d'adaptation Vite de `alpha.4` : root, dev server, cache, outputs, assets et scripts sans imposer de layout ni de port universels.
|
||||
@@ -32,7 +32,7 @@ Les templates techniques copiables sous `templates/` restent séparés des instr
|
||||
- [`studies/002-TAURI_SKELETON_DECISION.md`](studies/002-TAURI_SKELETON_DECISION.md) — décision `DEFER` conservée ; `beta.1` vérifie que ses cinq prérequis Web sont désormais couverts et prépare leur réexamen objectif en `0.1.4` sans créer le skeleton Tauri.
|
||||
- [`studies/003-V0_1_0_HORIZON_REVIEW.md`](studies/003-V0_1_0_HORIZON_REVIEW.md) — revue ayant engagé `0.1.1` à `0.1.7` et maintenu WASM, serveur Rust et deployment sans réservation prématurée.
|
||||
- [`../prompts/007-V0_1_1_START_PROMPT.md`](../prompts/007-V0_1_1_START_PROMPT.md) — contrat de reprise autoritaire de la release `0.1.1`.
|
||||
- [`../prompts/008-V0_1_2_START_PROMPT.md`](../prompts/008-V0_1_2_START_PROMPT.md) — prompt préparé en RC pour réévaluer Java/Maven/Gradle en `0.1.2` après publication et vérification post-tag de `0.1.1`, avec frontière Android explicite.
|
||||
- [`../prompts/008-V0_1_2_START_PROMPT.md`](../prompts/008-V0_1_2_START_PROMPT.md) — prompt de reprise préparé pour réévaluer Java/Maven/Gradle en `0.1.2`, à utiliser seulement après publication et vérification post-tag de `0.1.1`, avec frontière Android explicite.
|
||||
|
||||
## Points d'entrée de 0.1.0
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md -->
|
||||
<!-- version: 10 -->
|
||||
<!-- version: 11 -->
|
||||
|
||||
# Plan 0.1.1 — fondation frontend Web contrôlée
|
||||
|
||||
@@ -447,19 +447,19 @@ Si une responsabilité Web nécessaire reste sans owner clair, effectuer un REPL
|
||||
|
||||
### rc.1 — release candidate
|
||||
|
||||
Statut opérateur : **à valider**.
|
||||
Statut opérateur : **PASS**.
|
||||
|
||||
Geler le scope sur les owners `530/540/550/560`, les guides `008/009/010`, la validation `005`, le skeleton `003` et la preuve de préparation Tauri obtenue en `beta.1`.
|
||||
La gate opérateur a confirmé les neuf histories antérieurs avec leurs statuts réels, le scope Web gelé, le changelog candidat, le prompt `008`, le dry-run structurel du skeleton Web, les `48/48` tests, les trois audits Markdown et l'hygiène texte/JSON. Aucun owner, template technique, skeleton, validation ou étude technique n'a été modifié pendant la RC.
|
||||
|
||||
Mettre à jour le `CHANGELOG.md` candidat, rejouer un release gate proportionnel complet, vérifier l'intégrité des histories de `0.1.1` et préparer `prompts/008-V0_1_2_START_PROMPT.md` puisque la roadmap engage toujours `0.1.2` sur la réévaluation Java/Maven/Gradle.
|
||||
|
||||
Le prompt `008` doit imposer la séparation Java/Gradle générique versus Android : le profil `520` est réévalué à partir du corpus Games, tandis qu'AGP, SDK Android, JNI/ABI et packaging APK/AAB restent hors scope et réservés à `0.1.3`. Maven reste dans l'owner `520`, mais aucun artefact Maven nouveau ne doit être créé en `0.1.2` sans corpus ou besoin réel.
|
||||
|
||||
Aucune nouvelle fonctionnalité normative ne doit apparaître en RC.
|
||||
Le prompt `008-V0_1_2_START_PROMPT.md` conserve la séparation Java/Gradle générique versus Android : le profil `520` sera réévalué à partir du corpus Games, tandis qu'AGP, SDK Android, JNI/ABI et packaging APK/AAB restent hors scope et réservés à `0.1.3`.
|
||||
|
||||
### rel.1 — promotion stable
|
||||
|
||||
Promouvoir mécaniquement la RC validée vers `0.1.1`, clôturer roadmap/plan/changelog, produire le history réel, committer la stable sous `0.1.1`, puis seulement tagger `v0.1.1` et effectuer la vérification post-tag `publish.001`.
|
||||
Première clôture stable de `0.1.1`. La promotion est strictement mécanique : `VERSION = 0.1.1`, `ROADMAP.md` marque `0.1.1` terminée, le `CHANGELOG` perd son marqueur `candidate`, README/index décrivent la fondation frontend Web comme stable et le présent plan devient historique. Aucun owner, profil, template, skeleton, validation, étude ou script technique n'est modifié.
|
||||
|
||||
Le résultat opérateur de cette tranche appartient à `history/0.1.1/rel.1.md`, créé seulement après exécution de la gate. Si `rel.1` échoue, son history est conservé et un `rel.1.fix.N` corrige uniquement la fermeture ; la première tranche qui établit réellement la stable est incluse dans le commit `0.1.1` avant le tag `v0.1.1`.
|
||||
|
||||
La vérification post-tag reste séparée : `pgr-0.1.1-publish.001-report.md` ne peut être produit qu'à partir de l'archive du tag réellement publiée et des preuves Git observées. Le prompt `008` ne devient le point de départ effectif de `0.1.2` qu'après cette preuve post-tag `PASS`.
|
||||
|
||||
## Stratégie de validation
|
||||
|
||||
|
||||
156
history/0.1.1/rel.1.md
Normal file
156
history/0.1.1/rel.1.md
Normal file
@@ -0,0 +1,156 @@
|
||||
<!-- file: history/0.1.1/rel.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# History 0.1.1-rel.1 — promotion stable pré-tag
|
||||
|
||||
## Statut
|
||||
|
||||
PASS
|
||||
|
||||
La gate opérateur de `0.1.1-rel.1` exécutée le `2026-09-27` a réussi. Elle confirme la promotion mécanique de la release candidate vers la stable `0.1.1`, la cohérence des histories antérieurs, la présentation stable du dépôt, les tests PGR, les audits documentaires et l'hygiène texte/JSON avant création du tag.
|
||||
|
||||
## Baseline opérateur
|
||||
|
||||
La tranche `0.1.1-rc.1` a été clôturée avec son history `PASS`, puis committée et poussée avant application de `rel.1` :
|
||||
|
||||
```text
|
||||
commit fbde0c2
|
||||
message 0.1.1-rc.1
|
||||
push origin/master PASS
|
||||
```
|
||||
|
||||
Après application du delta `rel.1`, les contrôles initiaux ont confirmé :
|
||||
|
||||
```text
|
||||
VERSION 0.1.1
|
||||
history/0.1.1/rc.1.md présent dans HEAD et le workspace
|
||||
deltas/0.1.1/rel.1.md présent
|
||||
prompts/008-V0_1_2_START_PROMPT.md présent
|
||||
history/0.1.1/rel.1.md absent pendant la gate
|
||||
README.md version 19
|
||||
ROADMAP.md version 12
|
||||
CHANGELOG.md version 13
|
||||
docs/000-README.md version 31
|
||||
docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md version 11
|
||||
```
|
||||
|
||||
Le premier contrôle de `VERSION` a été saisi par erreur avec `est` au lieu de `test`, ce que Bash a rejeté comme commande inconnue. La commande exacte a ensuite été rejouée sans modification du workspace :
|
||||
|
||||
```text
|
||||
test "$(cat VERSION)" = '0.1.1'
|
||||
echo $?
|
||||
0
|
||||
```
|
||||
|
||||
Cette faute de frappe opérateur ne constitue pas un défaut du delta ni de la gate ; la condition de version est donc confirmée.
|
||||
|
||||
La présentation stable est établie :
|
||||
|
||||
```text
|
||||
ROADMAP.md 0.1.1 marqué terminé
|
||||
CHANGELOG.md entrée `## 0.1.1`
|
||||
README.md fondation frontend Web stable
|
||||
docs index plan 007 classé historique
|
||||
```
|
||||
|
||||
## Gate stable pré-tag
|
||||
|
||||
Le contrôle structurel a affiché :
|
||||
|
||||
```text
|
||||
0.1.1 rel.1 stable gate audit: clean (10 prior histories, rel.1 pending, stable Web presentation and post-tag handoff coherent)
|
||||
```
|
||||
|
||||
Il a vérifié les dix histories antérieurs avec leurs statuts réels :
|
||||
|
||||
```text
|
||||
alpha.1 PASS
|
||||
alpha.2 FAIL
|
||||
alpha.2.fix.1 PASS
|
||||
alpha.3 PASS
|
||||
alpha.3.fix.1 FAIL
|
||||
alpha.3.fix.2 PASS
|
||||
alpha.4 PASS
|
||||
alpha.5 PASS
|
||||
beta.1 PASS
|
||||
rc.1 PASS
|
||||
```
|
||||
|
||||
Avant application du présent history, `rel.1.md` est la seule tranche `0.1.1` possédant un delta sans history.
|
||||
|
||||
La gate reconfirme également :
|
||||
|
||||
- `0.1.1` terminé dans la roadmap ;
|
||||
- `0.1.2` à `0.1.7` engagés sans réservation de `0.1.8` ;
|
||||
- le `CHANGELOG` stable sans suffixe `(candidate)` ;
|
||||
- le plan `007` classé historique ;
|
||||
- les owners Web `530/540/550/560`, le skeleton Web et la validation Web gelés depuis la RC ;
|
||||
- le skeleton Tauri toujours `DEFER` jusqu'au réexamen `0.1.4` ;
|
||||
- le prompt `008` préparé pour démarrer `0.1.2` uniquement depuis le tag réel `v0.1.1` et un rapport post-tag `publish.001` `PASS` ;
|
||||
- la convention `rel.N` et le commit stable final `X.Y.Z`.
|
||||
|
||||
## Validation frontend et dry-run
|
||||
|
||||
Les preuves frontend structurelles et le dry-run du skeleton Web ont été rejoués pendant `beta.1` et `rc.1`.
|
||||
|
||||
Ils n'ont pas été prétendus comme une exécution réelle de `tsc`, Vite ou Sass pendant `rel.1`, car la promotion stable ne modifie aucun owner, template, skeleton, validation ou artefact frontend depuis la RC et PGR ne contient volontairement pas d'instanciation frontend concrète avec ses dépendances.
|
||||
|
||||
## Tests et audits PGR
|
||||
|
||||
La suite Python globale a exécuté `48` tests, tous réussis :
|
||||
|
||||
```text
|
||||
Ran 48 tests in 0.762s
|
||||
|
||||
OK
|
||||
```
|
||||
|
||||
Les audits documentaires sont propres :
|
||||
|
||||
```text
|
||||
Markdown header audit: clean (230 file(s))
|
||||
Markdown table audit: clean (9 table(s), 230 file(s))
|
||||
Markdown link audit: clean (267 local link(s), 230 file(s))
|
||||
```
|
||||
|
||||
L'hygiène texte/JSON a également affiché :
|
||||
|
||||
```text
|
||||
0.1.1 rel.1 text/JSON hygiene: clean
|
||||
```
|
||||
|
||||
Les templates JSON Web ont été parsés avec succès et aucun défaut CR, fin de fichier ou whitespace final n'a été détecté dans le corpus contrôlé.
|
||||
|
||||
## Contrôles Git
|
||||
|
||||
`git diff --check` et `git diff --cached --check` n'ont produit aucun diagnostic.
|
||||
|
||||
Le statut indexé transmis avant ajout du présent history est exactement :
|
||||
|
||||
```text
|
||||
M CHANGELOG.md
|
||||
M README.md
|
||||
M ROADMAP.md
|
||||
M VERSION
|
||||
A deltas/0.1.1/rel.1.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/007-V0_1_1_WEB_FRONTEND_FOUNDATION_PLAN.md
|
||||
```
|
||||
|
||||
Le scope correspond exactement à la promotion stable annoncée. Aucun owner, profil, template, skeleton, validation, étude technique ou script d'audit n'a été modifié.
|
||||
|
||||
## Décision
|
||||
|
||||
`0.1.1-rel.1` est `PASS`. Aucun fix ni REPLAN n'est requis.
|
||||
|
||||
Conformément à la convention stable PGR, le présent history doit être inclus dans le commit final nommé exactement :
|
||||
|
||||
```text
|
||||
0.1.1
|
||||
```
|
||||
|
||||
Le commit stable doit être poussé sur `origin/master` avant création du tag annoté `v0.1.1`.
|
||||
|
||||
Le rapport `pgr-0.1.1-publish.001-report.md` ne pourra être produit qu'après réception des preuves post-publication réelles : identité du commit stable, propreté du workspace, objet et cible déréférencée du tag local, références distantes du tag et archive ZIP téléchargée depuis le tag Gitea.
|
||||
|
||||
Le prompt `008-V0_1_2_START_PROMPT.md` ne devient la reprise effective de `0.1.2` qu'après un rapport post-tag `PASS`.
|
||||
Reference in New Issue
Block a user