0.1.0-alpha.2
This commit is contained in:
201
deltas/0.1.0/alpha.2.md
Normal file
201
deltas/0.1.0/alpha.2.md
Normal file
@@ -0,0 +1,201 @@
|
||||
<!-- file: deltas/0.1.0/alpha.2.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.0-alpha.2 — clôture stable et identité `rel.N`
|
||||
|
||||
## Baseline
|
||||
|
||||
Baseline attendue : `0.1.0-alpha.1` committée avec `history/0.1.0/alpha.1.md` en `PASS`.
|
||||
|
||||
Cette tranche MUST être appliquée uniquement après le commit/push complet de `alpha.1` ; elle ne doit pas être superposée au workspace encore non committé de la gate précédente.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.0-alpha.1
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.0-alpha.2
|
||||
```
|
||||
|
||||
## Objet
|
||||
|
||||
Corriger la convention normative de clôture stable avant diffusion plus large de PGR :
|
||||
|
||||
- utiliser `rel.1`, `rel.2`, etc. sans padding pour les nouvelles releases ;
|
||||
- conserver sans renommage tous les artefacts historiques `rel.001*` déjà publiés ;
|
||||
- distinguer le nom de la tranche de clôture de l'identité du commit stable ;
|
||||
- rendre explicite qu'une clôture `FAIL`, `PARTIAL` ou `BLOCKED` conserve le suffixe opérationnel dans son commit ;
|
||||
- rendre explicite que la première tranche `rel.N[/fix.M]` qui obtient réellement le `PASS` stable est committée sous `X.Y.Z` avant création du tag `vX.Y.Z`.
|
||||
|
||||
La tranche ne modifie aucun profil technologique, skeleton, template, script d'audit ou convention de publication post-tag `publish.001`.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
docs/rules/200-GOVERNANCE.md
|
||||
docs/rules/210-WORKFLOW.md
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.0/alpha.2.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Le plan actif est révisé parce qu'il enregistre `alpha.1 PASS` et deux horizons différés explicitement décidés pendant la session — audit Python d'un sous-ensemble Clippy après Games/KSP et future famille deployment/operations — sans leur attribuer de numéro ni les absorber dans `0.1.0`.
|
||||
|
||||
Aucun `history/0.1.0/alpha.2.md` n'est anticipé avant la gate opérateur.
|
||||
|
||||
## Convention obtenue
|
||||
|
||||
La représentation future canonique est :
|
||||
|
||||
```text
|
||||
rel.1
|
||||
rel.1.fix.1
|
||||
rel.2
|
||||
...
|
||||
```
|
||||
|
||||
Pour le message du commit de clôture, le défaut PGR devient :
|
||||
|
||||
```text
|
||||
history rel.1 FAIL / PARTIAL / BLOCKED
|
||||
-> X.Y.Z-rel.1
|
||||
|
||||
history rel.1.fix.1 FAIL / PARTIAL / BLOCKED
|
||||
-> X.Y.Z-rel.1.fix.1
|
||||
|
||||
premier history rel.N[/fix.M] PASS établissant réellement la stable
|
||||
-> X.Y.Z
|
||||
```
|
||||
|
||||
`VERSION` MAY déjà être `X.Y.Z` pendant ces tranches de fermeture : `rel.N` n'est pas une prerelease SemVer. Le tag `vX.Y.Z` intervient uniquement après le commit final `X.Y.Z` contenant le history `PASS` stable.
|
||||
|
||||
Les fichiers historiques comme :
|
||||
|
||||
```text
|
||||
deltas/0.0.5/rel.001.md
|
||||
history/0.0.5/rel.001.md
|
||||
deltas/0.0.5/rel.001.fix.1.md
|
||||
history/0.0.5/rel.001.fix.1.md
|
||||
```
|
||||
|
||||
restent intacts.
|
||||
|
||||
## Validation opérateur
|
||||
|
||||
Après application sur le commit de `0.1.0-alpha.1`, depuis la racine du dépôt :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = '0.1.0-alpha.2'
|
||||
test -f history/0.1.0/alpha.1.md
|
||||
test -f deltas/0.1.0/alpha.2.md
|
||||
test ! -e history/0.1.0/alpha.2.md
|
||||
|
||||
grep -Fx '<!-- version: 5 -->' docs/rules/200-GOVERNANCE.md
|
||||
grep -Fx '<!-- version: 6 -->' docs/rules/210-WORKFLOW.md
|
||||
grep -Fx '<!-- version: 2 -->' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
|
||||
grep -F 'représentation canonique n'utilise pas de zéro de padding' docs/rules/200-GOVERNANCE.md
|
||||
grep -F 'première tranche de clôture PASS' docs/rules/200-GOVERNANCE.md
|
||||
grep -F 'history rel.1 FAIL / PARTIAL / BLOCKED' docs/rules/210-WORKFLOW.md
|
||||
grep -F 'premier history rel.N[/fix.M] PASS qui établit réellement la stable' docs/rules/210-WORKFLOW.md
|
||||
grep -F 'La présente règle ne renomme pas `publish.001`' docs/rules/210-WORKFLOW.md
|
||||
|
||||
grep -F 'sous-ensemble des conventions Rust/Clippy' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
grep -F 'série dédiée au déploiement et à l'exploitation' docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
|
||||
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 - <<'PY'
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
history = Path('history/0.1.0/alpha.1.md').read_text(encoding='utf-8')
|
||||
assert re.search(r'## Statut\s+PASS\s', history)
|
||||
|
||||
governance = Path('docs/rules/200-GOVERNANCE.md').read_text(encoding='utf-8')
|
||||
workflow = Path('docs/rules/210-WORKFLOW.md').read_text(encoding='utf-8')
|
||||
plan = Path('docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md').read_text(encoding='utf-8')
|
||||
|
||||
for phrase in (
|
||||
'rel.1',
|
||||
'rel.1.fix.1',
|
||||
'représentation canonique n\'utilise pas de zéro de padding',
|
||||
'première tranche de clôture PASS',
|
||||
'Le commit `X.Y.Z` MUST',
|
||||
):
|
||||
assert phrase in governance or phrase in workflow, phrase
|
||||
|
||||
for path in (
|
||||
Path('deltas/0.0.5/rel.001.md'),
|
||||
Path('history/0.0.5/rel.001.md'),
|
||||
Path('deltas/0.0.5/rel.001.fix.1.md'),
|
||||
Path('history/0.0.5/rel.001.fix.1.md'),
|
||||
):
|
||||
assert path.is_file(), path
|
||||
|
||||
assert 'publish.001' in workflow
|
||||
assert 'La présente règle ne renomme pas `publish.001`' in workflow
|
||||
assert 'sous-ensemble des conventions Rust/Clippy' in plan
|
||||
assert "série dédiée au déploiement et à l'exploitation" in plan
|
||||
assert '- `( ) 0.1.1`' not in Path('ROADMAP.md').read_text(encoding='utf-8')
|
||||
|
||||
print('0.1.0 alpha.2 rel identity audit: clean (rel.N unpadded, historical rel.001 preserved, stable commit identity explicit)')
|
||||
PY
|
||||
|
||||
git diff --check
|
||||
git add VERSION docs/rules/200-GOVERNANCE.md docs/rules/210-WORKFLOW.md \
|
||||
docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md \
|
||||
deltas/0.1.0/alpha.2.md
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
Le scope indexé attendu avant ajout du history est :
|
||||
|
||||
```text
|
||||
M VERSION
|
||||
A deltas/0.1.0/alpha.2.md
|
||||
M docs/plans/006-V0_1_0_REUSABLE_BASELINE_PLAN.md
|
||||
M docs/rules/200-GOVERNANCE.md
|
||||
M docs/rules/210-WORKFLOW.md
|
||||
```
|
||||
|
||||
La revue opérateur doit également confirmer que :
|
||||
|
||||
- aucune occurrence historique `rel.001*` n'a été renommée ;
|
||||
- `publish.001` reste une convention indépendante et n'est pas modifiée par cette tranche ;
|
||||
- aucune commande de handoff Git automatique n'est encore rendue normative ici — ce sujet appartient à `alpha.3` ;
|
||||
- les horizons Clippy statique et deployment/operations restent de simples candidats différés dans le plan ;
|
||||
- aucun profil Web, Java/Android, WASM, Tauri ou serveur n'est ajouté ou modifié.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire `history/0.1.0/alpha.2.md` à partir des résultats réellement observés. Dans la même réponse, si aucune décision nouvelle n'est ouverte, préparer séparément `0.1.0-alpha.3` consacré au handoff automatique des commandes opérateur après history, au commit/push, au tag stable et aux preuves requises pour `publish.001`.
|
||||
|
||||
Après remise du history, fournir déjà spontanément le bloc Git exact de fermeture de `alpha.2`, conformément à la décision acquise, même si `alpha.3` sera la tranche qui rendra ce comportement normatif.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le résultat réel dans le history puis ouvrir `0.1.0-alpha.2.fix.1` ou un REPLAN selon la cause. Aucun élément du handoff automatique prévu pour `alpha.3` ne doit être absorbé silencieusement dans le fix.
|
||||
Reference in New Issue
Block a user