0.0.1-alpha.1.fix.1
This commit is contained in:
237
deltas/0.0.1/alpha.1.fix.1.md
Normal file
237
deltas/0.0.1/alpha.1.fix.1.md
Normal file
@@ -0,0 +1,237 @@
|
||||
<!-- file: deltas/0.0.1/alpha.1.fix.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.0.1-alpha.1.fix.1 — conformité Eclipse et topologie multi-app
|
||||
|
||||
## Base requise
|
||||
|
||||
État `0.0.1-alpha.1` committé avec :
|
||||
|
||||
```text
|
||||
deltas/0.0.1/alpha.1.md
|
||||
history/0.0.1/alpha.1.md = FAIL
|
||||
```
|
||||
|
||||
Le delta `alpha.1` historique ne doit pas être modifié.
|
||||
|
||||
La version devient :
|
||||
|
||||
```text
|
||||
0.0.1-alpha.1.fix.1
|
||||
```
|
||||
|
||||
## Objet
|
||||
|
||||
Corriger uniquement les défauts observés pendant la gate `alpha.1` et le cadrage associé :
|
||||
|
||||
- adopter la politique Eclipse PGR réellement applicable ;
|
||||
- versionner `.settings/org.eclipse.core.resources.prefs` ;
|
||||
- ajouter le header `file/version` au `.gitignore` ;
|
||||
- rendre la gate de fichiers consciente des règles Git ignore au lieu d'interdire les fichiers locaux ignorés ;
|
||||
- remplacer la baseline « application Web unique/monolithe » par un workspace modulaire à trois applications Actix Web distinctes ;
|
||||
- expliciter au moins trois sources Git initiales et PostgreSQL partagé pour l'état transversal.
|
||||
|
||||
Aucun code fonctionnel, manifest Cargo, frontend, migration SQL ou adapter forge n'est ajouté.
|
||||
|
||||
## Fichiers ajoutés
|
||||
|
||||
```text
|
||||
.settings/org.eclipse.core.resources.prefs
|
||||
deltas/0.0.1/alpha.1.fix.1.md
|
||||
```
|
||||
|
||||
## Fichiers remplacés
|
||||
|
||||
```text
|
||||
.gitignore
|
||||
VERSION
|
||||
README.md
|
||||
RULES.md
|
||||
ROADMAP.md
|
||||
CHANGELOG.md
|
||||
docs/objectives/001-PROJECT_OBJECTIVES.md
|
||||
docs/architecture/001-PROJECT_PROFILE.md
|
||||
docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md
|
||||
docs/plans/001-V0_0_1_FOUNDATION_PLAN.md
|
||||
docs/validation/001-VALIDATION_MATRIX.md
|
||||
```
|
||||
|
||||
Aucun fichier n'est supprimé.
|
||||
|
||||
## Décisions corrigées
|
||||
|
||||
### Eclipse
|
||||
|
||||
La politique locale devient conforme à la baseline PGR :
|
||||
|
||||
```text
|
||||
.project ignoré
|
||||
.classpath ignoré
|
||||
.settings/* ignoré
|
||||
.settings/org.eclipse.core.resources.prefs versionné
|
||||
```
|
||||
|
||||
La préférence versionnée contient :
|
||||
|
||||
```text
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
```
|
||||
|
||||
### Topologie applicative
|
||||
|
||||
Le workspace possède trois launchers distincts :
|
||||
|
||||
```text
|
||||
knowledge-pgr-server -> pgr.sasedev.com
|
||||
knowledge-howtos-server -> howtos.sasedev.com
|
||||
knowledge-snippets-server -> snippets.sasedev.com
|
||||
```
|
||||
|
||||
Ils partagent des crates `-lib` lorsque l'ownership est commun ; ils ne deviennent pas trois copies du même domaine.
|
||||
|
||||
### Sources Git
|
||||
|
||||
La baseline contient au minimum trois sources :
|
||||
|
||||
```text
|
||||
pgr
|
||||
howtos
|
||||
snippets
|
||||
```
|
||||
|
||||
Le modèle futur doit permettre plusieurs sources par famille et ne doit pas coder une limite fixe à trois repositories.
|
||||
|
||||
### PostgreSQL
|
||||
|
||||
La baseline retient une base PostgreSQL logique partagée entre les trois applications pour l'état transversal et les projections reconstructibles.
|
||||
|
||||
Le contenu éditorial publié reste autoritaire dans Git.
|
||||
|
||||
## Validation attendue
|
||||
|
||||
Après application du history `alpha.1`, commit/push de `alpha.1`, puis extraction du présent delta depuis la racine du dépôt :
|
||||
|
||||
```bash
|
||||
test "$(cat VERSION)" = "0.0.1-alpha.1.fix.1"
|
||||
|
||||
git diff --check
|
||||
|
||||
grep -Fx '# file: .gitignore' .gitignore
|
||||
grep -Fx '# version: 2' .gitignore
|
||||
grep -Fx '.settings/*' .gitignore
|
||||
grep -Fx '!.settings/org.eclipse.core.resources.prefs' .gitignore
|
||||
|
||||
grep -Fx 'eclipse.preferences.version=1' .settings/org.eclipse.core.resources.prefs
|
||||
grep -Fx 'encoding/<project>=UTF-8' .settings/org.eclipse.core.resources.prefs
|
||||
|
||||
git check-ignore -q .project
|
||||
if git check-ignore -q .settings/org.eclipse.core.resources.prefs; then
|
||||
echo '.settings/org.eclipse.core.resources.prefs must be tracked, not ignored' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 - <<'PY'
|
||||
from pathlib import Path
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
expected = {
|
||||
".gitignore",
|
||||
".settings/org.eclipse.core.resources.prefs",
|
||||
"VERSION",
|
||||
"README.md",
|
||||
"RULES.md",
|
||||
"ROADMAP.md",
|
||||
"CHANGELOG.md",
|
||||
"docs/000-README.md",
|
||||
"docs/objectives/001-PROJECT_OBJECTIVES.md",
|
||||
"docs/architecture/001-PROJECT_PROFILE.md",
|
||||
"docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md",
|
||||
"docs/plans/001-V0_0_1_FOUNDATION_PLAN.md",
|
||||
"docs/validation/001-VALIDATION_MATRIX.md",
|
||||
"deltas/0.0.1/alpha.1.md",
|
||||
"deltas/0.0.1/alpha.1.fix.1.md",
|
||||
"history/0.0.1/alpha.1.md",
|
||||
"prompts/001-V0_0_1_START_PROMPT.md",
|
||||
}
|
||||
|
||||
actual = set(
|
||||
subprocess.check_output(
|
||||
["git", "ls-files", "--cached", "--others", "--exclude-standard"],
|
||||
text=True,
|
||||
).splitlines()
|
||||
)
|
||||
assert actual == expected, (sorted(actual - expected), sorted(expected - actual))
|
||||
|
||||
for path_string in sorted(expected):
|
||||
path = Path(path_string)
|
||||
if path.suffix != ".md":
|
||||
continue
|
||||
lines = path.read_text(encoding="utf-8").splitlines()
|
||||
assert lines[0] == f"<!-- file: {path.as_posix()} -->", path
|
||||
assert re.fullmatch(r"<!-- version: [1-9][0-9]* -->", lines[1]), path
|
||||
|
||||
rules = Path("RULES.md").read_text(encoding="utf-8")
|
||||
objectives = Path("docs/objectives/001-PROJECT_OBJECTIVES.md").read_text(encoding="utf-8")
|
||||
profile = Path("docs/architecture/001-PROJECT_PROFILE.md").read_text(encoding="utf-8")
|
||||
architecture = Path("docs/architecture/002-KNOWLEDGE_ARCHITECTURE.md").read_text(encoding="utf-8")
|
||||
plan = Path("docs/plans/001-V0_0_1_FOUNDATION_PLAN.md").read_text(encoding="utf-8")
|
||||
|
||||
for phrase in (
|
||||
"knowledge-pgr-server",
|
||||
"knowledge-howtos-server",
|
||||
"knowledge-snippets-server",
|
||||
):
|
||||
assert phrase in rules, phrase
|
||||
assert phrase in objectives, phrase
|
||||
assert phrase in architecture, phrase
|
||||
|
||||
for phrase in (
|
||||
"une base PostgreSQL logique partagée",
|
||||
"au moins trois sources",
|
||||
):
|
||||
assert phrase in architecture, phrase
|
||||
|
||||
assert "Topologie d'administration" in profile
|
||||
assert "### alpha.2 — workspace Rust/Cargo minimal" in plan
|
||||
assert "### rel.1 — fermeture stable" in plan
|
||||
|
||||
for forbidden in (
|
||||
"src/main.rs",
|
||||
"src/lib.rs",
|
||||
"Cargo.toml",
|
||||
"package.json",
|
||||
"vite.config.ts",
|
||||
"migrations/",
|
||||
):
|
||||
assert not Path(forbidden).exists(), forbidden
|
||||
|
||||
print("Knowledge 0.0.1-alpha.1.fix.1 framing audit: clean")
|
||||
PY
|
||||
|
||||
git add -A
|
||||
git diff --cached --check
|
||||
git status --short
|
||||
```
|
||||
|
||||
## Revue opérateur complémentaire
|
||||
|
||||
Vérifier notamment :
|
||||
|
||||
- que `.project` reste local/ignoré et n'apparaît pas dans le staging ;
|
||||
- que `.settings/org.eclipse.core.resources.prefs` apparaît bien comme ajouté/suivi ;
|
||||
- qu'aucun code fonctionnel n'a été introduit ;
|
||||
- que trois applications distinctes sont bien la topologie produit voulue ;
|
||||
- que le partage PostgreSQL concerne l'état de plateforme et non le contenu Git autoritaire ;
|
||||
- que la topologie d'administration reste ouverte et qu'aucun quatrième serveur n'est inventé.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire `history/0.0.1/alpha.1.fix.1.md`, appliquer ce history, committer/pousser la tranche, puis seulement préparer `0.0.1-alpha.2`.
|
||||
|
||||
### FAIL / PARTIAL / BLOCKED
|
||||
|
||||
Conserver le résultat réel dans `history/0.0.1/alpha.1.fix.1.md` et rester dans le scope `alpha.1` avec un éventuel `alpha.1.fix.2`.
|
||||
Reference in New Issue
Block a user