0.0.5-rel.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: CHANGELOG.md -->
|
||||
<!-- version: 8 -->
|
||||
<!-- version: 9 -->
|
||||
|
||||
# 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.0.5 (candidate)
|
||||
## 0.0.5
|
||||
|
||||
- consolide le lifecycle inter-release de PGR : prompts de reprise versionnés, contrats locaux de fichiers/familles, responsabilités de fermeture et revue d'horizon sans création artificielle de releases futures ;
|
||||
- renforce le profil Rust/Cargo des nouveaux projets contrôlés avec Rust 2024, chemins explicites, façade crate-root, contrats de suffixes de crates, séparation bibliothèque/exécutable, erreurs explicites et ownership du tracing ;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: README.md -->
|
||||
<!-- version: 13 -->
|
||||
<!-- version: 14 -->
|
||||
|
||||
# Project Governance Rules
|
||||
|
||||
@@ -28,7 +28,7 @@ La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` é
|
||||
- [`docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md`](docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md) — plan historique des premiers profils `0.0.2` ;
|
||||
- [`docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md`](docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md) — plan historique des templates et audits `0.0.3` ;
|
||||
- [`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 actif de réconciliation `0.0.5` ;
|
||||
- [`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/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: 7 -->
|
||||
<!-- version: 8 -->
|
||||
|
||||
# Roadmap Project Governance Rules
|
||||
|
||||
@@ -13,7 +13,7 @@ Statuts : `( )` planifié, `(x)` terminé, `(d)` différé, `(c)` annulé.
|
||||
- `(x) 0.0.2` — premiers profils de règles réutilisables : Rust/Cargo, Java/Maven/Gradle et Android, avec modèle de composition et audits Markdown initiaux ;
|
||||
- `(x) 0.0.3` — templates techniques initiaux et premiers patterns d'audit réutilisables issus de besoins réels ;
|
||||
- `(x) 0.0.4` — spécifications Markdown de skeletons et règles de composition des profils/templates ;
|
||||
- `( ) 0.0.5` — réconciliation réelle de PGR avec `khadhroony-solana-project` et `sasedev-games`, incluant la consolidation du lifecycle inter-release et de la revue d'horizon.
|
||||
- `(x) 0.0.5` — réconciliation réelle de PGR avec `khadhroony-solana-project` et `sasedev-games`, incluant la consolidation du lifecycle inter-release et de la revue d'horizon.
|
||||
|
||||
## Première baseline réutilisable
|
||||
|
||||
|
||||
179
deltas/0.0.5/rel.001.md
Normal file
179
deltas/0.0.5/rel.001.md
Normal file
@@ -0,0 +1,179 @@
|
||||
<!-- file: deltas/0.0.5/rel.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.0.5 rel.001 — promotion stable pré-tag
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline : `0.0.5-rc.1`, avec `history/0.0.5/rc.1.md` appliqué et committé. Ce delta MUST NOT être appliqué avant ce commit.
|
||||
|
||||
Le commit exact de cette baseline sera celui produit par l'opérateur après application du history RC ; il n'est pas anticipé dans cette livraison simultanée du history et du delta stable.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.0.5-rc.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.0.5
|
||||
```
|
||||
|
||||
`rel.001` identifie la clôture opérationnelle ; il ne fait pas partie de la version SemVer du produit.
|
||||
|
||||
## Objet
|
||||
|
||||
Promouvoir la RC validée vers la stable `0.0.5`. La tranche finalise uniquement la présentation de la release : version stable, roadmap terminée, changelog sans marqueur candidate, index documentaires et plan historique.
|
||||
|
||||
Le scope fonctionnel reste celui validé en RC : lifecycle inter-release, prompts versionnés, contrats documentaires locaux, profil Rust strict et audits monotâches, contrats architecturaux des suffixes de crates, ownership du tracing, profil Tauri 2, classification des versions produit, réconciliation KSP/Games et décision `DEFER` du skeleton Tauri contrôlé jusqu'à matérialisation d'owners Web suffisants.
|
||||
|
||||
La validation de cette tranche est **pré-tag**. Ni le tag `v0.0.5`, ni l'archive `pgr-v0.0.5.zip` téléchargée depuis Gitea, ni un rapport `pgr-0.0.5-publish.001-report.md` ne sont déclarés existants par ce delta. Ils suivent le history PASS, le commit stable et la publication réelle du tag.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/000-README.md
|
||||
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.0.5/rel.001.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
L'archive contient uniquement ces fichiers complets. `history/0.0.5/rc.1.md` est livré séparément ; le history de `rel.001` sera produit après sa gate. Le rapport post-tag restera extérieur à l'archive source taggée.
|
||||
|
||||
## Validation opérateur pré-tag
|
||||
|
||||
Après application sur le commit `rc.1`, depuis la racine du dépôt :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.0.5'
|
||||
git cat-file -e HEAD:history/0.0.5/rc.1.md
|
||||
test -f history/0.0.5/rc.1.md
|
||||
test -f deltas/0.0.5/rel.001.md
|
||||
test -f prompts/006-V0_1_0_START_PROMPT.md
|
||||
test ! -e history/0.0.5/rel.001.md
|
||||
|
||||
grep -Fx '<!-- version: 14 -->' README.md
|
||||
grep -Fx '<!-- version: 8 -->' ROADMAP.md
|
||||
grep -Fx '<!-- version: 9 -->' CHANGELOG.md
|
||||
grep -Fx '<!-- version: 17 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 15 -->' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
grep -F 'plan historique de réconciliation `0.0.5`' README.md
|
||||
grep -F -- '- `(x) 0.0.5`' ROADMAP.md
|
||||
grep -Fx '## 0.0.5' CHANGELOG.md
|
||||
grep -F 'périmètre et décisions de la release `0.0.5`' docs/000-README.md
|
||||
grep -F 'La gate opérateur de `rc.1` est `PASS`' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
grep -F 'pgr-0.0.5-publish.001-report.md' docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
grep -F 'Le skeleton Tauri contrôlé reste `DEFER`' prompts/006-V0_1_0_START_PROMPT.md
|
||||
|
||||
python3 -B - <<'PYGATE'
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
expected = {
|
||||
'alpha.1.md': 'PASS',
|
||||
'alpha.2.md': 'PASS',
|
||||
'alpha.3.md': 'FAIL',
|
||||
'alpha.3.fix.1.md': 'PASS',
|
||||
'alpha.4.md': 'PASS',
|
||||
'alpha.5.md': 'FAIL',
|
||||
'alpha.5.fix.1.md': 'PASS',
|
||||
'alpha.6.md': 'FAIL',
|
||||
'alpha.6.fix.1.md': 'FAIL',
|
||||
'alpha.6.fix.2.md': 'FAIL',
|
||||
'alpha.6.fix.3.md': 'PASS',
|
||||
'alpha.7.md': 'FAIL',
|
||||
'alpha.7.fix.1.md': 'PASS',
|
||||
'alpha.8.md': 'PASS',
|
||||
'alpha.9.md': 'PASS',
|
||||
'beta.1.md': 'PASS',
|
||||
'rc.1.md': 'PASS',
|
||||
}
|
||||
for name, status in expected.items():
|
||||
delta = Path('deltas/0.0.5', name)
|
||||
history = Path('history/0.0.5', 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 = {p.name for p in Path('deltas/0.0.5').glob('*.md')} - \
|
||||
{p.name for p in Path('history/0.0.5').glob('*.md')}
|
||||
assert pending == {'rel.001.md'}, pending
|
||||
|
||||
roadmap = Path('ROADMAP.md').read_text(encoding='utf-8')
|
||||
assert '- `(x) 0.0.5`' in roadmap
|
||||
assert '- `( ) 0.1.0`' in roadmap
|
||||
assert '(d) skeleton Tauri pour projets contrôlés' in roadmap
|
||||
assert 'saselang-bible' not in roadmap
|
||||
|
||||
changelog = Path('CHANGELOG.md').read_text(encoding='utf-8')
|
||||
assert '## 0.0.5
|
||||
' in changelog
|
||||
assert '## 0.0.5 (candidate)' not in changelog
|
||||
|
||||
prompt = Path('prompts/006-V0_1_0_START_PROMPT.md').read_text(encoding='utf-8')
|
||||
assert 'pgr-v0.0.5.zip' in prompt
|
||||
assert 'pgr-0.0.5-publish.001-report.md' in prompt
|
||||
assert '0.1.0-alpha.1' in prompt
|
||||
assert 'Le skeleton Tauri contrôlé reste `DEFER`' in prompt
|
||||
|
||||
print('0.0.5 stable history audit: clean (17 prior histories with expected statuses, rel.001 pending)')
|
||||
PYGATE
|
||||
|
||||
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
|
||||
|
||||
git diff --check
|
||||
git add VERSION README.md ROADMAP.md CHANGELOG.md docs/000-README.md \
|
||||
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md deltas/0.0.5/rel.001.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.0.5/rel.001.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
```
|
||||
|
||||
Les `48` tests Python et les validations structurelles validés en RC restent des preuves applicables parce qu'aucun code, script, test, règle, template ou skeleton technique n'est modifié pendant `rel.001`. La gate stable se concentre donc sur l'intégrité de la chaîne historique, la présentation stable et les audits documentaires affectés.
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
Confirmer que le scope fonctionnel de la RC ne change pas, que README/roadmap/changelog/index/plan décrivent la même stable, que les `FAIL` historiques restent conservés avec leurs fixes `PASS`, que le skeleton Tauri reste différé sans release réservée, que le prompt `006` reste conditionnel à une vraie publication et qu'aucune preuve post-tag n'est anticipée.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire séparément `history/0.0.5/rel.001.md`, l'appliquer puis committer la stable. Ensuite seulement créer et publier le tag canonique `v0.0.5`, télécharger son archive source depuis Gitea, vérifier cette archive et conserver séparément la preuve post-tag `pgr-0.0.5-publish.001-report.md`.
|
||||
|
||||
Le message manuel de reprise de `prompts/006-V0_1_0_START_PROMPT.md` n'est remis à l'opérateur qu'après vérification effective de l'archive et d'un rapport post-tag PASS réel.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le diagnostic réel dans `history/0.0.5/rel.001.md`, ne pas tagger et corriger la clôture dans une tranche explicite avant publication.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/000-README.md -->
|
||||
<!-- version: 16 -->
|
||||
<!-- version: 17 -->
|
||||
|
||||
# Documentation PGR
|
||||
|
||||
@@ -22,7 +22,7 @@ Les templates techniques copiables sous `templates/` restent séparés des instr
|
||||
|
||||
## Points d'entrée de 0.0.5
|
||||
|
||||
- [`plans/005-V0_0_5_RECONCILIATION_PLAN.md`](plans/005-V0_0_5_RECONCILIATION_PLAN.md) — cadrage, classification et trajectoire active de la réconciliation `0.0.5` ;
|
||||
- [`plans/005-V0_0_5_RECONCILIATION_PLAN.md`](plans/005-V0_0_5_RECONCILIATION_PLAN.md) — périmètre et décisions de la release `0.0.5` ;
|
||||
- [`studies/001-KSP_GAMES_RECONCILIATION.md`](studies/001-KSP_GAMES_RECONCILIATION.md) — inventaire comparatif des baselines KSP/Games et décisions de généralisation, maintien local ou différé.
|
||||
- [`studies/002-TAURI_SKELETON_DECISION.md`](studies/002-TAURI_SKELETON_DECISION.md) — décision `alpha.9` sur la maturité du skeleton Tauri contrôlé et ses prérequis Web encore manquants.
|
||||
- [`templates/004-FILE_FAMILY_CONTRACTS.md`](templates/004-FILE_FAMILY_CONTRACTS.md) — pattern facultatif pour expliciter les responsabilités et règles de modification de familles de fichiers locales lorsque la complexité le justifie.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!-- file: docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md -->
|
||||
<!-- version: 14 -->
|
||||
<!-- version: 15 -->
|
||||
|
||||
# Plan 0.0.5 — réconciliation réelle avec KSP et sasedev-games
|
||||
|
||||
## Statut et sources
|
||||
|
||||
Plan actif créé pendant `0.0.5-alpha.1` conformément à `prompts/005-V0_0_5_START_PROMPT.md`. La release confronte PGR à deux baselines autoritaires fournies sans présumer qu'elles ont déjà adopté PGR.
|
||||
Plan historique créé pendant `0.0.5-alpha.1` conformément à `prompts/005-V0_0_5_START_PROMPT.md`. La release a confronté PGR à deux baselines autoritaires fournies sans présumer qu'elles avaient déjà adopté PGR.
|
||||
|
||||
Sources contrôlées :
|
||||
|
||||
@@ -160,12 +160,16 @@ La gate RC rejoue la suite Python complète, les audits Markdown et un contrôle
|
||||
|
||||
Aucune version postérieure à `0.1.0` n'est inventée à cette étape.
|
||||
|
||||
La gate opérateur de `rc.1` est `PASS` : `48/48` tests Python, les trois audits Markdown, le contrôle d'intégrité des `16` histories antérieurs et les contrôles Git sont propres. Le scope fonctionnel est donc gelé pour la promotion stable.
|
||||
|
||||
### stable — 0.0.5
|
||||
|
||||
Promouvoir mécaniquement la RC validée : synchroniser `VERSION`, README/index, `ROADMAP.md`, `CHANGELOG.md` et statut du présent plan sans ajouter de nouveau besoin commun. Après history PASS, commit et tag `v0.0.5`, vérifier séparément l'archive publiée.
|
||||
|
||||
La vérification post-tag doit produire, si le mécanisme reste retenu, `pgr-0.0.5-publish.001-report.md` extérieur au tag. Le message manuel final doit alors indiquer spontanément à l'opérateur de fournir l'archive taggée et ce rapport avec le prompt `006` lors de la session `0.1.0`.
|
||||
|
||||
La promotion `rel.001` clôt le présent plan sans modifier le scope fonctionnel : `VERSION = 0.0.5`, `ROADMAP.md` marque `0.0.5` terminé, le changelog perd son marqueur `candidate`, les index décrivent le plan comme historique et le prompt `006` reste conditionnel à la publication effective du tag et à son rapport post-tag PASS.
|
||||
|
||||
## Clôture et transition
|
||||
|
||||
Le présent plan attribue dès maintenant les responsabilités de fermeture :
|
||||
|
||||
85
history/0.0.5/rel.001.md
Normal file
85
history/0.0.5/rel.001.md
Normal file
@@ -0,0 +1,85 @@
|
||||
<!-- file: history/0.0.5/rel.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# History 0.0.5 rel.001 — promotion stable pré-tag
|
||||
|
||||
## Statut
|
||||
|
||||
FAIL
|
||||
|
||||
La gate opérateur de `rel.001` exécutée le `2026-09-25` n'a pas atteint un PASS complet. La promotion documentaire vers `VERSION = 0.0.5`, les audits Markdown et les contrôles Git observés sont propres, mais l'audit Python inline de cohérence historique s'est interrompu avec un `SyntaxError` avant de pouvoir produire sa preuve attendue.
|
||||
|
||||
Ce history constate uniquement la validation pré-tag réellement exécutée. Aucun tag `v0.0.5`, aucune archive source taggée et aucun rapport `publish.001` ne doivent être produits tant que le correctif de clôture n'a pas obtenu un PASS.
|
||||
|
||||
## Baseline et état observé
|
||||
|
||||
La baseline opérateur est le commit `390dd63` de `0.0.5-rc.1`, poussé sur `master` avant application de `rel.001`.
|
||||
|
||||
L'opérateur a confirmé :
|
||||
|
||||
```text
|
||||
VERSION 0.0.5
|
||||
history/0.0.5/rc.1.md présent dans HEAD
|
||||
deltas/0.0.5/rel.001.md présent
|
||||
history/0.0.5/rel.001.md absent avant clôture
|
||||
README.md version 14
|
||||
ROADMAP.md version 8
|
||||
CHANGELOG.md version 9
|
||||
docs/000-README.md version 17
|
||||
docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md version 15
|
||||
ROADMAP 0.0.5 terminé
|
||||
CHANGELOG section stable 0.0.5
|
||||
prompt 006 skeleton Tauri toujours DEFER
|
||||
```
|
||||
|
||||
Les contrôles textuels de présentation stable ont tous réussi avant l'audit Python inline.
|
||||
|
||||
## Échec de la preuve ciblée
|
||||
|
||||
Le bloc Python inline de `rel.001` contenait l'assertion générée suivante :
|
||||
|
||||
```python
|
||||
assert '## 0.0.5
|
||||
' in changelog
|
||||
```
|
||||
|
||||
La chaîne simple est coupée physiquement sur deux lignes dans le heredoc. Python a donc interrompu le contrôle avec :
|
||||
|
||||
```text
|
||||
File "<stdin>", line 42
|
||||
assert '## 0.0.5
|
||||
^
|
||||
SyntaxError: unterminated string literal (detected at line 42)
|
||||
```
|
||||
|
||||
La preuve `0.0.5 stable history audit: clean (...)` n'a par conséquent jamais été produite. Conformément au contrat de validation PGR, une preuve requise qui échoue rend la tranche `FAIL`, même lorsque les contrôles exécutés ensuite sont propres.
|
||||
|
||||
## Audits documentaires et Git observés
|
||||
|
||||
Après cet échec, les audits Markdown ont affiché :
|
||||
|
||||
```text
|
||||
Markdown header audit: clean (168 file(s))
|
||||
Markdown table audit: clean (8 table(s), 168 file(s))
|
||||
Markdown link audit: clean (161 local link(s), 168 file(s))
|
||||
```
|
||||
|
||||
`git diff --check` et `git diff --cached --check` n'ont produit aucun diagnostic. Le statut indexé transmis est exactement :
|
||||
|
||||
```text
|
||||
M CHANGELOG.md
|
||||
M README.md
|
||||
M ROADMAP.md
|
||||
M VERSION
|
||||
A deltas/0.0.5/rel.001.md
|
||||
M docs/000-README.md
|
||||
M docs/plans/005-V0_0_5_RECONCILIATION_PLAN.md
|
||||
```
|
||||
|
||||
Aucun défaut fonctionnel de la stable n'est établi par cette gate. Le défaut constaté appartient à la commande de validation livrée par `rel.001`.
|
||||
|
||||
## Transition
|
||||
|
||||
Appliquer ce history puis committer/pousser la tranche `rel.001` avec son statut `FAIL`. Ne pas créer le tag `v0.0.5`.
|
||||
|
||||
Corriger ensuite uniquement la clôture dans `rel.001.fix.1`. Le correctif MUST conserver `VERSION = 0.0.5`, MUST NOT réécrire silencieusement `deltas/0.0.5/rel.001.md` et MUST rejouer une preuve historique syntaxiquement valide avant toute publication.
|
||||
Reference in New Issue
Block a user