From 585b508578aae337f6940110d4ca47c694a052d5 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Mon, 28 Sep 2026 01:27:41 +0200 Subject: [PATCH] 0.1.2 --- CHANGELOG.md | 4 +- README.md | 8 +- ROADMAP.md | 4 +- VERSION | 2 +- deltas/0.1.2/rel.1.md | 288 ++++++++++++++++++ docs/000-README.md | 4 +- ...08-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md | 20 +- history/0.1.2/rel.1.md | 151 +++++++++ 8 files changed, 461 insertions(+), 20 deletions(-) create mode 100644 deltas/0.1.2/rel.1.md create mode 100644 history/0.1.2/rel.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index d249884..357a99a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ - + # 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.2 (candidate) +## 0.1.2 - sépare l'ancien profil combiné Java/Maven/Gradle en trois owners indépendants et composables : `520-JAVA`, `521-MAVEN` et `522-GRADLE`, afin qu'un build tool ne devienne pas implicitement applicable à tout projet Java ; - clarifie la distinction entre JDK utilisé pour construire, niveau Java du code source et niveau de bytecode/runtime supporté, sans généraliser les versions particulières observées dans Games ; diff --git a/README.md b/README.md index dc06b58..9c67c8f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # 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 et avec `0.1.1` d’une fondation frontend Web stable, composable et indépendante du host. La release `0.1.2` est entrée en beta après réévaluation du corpus Games et scission de l'ancien owner combiné en `520-JAVA`, `521-MAVEN` et `522-GRADLE`; aucun artefact technique supplémentaire n'est retenu à ce stade et le scope Android reste réservé à `0.1.3`. +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. Le scope Android reste réservé à `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 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`. ## Entrées principales @@ -31,7 +31,7 @@ La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` é - [`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 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 actif `0.1.2` : réévaluation Games, scission Java/Maven/Gradle et réconciliation beta avant RC, avec Android maintenu hors scope ; +- [`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/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 ; diff --git a/ROADMAP.md b/ROADMAP.md index 7f7a836..63685cc 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # Roadmap Project Governance Rules @@ -24,7 +24,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 : - `(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 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 ; +- `(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 ; - `( ) 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` ; diff --git a/VERSION b/VERSION index c99d2fb..d917d3e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.2-rc.1 +0.1.2 diff --git a/deltas/0.1.2/rel.1.md b/deltas/0.1.2/rel.1.md new file mode 100644 index 0000000..a043fd1 --- /dev/null +++ b/deltas/0.1.2/rel.1.md @@ -0,0 +1,288 @@ + + + +# Delta 0.1.2 rel.1 — promotion stable pré-tag + +## Baseline et version + +Baseline : `0.1.2-rc.1`, avec `history/0.1.2/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit. + +Version avant application : + +```text +0.1.2-rc.1 +``` + +Version après application : + +```text +0.1.2 +``` + +`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.2` 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 `008` historique. Aucun owner Java/Maven/Gradle, bridge historique, profil Android, template, skeleton, validation ou script d'audit n'est modifié. + +La validation de cette tranche est **pré-tag**. Le tag `v0.1.2`, son archive source Gitea et le rapport `pgr-0.1.2-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.2` et la publication réelle du tag. + +## Scope + +REPLACE : + +```text +VERSION +README.md +ROADMAP.md +CHANGELOG.md +docs/000-README.md +docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md +``` + +ADD : + +```text +deltas/0.1.2/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.2/rc.1.md` : + +```bash +test "$(cat VERSION)" = '0.1.2' +git cat-file -e HEAD:history/0.1.2/rc.1.md +test -f history/0.1.2/rc.1.md +test -f deltas/0.1.2/rel.1.md +test -f prompts/009-V0_1_3_START_PROMPT.md +test ! -e history/0.1.2/rel.1.md + +grep -A2 '^## Statut$' history/0.1.2/rc.1.md | grep -Fx 'PASS' +grep -Fx '' README.md +grep -Fx '' ROADMAP.md +grep -Fx '' CHANGELOG.md +grep -Fx '' docs/000-README.md +grep -Fx '' docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md +grep -F -- '- `(x) 0.1.2`' ROADMAP.md +grep -Fx '## 0.1.2' CHANGELOG.md +grep -F 'avec `0.1.2` d’owners Java, Maven et Gradle séparés et composables' README.md +grep -F 'plan historique de la stable `0.1.2`' README.md docs/000-README.md + +python3 -B - <<'PYGATE' +from pathlib import Path +import re + +expected = { + "alpha.1.md": "PASS", + "alpha.2.md": "PASS", + "alpha.2.fix.1.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.2", name) + history = Path("history/0.1.2", 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.2").glob("*.md")} - { + path.name for path in Path("history/0.1.2").glob("*.md") +} +assert pending == {"rel.1.md"}, pending + +roadmap = Path("ROADMAP.md").read_text(encoding="utf-8") +assert "- `(x) 0.1.2`" in roadmap +for version in ("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.2" in changelog.splitlines() +assert "## 0.1.2 (candidate)" not in changelog +section = changelog.split("## 0.1.2", 1)[1].split("## 0.1.1", 1)[0] +for phrase in ( + "trois owners indépendants", + "520-JAVA", + "521-MAVEN", + "522-GRADLE", + "JDK utilisé pour construire", + "Wrapper", + "Gradle système", + "SUPERSEDED", + "réévaluation pratique reste la cible distincte `0.1.3`", +): + 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.2` d’owners Java, Maven et Gradle séparés et composables" in readme +assert "plan historique de la stable `0.1.2`" in readme + +index = Path("docs/000-README.md").read_text(encoding="utf-8") +assert "plan historique de la stable `0.1.2`" in index +assert "à exécuter uniquement après publication et vérification post-tag de `v0.1.2`" in index + +plan = Path("docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md").read_text(encoding="utf-8") +assert "Plan historique de la stable `0.1.2`" in plan +assert "### rc.1 — release candidate\n\nStatut opérateur : **PASS**." in plan +assert "history/0.1.2/rel.1.md" in plan +assert "pgr-0.1.2-publish.001-report.md" in plan +assert "commit `0.1.2` avant le tag `v0.1.2`" in plan + +prompt = Path("prompts/009-V0_1_3_START_PROMPT.md").read_text(encoding="utf-8") +assert "tag Gitea `v0.1.2`" in prompt +assert "pgr-0.1.2-publish.001-report.md" in prompt +assert "0.1.3-alpha.1" in prompt +assert "réservé à `0.1.4`" in prompt +assert "adoption Games `0.1.5`" in prompt + +for path, version in ( + ("docs/rules/520-JAVA.md", 4), + ("docs/rules/521-MAVEN.md", 1), + ("docs/rules/522-GRADLE.md", 1), + ("docs/rules/520-JAVA_MAVEN_GRADLE.md", 4), + ("docs/rules/610-ANDROID.md", 3), +): + lines = Path(path).read_text(encoding="utf-8").splitlines() + assert lines[1] == f"", (path, lines[1]) + +legacy = Path("docs/rules/520-JAVA_MAVEN_GRADLE.md").read_text(encoding="utf-8") +assert "`SUPERSEDED` depuis `0.1.2-alpha.3`." in legacy +assert "Il ne constitue plus un profil sélectionnable" in legacy +for current in ("RULES.md", "docs/000-README.md", "docs/rules/000-README.md", "docs/rules/610-ANDROID.md"): + assert "520-JAVA_MAVEN_GRADLE.md" not in Path(current).read_text(encoding="utf-8"), current + +for forbidden in ( + "Cargo.toml", + "crates/knowledge-domain-lib/src/content_family.rs", + "deltas/0.0.1/alpha.3.fix.2.md", + "history/0.0.1/alpha.3.fix.1.md", +): + assert not Path(forbidden).exists(), forbidden + +java_related = sorted( + str(path) + for root in (Path("docs/templates"), Path("docs/skeletons"), Path("docs/validation"), Path("scripts")) + for path in root.rglob("*") + if path.is_file() and any(word in path.name.lower() for word in ("java", "maven", "gradle")) +) +assert java_related == [], java_related + +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.2 rel.1 stable gate audit: clean (6 prior histories, rel.1 pending, stable Java/Maven/Gradle 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 +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.2 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/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md \ + deltas/0.1.2/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.2/rel.1.md +M docs/000-README.md +M docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md +``` + +La RC a déjà reconfirmé les owners gelés, la frontière Android, le contrat du prompt `009` et l'absence d'artefacts Java/Maven/Gradle 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 de toolchain Java/Maven/Gradle absente du dépôt. + +## Revue opérateur complémentaire + +Confirmer que : + +- le scope fonctionnel de `rc.1` ne change pas ; +- `0.1.2` est présenté comme stable de manière cohérente dans VERSION/README/ROADMAP/CHANGELOG/index/plan ; +- les histories `alpha.1`, `alpha.2`, `alpha.2.fix.1`, `alpha.3`, `beta.1` et `rc.1` restent conservés avec leur statut réel `PASS` ; +- `520-JAVA`, `521-MAVEN` et `522-GRADLE` restent gelés et l'ancien owner combiné reste uniquement un bridge historique `SUPERSEDED` ; +- aucune version particulière de Games ne devient un minimum PGR ; +- le profil Android reste inchangé et `0.1.3` conserve seul sa réévaluation pratique ; +- le skeleton Tauri reste réservé au réexamen `0.1.4` et l'adoption Games à `0.1.5` ; +- la roadmap engagée `0.1.3` à `0.1.7` reste intacte sans `0.1.8` ; +- le prompt `009` reste conditionnel à une vraie publication de `v0.1.2` 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.2/rel.1.md`, l'appliquer, puis créer le commit stable sous le message exact : + +```text +0.1.2 +``` + +Après push de la branche canonique, créer et publier le tag annoté `v0.1.2`. 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.2-publish.001-report.md` à partir de preuves réelles. + +Le prompt `009-V0_1_3_START_PROMPT.md` ne devient la reprise effective de `0.1.3` qu'après un rapport post-tag `PASS`. + +### FAIL + +Consigner le diagnostic réel dans `history/0.1.2/rel.1.md`, ne pas créer le tag et corriger uniquement la fermeture dans `rel.1.fix.1` avant toute publication. diff --git a/docs/000-README.md b/docs/000-README.md index 9afb284..2902fdf 100644 --- a/docs/000-README.md +++ b/docs/000-README.md @@ -1,5 +1,5 @@ - + # 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.2 -- [`plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md`](plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md) — plan actif de `0.1.2`, désormais gelé en RC après réévaluation Games, scission `520/521/522` et réconciliation beta, avec frontière Android explicite. +- [`plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md`](plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md) — plan historique de la stable `0.1.2`, de la réévaluation Games à la scission `520/521/522`, avec frontière Android explicite. - [`rules/520-JAVA.md`](rules/520-JAVA.md) — owner Java issu de la réévaluation du profil historique combiné ; il possède JDK, compatibilité source/bytecode, structure, API et tests Java. - [`rules/521-MAVEN.md`](rules/521-MAVEN.md) — spécialisation Maven séparée afin que Maven ne devienne pas implicitement applicable à tout projet Java. - [`rules/522-GRADLE.md`](rules/522-GRADLE.md) — spécialisation Gradle éprouvée contre Games, avec ownership du build, politique Wrapper/système et propriétés partagées/locales. diff --git a/docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md b/docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md index 0c8c0ac..3f4e76f 100644 --- a/docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md +++ b/docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md @@ -1,11 +1,11 @@ - + # Plan 0.1.2 — réévaluation Java / Maven / Gradle ## Statut et sources -Plan actif créé pendant `0.1.2-alpha.1` conformément à `prompts/008-V0_1_2_START_PROMPT.md`, après audit indépendant de la stable taggée `v0.1.1`, de son rapport post-tag `PASS` et du corpus Games autoritaire réellement fourni. +Plan historique de la stable `0.1.2`, créé pendant `0.1.2-alpha.1` conformément à `prompts/008-V0_1_2_START_PROMPT.md`, après audit indépendant de la stable taggée `v0.1.1`, de son rapport post-tag `PASS` et du corpus Games autoritaire réellement fourni. Sources autoritaires de reprise PGR : @@ -416,17 +416,19 @@ Statut opérateur : **PASS**. ### rc.1 — release candidate -Geler le scope, rejouer la validation PGR complète, contrôler les liens/index, la frontière Android, l'absence d'artefacts Maven non justifiés et la cohérence de la trajectoire `0.1.3` à `0.1.7`. +Statut opérateur : **PASS**. -Aucune nouvelle règle fonctionnelle n'entre en RC sauf correctif `.fix.N` ou REPLAN explicitement justifié. +La gate RC a confirmé les cinq histories antérieurs `PASS`, le scope Java/Maven/Gradle gelé, le changelog candidat, le prompt `009`, les `48/48` tests, les trois audits Markdown et l'hygiène texte/templates. Aucun owner, profil Android, template, skeleton, validation ou script n'a été modifié pendant la RC. -La RC prépare `prompts/009-V0_1_3_START_PROMPT.md` comme contrat de reprise futur. Ce prompt ne devient exécutable qu'après stable `v0.1.2` réellement taggée et rapport post-tag `PASS`. - -Statut opérateur : **à valider**. +Le prompt `009-V0_1_3_START_PROMPT.md` conserve la frontière de release : la réévaluation Android démarre en `0.1.3` seulement depuis une stable `v0.1.2` réellement taggée et son rapport post-tag `PASS`; Tauri reste réservé à `0.1.4` et l'adoption Games à `0.1.5`. ### rel.1 — promotion stable -Promouvoir mécaniquement la RC validée vers `0.1.2`, fermer le plan, mettre à jour `CHANGELOG.md` et `ROADMAP.md` selon le workflow applicable, préparer le handoff de publication et conserver la prochaine cible engagée `0.1.3` sans l'exécuter avant vérification post-tag de `0.1.2`. +Première clôture stable de `0.1.2`. La promotion est strictement mécanique : `VERSION = 0.1.2`, `ROADMAP.md` marque `0.1.2` terminée, le `CHANGELOG` perd son marqueur `candidate`, README/index décrivent la réévaluation Java/Maven/Gradle comme stable et le présent plan devient historique. Aucun owner, profil Android, template, skeleton, validation ou script technique n'est modifié. + +Le résultat opérateur de cette tranche appartient à `history/0.1.2/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.2` avant le tag `v0.1.2`. + +La vérification post-tag reste séparée : `pgr-0.1.2-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 `009` ne devient le point de départ effectif de `0.1.3` qu'après cette preuve post-tag `PASS`. ## Stratégie de validation @@ -452,7 +454,7 @@ Un REPLAN ne sert pas à ajouter des artefacts pour remplir la release ; il sert ## Clôture et transition -La réconciliation documentaire durable, le `CHANGELOG`, la mise à jour de `ROADMAP`, la fermeture du plan et la préparation de la publication sont traités en beta/RC/`rel.1` selon l'état réel de la release. +La réconciliation documentaire durable, le `CHANGELOG`, la mise à jour de `ROADMAP` et la fermeture du plan sont achevés par `rel.1`. La publication du tag et sa vérification post-tag restent séparées de cette clôture pré-tag. La roadmap possède déjà un horizon suffisant jusqu'à `0.1.7`. Aucune nouvelle revue d'horizon n'est requise par défaut pendant `0.1.2`. diff --git a/history/0.1.2/rel.1.md b/history/0.1.2/rel.1.md new file mode 100644 index 0000000..6e7e59a --- /dev/null +++ b/history/0.1.2/rel.1.md @@ -0,0 +1,151 @@ + + + +# History 0.1.2-rel.1 — promotion stable pré-tag + +## Statut + +PASS + +La gate opérateur de `0.1.2-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.2`, la cohérence des histories antérieurs, la présentation stable Java/Maven/Gradle, les tests PGR, les audits documentaires et l'hygiène texte/templates avant création du tag. + +## Baseline opérateur + +La tranche `0.1.2-rc.1` a été clôturée avec son history `PASS`, puis committée et poussée avant application de `rel.1` : + +```text +commit 36b2b21 +message 0.1.2-rc.1 +push origin/master PASS +``` + +Après application du delta `rel.1`, les contrôles initiaux ont confirmé : + +```text +VERSION 0.1.2 +history/0.1.2/rc.1.md présent dans HEAD et le workspace +deltas/0.1.2/rel.1.md présent +prompts/009-V0_1_3_START_PROMPT.md présent +history/0.1.2/rel.1.md absent pendant la gate +README.md version 22 +ROADMAP.md version 14 +CHANGELOG.md version 15 +docs/000-README.md version 36 +docs/plans/008-V0_1_2_JAVA_GRADLE_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.2 marqué terminé +CHANGELOG.md entrée `## 0.1.2` sans suffixe `(candidate)` +README.md owners Java, Maven et Gradle séparés et composables +docs index plan 008 classé historique +``` + +## Gate stable pré-tag + +Le contrôle structurel a affiché : + +```text +0.1.2 rel.1 stable gate audit: clean (6 prior histories, rel.1 pending, stable Java/Maven/Gradle presentation and post-tag handoff coherent) +``` + +Il a vérifié les six histories antérieurs avec statut `PASS` : + +```text +alpha.1 PASS +alpha.2 PASS +alpha.2.fix.1 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.2` possédant un delta sans history. + +La gate a également confirmé : + +- `0.1.2` terminé dans la roadmap ; +- `0.1.3` à `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 `008` classé historique ; +- `520-JAVA`, `521-MAVEN` et `522-GRADLE` gelés dans leur état validé ; +- l'ancien `520-JAVA_MAVEN_GRADLE` conservé uniquement comme bridge `SUPERSEDED` non sélectionnable ; +- l'absence de généralisation des choix Games locaux tels que JDK 25, Java 17, Gradle 9.6.0/9.7.1 ou AGP 9.4.0 ; +- le maintien des responsabilités Android dans `610-ANDROID.md` et de la réévaluation Android dans `0.1.3` ; +- le skeleton Tauri toujours réservé au réexamen `0.1.4` et l'adoption Games à `0.1.5` ; +- le prompt `009` préparé pour démarrer `0.1.3` uniquement depuis le tag réel `v0.1.2` et un rapport post-tag `publish.001` `PASS` ; +- l'absence de template, skeleton, validation ou audit Python Java/Maven/Gradle supplémentaire ; +- l'absence persistante des chemins Knowledge retirés par `alpha.2.fix.1` ; +- la convention de clôture `rel.N`, puis commit stable `X.Y.Z` avant création du tag. + +## Validation Java/Maven/Gradle + +Les preuves Java/Gradle issues du corpus Games ont été réconciliées avant la RC et les owners correspondants n'ont pas été modifiés pendant `rel.1`. + +La promotion stable n'a donc pas simulé de toolchain Java, Maven ou Gradle 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. + +Aucun corpus Maven réel n'a été inventé pour justifier un artefact supplémentaire, et aucun scope Android n'a été absorbé dans `0.1.2`. + +## Tests et audits PGR + +La suite Python globale a exécuté `48` tests, tous réussis : + +```text +Ran 48 tests in 0.745s + +OK +``` + +Les audits documentaires sont propres : + +```text +Markdown header audit: clean (249 file(s)) +Markdown table audit: clean (10 table(s), 249 file(s)) +Markdown link audit: clean (307 local link(s), 249 file(s)) +``` + +L'hygiène texte/templates a également affiché : + +```text +0.1.2 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.2/rel.1.md +M docs/000-README.md +M docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md +``` + +Le scope correspond exactement à la promotion stable annoncée. Aucun owner Java/Maven/Gradle, bridge historique, profil Android, template, skeleton, validation ou script d'audit n'a été modifié pendant `rel.1`. + +## Décision + +`0.1.2-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.2 +``` + +Le commit stable doit être poussé sur `origin/master` avant création du tag annoté `v0.1.2`. + +Le rapport `pgr-0.1.2-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 `009-V0_1_3_START_PROMPT.md` ne devient la reprise effective de `0.1.3` qu'après un rapport post-tag `PASS`.