123 lines
5.2 KiB
Markdown
123 lines
5.2 KiB
Markdown
<!-- file: deltas/0.0.3/alpha.1.fix.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.0.3-alpha.1.fix.1 — périmètre Rust/Cargo du plan
|
|
|
|
## Baseline et version
|
|
|
|
Baseline : tranche `0.0.3-alpha.1` validée par l'opérateur, avec `history/0.0.3/alpha.1.md` appliqué et committé. Ce fix ne doit pas être appliqué sur un état où le history `alpha.1` n'est pas encore dans le commit de base.
|
|
|
|
Version avant application :
|
|
|
|
```text
|
|
0.0.3-alpha.1
|
|
```
|
|
|
|
Version après application :
|
|
|
|
```text
|
|
0.0.3-alpha.1.fix.1
|
|
```
|
|
|
|
## Motif et observations
|
|
|
|
Le delta `alpha.1` a passé sa gate mécanique. La revue du plan ensuite a montré que la tranche Rust prévue autour du seul `rustfmt.toml` n'intégrait pas les réglages Clippy et les deux manifests Cargo communs déjà décrits dans `510-RUST_CARGO.md` et pratiqués dans KSP et Games.
|
|
|
|
Les archives de référence supplémentaires inspectées sont :
|
|
|
|
```text
|
|
khadhroony-solana-project-v0.3.16.zip SHA-256 db3cc1b3fc3fb07ee864b02e2a7346c673d4cf63b33e8e872aca6c6458856ca0
|
|
games-v0.3.5.zip SHA-256 5f5fdee1a271386766d059657d6eaa831acdc263b3e722fed738808335c0a105
|
|
```
|
|
|
|
Les deux projets centralisent lints et métadonnées Cargo, et conservent `rustfmt.toml` ainsi qu'un `clippy.toml`. Les scripts Rust des projets mêlent plusieurs politiques ; le plan corrigé en tire des candidats de propriétés isolées sans les recopier. La seule exception de lints locaux constatée parmi les `45` crates inspectées concerne la frontière Android de Games.
|
|
|
|
## Scope
|
|
|
|
REPLACE :
|
|
|
|
```text
|
|
VERSION
|
|
docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
```
|
|
|
|
ADD :
|
|
|
|
```text
|
|
deltas/0.0.3/alpha.1.fix.1.md
|
|
```
|
|
|
|
DELETE : aucun.
|
|
|
|
Le plan passe de `<!-- version: 1 -->` à `<!-- version: 2 -->` pour sa révision réelle. Les snapshots `deltas/0.0.3/alpha.1.md` et `history/0.0.3/alpha.1.md` restent inchangés. Aucun template, script, règle normative ou manifest de suppression n'est ajouté dans ce fix.
|
|
|
|
## Contenu corrigé
|
|
|
|
- le template Rust prévu couvre `rustfmt.toml`, les niveaux de lint Rust/Clippy dans Cargo, les manifests workspace/membre et, seulement si justifié, des paramètres distincts dans `clippy.toml` ;
|
|
- le plan compare les deux corpus réels, relève l'héritage explicite des lints et son exception Android bornée, distingue les options communes des seuils ou dépendances propres à un projet ;
|
|
- les tranches sont redimensionnées : `alpha.2` formatage/Clippy, `alpha.3` manifests Cargo, `alpha.4` audit de headers Markdown, puis décision conditionnelle sur un template de workflow ;
|
|
- les scripts Rust KSP/Games servent de corpus de comparaison pour des audits futurs read-only et monotâches, sans transfert direct de leurs règles locales vers PGR.
|
|
|
|
## Validation opérateur
|
|
|
|
Après application sur le commit `alpha.1` :
|
|
|
|
```bash
|
|
test "$(cat VERSION)" = '0.0.3-alpha.1.fix.1'
|
|
git cat-file -e HEAD:history/0.0.3/alpha.1.md
|
|
test -f deltas/0.0.3/alpha.1.fix.1.md
|
|
test -f history/0.0.3/alpha.1.md
|
|
test ! -e history/0.0.3/alpha.1.fix.1.md
|
|
|
|
grep -Fx '<!-- version: 2 -->' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
grep -F 'Les `22` crates KSP héritent des lints workspace' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
grep -F '### alpha.2 — formatage et configuration Clippy' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
grep -F '### alpha.3 — manifests Cargo workspace et crate membre' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
grep -F '### alpha.4 — audit de headers Markdown' docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
|
|
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
|
|
|
|
files = [Path(name) for name in ('README.md', 'RULES.md', 'ROADMAP.md', 'CHANGELOG.md')]
|
|
for directory in ('docs', 'deltas', 'history', 'prompts'):
|
|
files.extend(Path(directory).rglob('*.md'))
|
|
files = sorted(set(files))
|
|
for path in files:
|
|
lines = path.read_text(encoding='utf-8').splitlines()
|
|
assert len(lines) >= 2 and lines[0] == f'<!-- file: {path.as_posix()} -->', path
|
|
assert re.fullmatch(r'<!-- version: [1-9][0-9]* -->', lines[1]), path
|
|
print(f'Markdown header audit: clean ({len(files)} file(s))')
|
|
PY
|
|
|
|
git diff --check
|
|
git add VERSION docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md deltas/0.0.3/alpha.1.fix.1.md
|
|
git diff --cached --check
|
|
git status --short
|
|
```
|
|
|
|
Avant ajout du history du fix, le scope indexé attendu est :
|
|
|
|
```text
|
|
M VERSION
|
|
A deltas/0.0.3/alpha.1.fix.1.md
|
|
M docs/plans/003-V0_0_3_TEMPLATES_AUDITS_PLAN.md
|
|
```
|
|
|
|
Revue complémentaire : confirmer que la correction ne copie pas de version de dépendance, de path Cargo ou de seuil Clippy arbitraire ; vérifier que le plan reste une prévision et que `alpha.1` demeure un snapshot historique inchangé.
|
|
|
|
## Transition
|
|
|
|
### PASS
|
|
|
|
Produire et appliquer séparément `history/0.0.3/alpha.1.fix.1.md` avec les résultats réellement observés, puis committer ce fix avant tout delta `alpha.2`.
|
|
|
|
### FAIL
|
|
|
|
Consigner le résultat réel dans le history du fix et poursuivre par `alpha.1.fix.2` limité au cadrage, ou engager un REPLAN explicite si le scope Rust doit changer davantage.
|