0.0.2
This commit is contained in:
154
deltas/0.0.2/rel.001.md
Normal file
154
deltas/0.0.2/rel.001.md
Normal file
@@ -0,0 +1,154 @@
|
||||
<!-- file: deltas/0.0.2/rel.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.0.2 rel.001 — promotion stable
|
||||
|
||||
## Baseline
|
||||
|
||||
Version attendue avant application :
|
||||
|
||||
```text
|
||||
0.0.2-rc.1.fix.1
|
||||
```
|
||||
|
||||
Le history `history/0.0.2/rc.1.fix.1.md` MUST avoir été appliqué et committé avant ce delta.
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.0.2
|
||||
```
|
||||
|
||||
`rel.001` est l'identifiant opérationnel de cette clôture stable ; il ne fait pas partie de la version SemVer produit.
|
||||
|
||||
## Objet
|
||||
|
||||
Promouvoir mécaniquement la release candidate validée vers la stable `0.0.2`, finaliser les métadonnées vivantes de la release et préparer le commit/tag stable.
|
||||
|
||||
Cette tranche n'introduit aucune nouvelle règle normative, aucun nouveau profil, aucun nouvel audit et aucun nouveau scope fonctionnel.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
ROADMAP.md
|
||||
docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.0.2/rel.001.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
## Changements
|
||||
|
||||
- `VERSION` devient `0.0.2` ;
|
||||
- `README.md` présente `0.0.2` comme la première release matérialisant des profils technologiques réutilisables et référence son plan historique ;
|
||||
- `ROADMAP.md` marque `0.0.2` terminé ;
|
||||
- le plan `0.0.2` est clôturé après `rc.1.fix.1` et rappelle la séparation entre `rel.001` pré-tag et `publish.001` post-tag ;
|
||||
- `CHANGELOG.md` n'est pas modifié : l'entrée stable `0.0.2` préparée en RC est déjà finalisée ;
|
||||
- `prompts/003-V0_0_3_START_PROMPT.md` n'est pas modifié : il cible déjà `v0.0.2` et demande explicitement le rapport post-tag lorsqu'il existe.
|
||||
|
||||
## Validation opérateur
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = "0.0.2"
|
||||
|
||||
grep -F 'La release `0.0.2` ajoute le premier modèle de profils réutilisables' README.md
|
||||
grep -F 'plan historique des premiers profils `0.0.2`' README.md
|
||||
grep -F -- '- `(x) 0.0.2`' ROADMAP.md
|
||||
grep -F 'Plan clôturé par la promotion stable `0.0.2` après validation de `0.0.2-rc.1.fix.1`.' docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md
|
||||
grep -F 'Le contrôle post-tag `publish.001` reste une preuve séparée' docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md
|
||||
grep -Fx '## 0.0.2' CHANGELOG.md
|
||||
|
||||
test -f prompts/003-V0_0_3_START_PROMPT.md
|
||||
grep -F 'v0.0.2' prompts/003-V0_0_3_START_PROMPT.md
|
||||
grep -F 'pgr-0.0.2-publish.001-report.md' prompts/003-V0_0_3_START_PROMPT.md
|
||||
|
||||
for delta in deltas/0.0.2/*.md; do
|
||||
name="${delta##*/}"
|
||||
if [ "$name" = 'rel.001.md' ]; then
|
||||
continue
|
||||
fi
|
||||
test -f "history/0.0.2/$name" || {
|
||||
echo "Missing history for ${delta}" >&2
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
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
|
||||
|
||||
roots = [Path(name) for name in ('README.md', 'RULES.md', 'ROADMAP.md', 'CHANGELOG.md')]
|
||||
for directory in ('docs', 'deltas', 'history', 'prompts'):
|
||||
roots.extend(Path(directory).rglob('*.md'))
|
||||
|
||||
paths = sorted(set(roots))
|
||||
errors = []
|
||||
for path in paths:
|
||||
lines = path.read_text(encoding='utf-8').splitlines()
|
||||
expected = f'<!-- file: {path.as_posix()} -->'
|
||||
if len(lines) < 2 or lines[0] != expected:
|
||||
errors.append(f'{path}: invalid file header')
|
||||
elif re.fullmatch(r'<!-- version: [1-9][0-9]* -->', lines[1]) is None:
|
||||
errors.append(f'{path}: invalid version header')
|
||||
|
||||
if errors:
|
||||
for error in errors:
|
||||
print(error)
|
||||
raise SystemExit(1)
|
||||
|
||||
print(f'Markdown header audit: clean ({len(paths)} file(s))')
|
||||
PY
|
||||
|
||||
git diff --check
|
||||
|
||||
git add VERSION README.md ROADMAP.md \
|
||||
docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md \
|
||||
deltas/0.0.2/rel.001.md
|
||||
|
||||
git diff --cached --check
|
||||
|
||||
git status --short
|
||||
```
|
||||
|
||||
La sortie attendue avant ajout du history est exactement :
|
||||
|
||||
```text
|
||||
M README.md
|
||||
M ROADMAP.md
|
||||
M VERSION
|
||||
A deltas/0.0.2/rel.001.md
|
||||
M docs/plans/002-V0_0_2_RULE_PROFILES_PLAN.md
|
||||
```
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
- confirmer que la promotion stable ne contient aucun changement fonctionnel ou normatif nouveau ;
|
||||
- confirmer que `0.0.2` clôt uniquement les profils `510`, `520` et `610` retenus par le plan ;
|
||||
- confirmer que les profils différés restent différés ;
|
||||
- confirmer que le prompt `0.0.3` demande explicitement l'archive taggée et le rapport `publish.001` lorsqu'il existe ;
|
||||
- confirmer que `CHANGELOG.md` décrit la stable utilement sans recopier les détails de prerelease.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Créer et appliquer séparément `history/0.0.2/rel.001.md`, committer la stable `0.0.2`, créer le tag `v0.0.2`, pousser commit et tag, puis télécharger l'archive source produite depuis ce tag et exécuter la vérification post-tag `publish.001`.
|
||||
|
||||
### FAIL
|
||||
|
||||
Ne pas créer le tag. Corriger la promotion stable dans une nouvelle tranche de clôture explicite avant toute publication.
|
||||
Reference in New Issue
Block a user