0.1.3
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: CHANGELOG.md -->
|
||||
<!-- version: 16 -->
|
||||
<!-- version: 17 -->
|
||||
|
||||
# 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.3 (candidate)
|
||||
## 0.1.3
|
||||
|
||||
- réévalue le profil Android contre le corpus Games réel tout en conservant Android neutre vis-à-vis du langage applicatif et en composant Java/Gradle uniquement lorsqu'ils sont réellement présents ;
|
||||
- clarifie les responsabilités `compileSdk` / `targetSdk` / `minSdk`, l'identité `namespace` / `applicationId`, la configuration locale, le signing et les manifests/resources sans promouvoir les valeurs particulières de Games ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: README.md -->
|
||||
<!-- version: 24 -->
|
||||
<!-- version: 25 -->
|
||||
|
||||
# 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`, dispose avec `0.1.0` de sa première baseline réutilisable stable, avec `0.1.1` d’une fondation frontend Web stable et avec `0.1.2` d’owners Java, Maven et Gradle séparés et composables après réévaluation du corpus Games. La release `0.1.3-beta.1` réconcilie maintenant le profil Android révisé contre Games et les owners PGR existants : les choix locaux Games restent locaux, les contraintes natives restent conditionnelles et aucun artefact Android supplémentaire n’est ajouté sans besoin démontré. Tauri reste réservé à `0.1.4` et l’adoption Games à `0.1.5`.
|
||||
PGR a clôturé sa phase de fondation `0.0.x`, dispose avec `0.1.0` de sa première baseline réutilisable stable, avec `0.1.1` d’une fondation frontend Web stable, avec `0.1.2` d’owners Java, Maven et Gradle séparés et composables, et avec `0.1.3` d’un profil Android réévalué contre Games sans généraliser ses choix locaux. Les contrats SDK, identité, natif/ABI, Lint, tests, packaging et 16 KB sont désormais bornés par leur applicabilité réelle. Tauri reste réservé à `0.1.4` et l’adoption Games à `0.1.5`.
|
||||
|
||||
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`. La release `0.1.2` stabilise trois owners indépendants `520-JAVA`, `521-MAVEN` et `522-GRADLE`, clarifie JDK/source/bytecode et l'ownership Gradle, conserve Maven cohérent sans corpus artificiel et maintient les responsabilités Android dans `610-ANDROID.md` pour leur réévaluation distincte en `0.1.3`.
|
||||
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`. La release `0.1.2` stabilise trois owners indépendants `520-JAVA`, `521-MAVEN` et `522-GRADLE`, clarifie JDK/source/bytecode et l'ownership Gradle, conserve Maven cohérent sans corpus artificiel et maintient les responsabilités Android dans `610-ANDROID.md` pour leur réévaluation distincte en `0.1.3`. La release `0.1.3` stabilise le profil Android générique : séparation des responsabilités SDK et identité applicative, contraintes natives conditionnelles, Android Lint explicite, niveaux de tests distincts, frontières APK/AAB et compatibilité 16 KB liée au code natif et au canal de distribution, sans imposer les versions ou ABI propres à Games.
|
||||
|
||||
## Entrées principales
|
||||
|
||||
@@ -32,7 +32,7 @@ La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` é
|
||||
- [`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 historique de la fondation frontend Web stable `0.1.1` ;
|
||||
- [`docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md`](docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md) — plan historique de la stable `0.1.2` : réévaluation Games, scission Java/Maven/Gradle et maintien d'Android hors scope ;
|
||||
- [`docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan actif de la réévaluation pratique Android `0.1.3`, fondé sur Games avec classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` ;
|
||||
- [`docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan historique de la stable Android `0.1.3`, fondée sur Games avec classification `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` ;
|
||||
- [`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: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Roadmap Project Governance Rules
|
||||
|
||||
@@ -25,7 +25,7 @@ La revue d'horizon de `0.1.0-beta.1` engage les releases suivantes, chacune avec
|
||||
|
||||
- `(x) 0.1.1` — fondation frontend Web : TypeScript, Vite, Sass/CSS, package/build outputs et validation frontend indépendante ;
|
||||
- `(x) 0.1.2` — réévaluation pratique de Java/Maven/Gradle, séparation des owners lorsque leurs applicabilités divergent et matérialisation uniquement 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 ;
|
||||
- `(x) 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 ;
|
||||
- `( ) 0.1.5` — adoption réelle de PGR par `sasedev-games` avec mapping `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER` ;
|
||||
- `( ) 0.1.6` — adoption réelle de PGR par `khadhroony-solana-project`, principalement sur Rust/Cargo + Tauri et sans dépendance aux profils non applicables ;
|
||||
|
||||
288
deltas/0.1.3/rel.1.md
Normal file
288
deltas/0.1.3/rel.1.md
Normal file
@@ -0,0 +1,288 @@
|
||||
<!-- file: deltas/0.1.3/rel.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.3 rel.1 — promotion stable pré-tag
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline : `0.1.3-rc.1`, avec `history/0.1.3/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.3-rc.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.3
|
||||
```
|
||||
|
||||
`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.3` 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 `009` historique. Aucun owner Android/Java/Gradle/Tauri, template, skeleton, validation, étude technique ou script d'audit n'est modifié.
|
||||
|
||||
La validation de cette tranche est **pré-tag**. Le tag `v0.1.3`, son archive source Gitea et le rapport `pgr-0.1.3-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.3` et la publication réelle du tag.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/000-README.md
|
||||
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.3/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.3/rc.1.md` :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.1.3'
|
||||
git cat-file -e HEAD:history/0.1.3/rc.1.md
|
||||
test -f history/0.1.3/rc.1.md
|
||||
test -f deltas/0.1.3/rel.1.md
|
||||
test -f prompts/010-V0_1_4_START_PROMPT.md
|
||||
test ! -e history/0.1.3/rel.1.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.1.3/rc.1.md | grep -Fx 'PASS'
|
||||
grep -Fx '<!-- version: 25 -->' README.md
|
||||
grep -Fx '<!-- version: 15 -->' ROADMAP.md
|
||||
grep -Fx '<!-- version: 17 -->' CHANGELOG.md
|
||||
grep -Fx '<!-- version: 40 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 6 -->' docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
||||
grep -F -- '- `(x) 0.1.3`' ROADMAP.md
|
||||
grep -Fx '## 0.1.3' CHANGELOG.md
|
||||
grep -F 'avec `0.1.3` d’un profil Android réévalué contre Games' README.md
|
||||
grep -F 'plan historique de la stable `0.1.3`' docs/000-README.md
|
||||
|
||||
python3 -B - <<'PYGATE'
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
expected = {
|
||||
"alpha.1.md": "PASS",
|
||||
"alpha.2.md": "PASS",
|
||||
"alpha.3.md": "PASS",
|
||||
"beta.1.md": "PASS",
|
||||
"rc.1.md": "PASS",
|
||||
}
|
||||
|
||||
for name, status in expected.items():
|
||||
delta = Path("deltas/0.1.3", name)
|
||||
history = Path("history/0.1.3", 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.3").glob("*.md")} - {
|
||||
path.name for path in Path("history/0.1.3").glob("*.md")
|
||||
}
|
||||
assert pending == {"rel.1.md"}, pending
|
||||
|
||||
roadmap = Path("ROADMAP.md").read_text(encoding="utf-8")
|
||||
assert "- `(x) 0.1.3`" in roadmap
|
||||
for version in ("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.3" in changelog.splitlines()
|
||||
assert "## 0.1.3 (candidate)" not in changelog
|
||||
section = changelog.split("## 0.1.3", 1)[1].split("## 0.1.2", 1)[0]
|
||||
for phrase in (
|
||||
"profil Android",
|
||||
"compileSdk",
|
||||
"targetSdk",
|
||||
"minSdk",
|
||||
"namespace",
|
||||
"applicationId",
|
||||
"NDK",
|
||||
"Android Lint",
|
||||
"tests instrumentés",
|
||||
"APK/AAB",
|
||||
"16 KB",
|
||||
"0.1.4",
|
||||
"0.1.5",
|
||||
):
|
||||
assert phrase in section, phrase
|
||||
for forbidden in ("alpha.1", "alpha.2", "alpha.3", "beta.1", "rc.1", "rel.1"):
|
||||
assert forbidden not in section, forbidden
|
||||
|
||||
readme = Path("README.md").read_text(encoding="utf-8")
|
||||
assert "avec `0.1.3` d’un profil Android réévalué contre Games" in readme
|
||||
assert "plan historique de la stable Android `0.1.3`" in readme
|
||||
|
||||
index = Path("docs/000-README.md").read_text(encoding="utf-8")
|
||||
assert "plan historique de la stable `0.1.3`" in index
|
||||
assert "à exécuter uniquement après publication et vérification post-tag de `v0.1.3`" in index
|
||||
|
||||
plan = Path("docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md").read_text(encoding="utf-8")
|
||||
assert "Plan 0.1.3 — réévaluation pratique Android" in plan
|
||||
assert "### rc.1 — release candidate\n\nStatut opérateur : **PASS**." in plan
|
||||
assert "history/0.1.3/rel.1.md" in plan
|
||||
assert "pgr-0.1.3-publish.001-report.md" in plan
|
||||
assert "commit `0.1.3` avant le tag `v0.1.3`" in plan
|
||||
assert "plan historique de la stable `0.1.3`" in plan
|
||||
|
||||
prompt = Path("prompts/010-V0_1_4_START_PROMPT.md").read_text(encoding="utf-8")
|
||||
for phrase in (
|
||||
"tag Gitea `v0.1.3`",
|
||||
"pgr-0.1.3-publish.001-report.md",
|
||||
"0.1.4-alpha.1",
|
||||
"002-TAURI_SKELETON_DECISION.md",
|
||||
"710-TAURI.md",
|
||||
"003-WEB_FRONTEND",
|
||||
"ADOPT / KEEP-LOCAL / OVERRIDE / DEFER",
|
||||
"adoption Games `0.1.5`",
|
||||
"adoption KSP `0.1.6`",
|
||||
):
|
||||
assert phrase in prompt, phrase
|
||||
|
||||
for path, version in (
|
||||
("docs/rules/400-VALIDATION.md", 1),
|
||||
("docs/rules/520-JAVA.md", 4),
|
||||
("docs/rules/522-GRADLE.md", 1),
|
||||
("docs/rules/600-PLATFORMS.md", 1),
|
||||
("docs/rules/610-ANDROID.md", 5),
|
||||
("docs/rules/710-TAURI.md", 6),
|
||||
("docs/studies/002-TAURI_SKELETON_DECISION.md", 2),
|
||||
("docs/skeletons/003-WEB_FRONTEND.md", 1),
|
||||
("docs/validation/005-WEB_FRONTEND_VALIDATION.md", 1),
|
||||
):
|
||||
lines = Path(path).read_text(encoding="utf-8").splitlines()
|
||||
assert lines[1] == f"<!-- version: {version} -->", (path, lines[1])
|
||||
|
||||
android = Path("docs/rules/610-ANDROID.md").read_text(encoding="utf-8")
|
||||
for phrase in (
|
||||
"Android ne sélectionne pas à lui seul le langage applicatif du projet.",
|
||||
"Le choix de `minSdk` MUST être justifié par le contrat produit",
|
||||
"PGR ne fixe ni version NDK ni liste universelle d'ABI.",
|
||||
"PGR MUST NOT supposer qu'un build Gradle ordinaire exécute Lint automatiquement.",
|
||||
"Un AAB n'est pas directement une preuve d'installation ou d'exécution sur device.",
|
||||
"## Pages mémoire 16 KB et packaging natif",
|
||||
"PGR MUST NOT imposer une version AGP/NDK globale uniquement pour cette raison.",
|
||||
):
|
||||
assert phrase in android, phrase
|
||||
for forbidden in (
|
||||
"targetSdk MUST être 36",
|
||||
"minSdk MUST être 21",
|
||||
"NDK MUST être r28",
|
||||
"MUST supporter arm64-v8a, armeabi-v7a, x86_64 et x86",
|
||||
"Gradle MUST être 9.7.1",
|
||||
"AGP MUST être 9.4.0",
|
||||
"JDK MUST être 25",
|
||||
):
|
||||
assert forbidden not in android, forbidden
|
||||
|
||||
for forbidden_path in (
|
||||
"docs/validation/006-ANDROID_VALIDATION.md",
|
||||
"docs/skeletons/004-ANDROID.md",
|
||||
"docs/rules/620-JNI.md",
|
||||
"docs/skeletons/004-TAURI.md",
|
||||
):
|
||||
assert not Path(forbidden_path).exists(), forbidden_path
|
||||
|
||||
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.3 rel.1 stable gate audit: clean (5 prior histories, rel.1 pending, stable Android presentation and post-tag Tauri 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
|
||||
import tomllib
|
||||
|
||||
for path in sorted(Path("templates/rust-cargo").rglob("*.toml")):
|
||||
tomllib.loads(path.read_text(encoding="utf-8"))
|
||||
|
||||
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.3 rel.1 text/template hygiene: clean")
|
||||
PYHYGIENE
|
||||
|
||||
git diff --check
|
||||
git add VERSION README.md ROADMAP.md CHANGELOG.md docs/000-README.md \
|
||||
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md \
|
||||
deltas/0.1.3/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.3/rel.1.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
||||
```
|
||||
|
||||
La RC a déjà reconfirmé le profil Android gelé, les frontières Tauri/Games/KSP, le contrat du prompt `010` et l'absence d'artefacts Android supplémentaires. Comme `rel.1` ne modifie aucun artefact technique, la promotion stable rejoue les tests PGR, les audits documentaires et l'hygiène des templates sans simuler une toolchain Android absente du dépôt.
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
Confirmer que :
|
||||
|
||||
- `0.1.3` est bien présenté comme stable partout où la RC était auparavant candidate ;
|
||||
- aucun changement fonctionnel Android n'est entré dans `rel.1` ;
|
||||
- `0.1.4` reste le réexamen Tauri, sans création anticipée du skeleton ;
|
||||
- `0.1.5` et `0.1.6` restent respectivement les adoptions Games et KSP ;
|
||||
- le tag et le rapport post-tag ne sont pas anticipés dans le dépôt pré-tag.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 39 -->
|
||||
<!-- version: 40 -->
|
||||
|
||||
# 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.3
|
||||
|
||||
- [`plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan actif de la réévaluation Android ; `beta.1` est `PASS` et `rc.1` gèle le scope avant promotion stable.
|
||||
- [`plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan historique de la stable `0.1.3`, de l'audit Games à la stabilisation du profil Android générique et au handoff Tauri `0.1.4`.
|
||||
- [`rules/610-ANDROID.md`](rules/610-ANDROID.md) — owner Android révisé : contrats SDK/identité/signing, natif/ABI, Lint, niveaux de tests, packaging/distribution et 16 KB conditionnel, sans absorber les choix propres à Games.
|
||||
- [`rules/520-JAVA.md`](rules/520-JAVA.md) et [`rules/522-GRADLE.md`](rules/522-GRADLE.md) — owners composés uniquement lorsqu'un projet Android contient réellement du Java ou utilise Gradle.
|
||||
- [`rules/600-PLATFORMS.md`](rules/600-PLATFORMS.md) et [`rules/400-VALIDATION.md`](rules/400-VALIDATION.md) — contrats généraux de plateforme et de preuve auxquels la spécialisation Android doit rester conforme.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan 0.1.3 — réévaluation pratique Android
|
||||
|
||||
@@ -563,17 +563,19 @@ La gate beta confirme `48/48` tests Python, les trois audits Markdown, la récon
|
||||
|
||||
### rc.1 — release candidate
|
||||
|
||||
Statut opérateur : **à valider**.
|
||||
Statut opérateur : **PASS**.
|
||||
|
||||
Geler le scope Android, préparer le changelog candidat et `prompts/010-V0_1_4_START_PROMPT.md` sans commencer Tauri. Rejouer les validations PGR de release et vérifier les frontières `0.1.4` / `0.1.5`.
|
||||
La gate RC a confirmé les quatre histories antérieurs `PASS`, le profil Android gelé en révision `5`, le changelog candidat, le prompt `010`, les `48/48` tests, les trois audits Markdown et l'hygiène texte/templates. Aucun owner Android/Java/Gradle/Tauri, template, skeleton, validation, étude technique ou script n'a été modifié pendant la RC.
|
||||
|
||||
Aucune nouvelle fonctionnalité normative Android ne doit apparaître en RC. Le profil `610-ANDROID.md` reste en révision `5`; la RC ne fait qu'établir la présentation candidate, le handoff vers `0.1.4` et les preuves de cohérence de release.
|
||||
Le prompt `010-V0_1_4_START_PROMPT.md` conserve la frontière de release : le réexamen Tauri démarre en `0.1.4` seulement depuis une stable `v0.1.3` réellement taggée et son rapport post-tag `PASS`; l'adoption Games reste `0.1.5` et l'adoption KSP `0.1.6`.
|
||||
|
||||
### rel.1 — promotion stable
|
||||
|
||||
Promouvoir mécaniquement `0.1.3` après RC `PASS` : version stable, roadmap, changelog, README/index et plan historique. Aucun nouveau changement fonctionnel Android ne doit entrer dans la clôture.
|
||||
Première clôture stable de `0.1.3`. La promotion est strictement mécanique : `VERSION = 0.1.3`, `ROADMAP.md` marque `0.1.3` terminée, le `CHANGELOG` perd son marqueur `candidate`, README/index décrivent la réévaluation Android comme stable et le présent plan devient historique. Aucun owner Android/Java/Gradle/Tauri, template, skeleton, validation, étude technique ou script n'est modifié.
|
||||
|
||||
La preuve post-tag reste séparée et doit être produite depuis l'archive du tag `v0.1.3` réellement publiée avant de démarrer `0.1.4`.
|
||||
Le résultat opérateur de cette tranche appartient à `history/0.1.3/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.3` avant le tag `v0.1.3`.
|
||||
|
||||
La vérification post-tag reste séparée : `pgr-0.1.3-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 `010` ne devient le point de départ effectif de `0.1.4` qu'après cette preuve post-tag `PASS`.
|
||||
|
||||
## Stratégie de validation
|
||||
|
||||
@@ -604,6 +606,8 @@ Un REPLAN ne sert pas à ajouter des artefacts pour remplir la release ; il corr
|
||||
|
||||
La roadmap possède déjà un horizon suffisant jusqu'à `0.1.7`. Aucune nouvelle release n'est réservée par `0.1.3-alpha.1`.
|
||||
|
||||
Le présent document devient le plan historique de la stable `0.1.3`. La publication du tag et sa vérification post-tag restent séparées de cette clôture pré-tag.
|
||||
|
||||
La prochaine release après publication vérifiée de `0.1.3` reste :
|
||||
|
||||
```text
|
||||
|
||||
149
history/0.1.3/rel.1.md
Normal file
149
history/0.1.3/rel.1.md
Normal file
@@ -0,0 +1,149 @@
|
||||
<!-- file: history/0.1.3/rel.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# History 0.1.3-rel.1 — promotion stable pré-tag
|
||||
|
||||
## Statut
|
||||
|
||||
PASS
|
||||
|
||||
La gate opérateur de `0.1.3-rel.1` exécutée le `2026-09-28` a réussi. Elle confirme la promotion mécanique de la release candidate vers la stable `0.1.3`, la cohérence des histories antérieurs, la présentation stable du profil Android, les tests PGR, les audits documentaires et l'hygiène texte/templates avant création du tag.
|
||||
|
||||
## Baseline opérateur
|
||||
|
||||
La tranche `0.1.3-rc.1` a été clôturée avec son history `PASS`, puis committée et poussée avant application de `rel.1` :
|
||||
|
||||
```text
|
||||
commit a9fba6c
|
||||
message 0.1.3-rc.1
|
||||
push origin/master PASS
|
||||
```
|
||||
|
||||
Après application du delta `rel.1`, les contrôles initiaux ont confirmé :
|
||||
|
||||
```text
|
||||
VERSION 0.1.3
|
||||
history/0.1.3/rc.1.md présent dans HEAD et le workspace
|
||||
deltas/0.1.3/rel.1.md présent
|
||||
prompts/010-V0_1_4_START_PROMPT.md présent
|
||||
history/0.1.3/rel.1.md absent pendant la gate
|
||||
README.md version 25
|
||||
ROADMAP.md version 15
|
||||
CHANGELOG.md version 17
|
||||
docs/000-README.md version 40
|
||||
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md version 6
|
||||
```
|
||||
|
||||
Le history `rc.1` a été retrouvé avec statut `PASS`.
|
||||
|
||||
La présentation stable est établie :
|
||||
|
||||
```text
|
||||
ROADMAP.md 0.1.3 marqué terminé
|
||||
CHANGELOG.md entrée `## 0.1.3` sans suffixe `(candidate)`
|
||||
README.md profil Android réévalué contre Games présenté comme stable
|
||||
docs index plan 009 classé historique
|
||||
```
|
||||
|
||||
## Gate stable pré-tag
|
||||
|
||||
Le contrôle structurel a affiché :
|
||||
|
||||
```text
|
||||
0.1.3 rel.1 stable gate audit: clean (5 prior histories, rel.1 pending, stable Android presentation and post-tag Tauri handoff coherent)
|
||||
```
|
||||
|
||||
Il a vérifié les cinq histories antérieurs avec statut `PASS` :
|
||||
|
||||
```text
|
||||
alpha.1 PASS
|
||||
alpha.2 PASS
|
||||
alpha.3 PASS
|
||||
beta.1 PASS
|
||||
rc.1 PASS
|
||||
```
|
||||
|
||||
Avant application du présent history, `rel.1.md` est la seule tranche `0.1.3` possédant un delta sans history.
|
||||
|
||||
La gate a également confirmé :
|
||||
|
||||
- `0.1.3` terminé dans la roadmap ;
|
||||
- `0.1.4` à `0.1.7` engagés sans réservation de `0.1.8` ;
|
||||
- le `CHANGELOG` stable sans suffixe `(candidate)` et sans détails de tranches ;
|
||||
- le plan `009` classé historique ;
|
||||
- le profil Android `610-ANDROID.md` gelé en révision `5` ;
|
||||
- l'absence de généralisation de `targetSdk 36`, `minSdk 21`, NDK r28, quatre ABI, Gradle 9.7.1, AGP 9.4.0 ou JDK 25 ;
|
||||
- la composition Android avec les owners génériques existants sans création d'owner JNI/Rust/SDL, de skeleton Android ni de contrat de validation redondant ;
|
||||
- les contrats Android stabilisés pour SDK, identité applicative, natif/ABI, Android Lint, niveaux de tests, APK/AAB et contraintes 16 KB conditionnelles ;
|
||||
- `0.1.4` réservé au réexamen Tauri, sans création anticipée du skeleton ;
|
||||
- `0.1.5` et `0.1.6` réservés respectivement aux adoptions Games et KSP ;
|
||||
- le prompt `010` préparé pour démarrer `0.1.4` uniquement depuis le tag réel `v0.1.3` et un rapport post-tag `publish.001` `PASS` ;
|
||||
- la convention de clôture `rel.N`, puis commit stable `X.Y.Z` avant création du tag.
|
||||
|
||||
## Validation Android
|
||||
|
||||
Les décisions Android issues du corpus Games ont été réconciliées avant la RC et `rel.1` n'a modifié aucun owner technique.
|
||||
|
||||
La promotion stable n'a donc pas simulé de toolchain Android, Gradle, AGP, JDK ou NDK absente du dépôt PGR. Elle a rejoué les gates réellement possédées par PGR afin de vérifier que la promotion documentaire et les métadonnées de release n'ont invalidé aucune propriété du référentiel.
|
||||
|
||||
Les choix Games qui restent locaux n'ont pas été promus en minima PGR universels et aucun artefact Android supplémentaire n'a été créé pendant la clôture.
|
||||
|
||||
## Tests et audits PGR
|
||||
|
||||
La suite Python globale a exécuté `48` tests, tous réussis :
|
||||
|
||||
```text
|
||||
Ran 48 tests in 0.735s
|
||||
|
||||
OK
|
||||
```
|
||||
|
||||
Les audits documentaires sont propres :
|
||||
|
||||
```text
|
||||
Markdown header audit: clean (263 file(s))
|
||||
Markdown table audit: clean (11 table(s), 263 file(s))
|
||||
Markdown link audit: clean (337 local link(s), 263 file(s))
|
||||
```
|
||||
|
||||
L'hygiène texte/templates a également affiché :
|
||||
|
||||
```text
|
||||
0.1.3 rel.1 text/template hygiene: clean
|
||||
```
|
||||
|
||||
Les templates TOML Rust/Cargo et JSON Web ont été parsés avec succès ; aucun retour chariot, whitespace final ni fichier texte sans newline finale 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.3/rel.1.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
||||
```
|
||||
|
||||
Le scope correspond exactement à la promotion stable annoncée. Aucun owner Android/Java/Gradle/Tauri, template, skeleton, validation, étude technique ou script d'audit n'a été modifié pendant `rel.1`.
|
||||
|
||||
## Décision
|
||||
|
||||
`0.1.3-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.3
|
||||
```
|
||||
|
||||
Le commit stable doit être poussé sur `origin/master` avant création du tag annoté `v0.1.3`.
|
||||
|
||||
Le rapport `pgr-0.1.3-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 `010-V0_1_4_START_PROMPT.md` ne devient la reprise effective de `0.1.4` qu'après un rapport post-tag `PASS`.
|
||||
Reference in New Issue
Block a user