Wie der Titel schon sagt, würde ich gerne alles was mit Migration zu tun hat entfernen. Ich habe zu dem Zeitpunkt schon alle vorhandenen Projekte einmal geöffnet und neu gespeichert, sprich diese sind am aktuellen Speicherstand.
Wie der Titel schon sagt, würde ich gerne alles was mit Migration zu tun hat entfernen. Ich habe zu dem Zeitpunkt schon alle vorhandenen Projekte einmal geöffnet und neu gespeichert, sprich diese sind am aktuellen Speicherstand.
admin
added this to the Development project 2026-09-18 08:33:24 +02:00
admin
moved this to Next in Development on 2026-09-18 08:33:30 +02:00
Im ganzen Repo (src, api, tools, tests) gab es genau zwei Lade-Migrationen, beide im Loader src/core/store/serialize.ts. Beide sind entfernt:
migrateAsset (autotile → tile, #131): Ein Asset vom Typ autotile ist jetzt ein unbekannter Typ und fällt beim Laden weg.
Alte Zellform (Layer mit cells-Map statt rows, vor #134): ein solcher Layer lädt leer, isStoredCells in tilemapCells.ts ist mit weg.
Vorher geprüft: Alle 7 Projekte in data/projects/ haben formatVersion 2, kein autotile und keinen Layer ohne rows. Die Seeder schreiben keine alte Form.
Zweiter, gründlicher Durchgang (auf Nachfrage), ohne weiteren Fund:
Git-Historie: Frühere Migrationen hat schon 8a71859 entfernt, danach kamen nur #131 und #134 dazu.
Nach stillen Umdeutungen gesucht: coerceValue/coerceAs (Enums fallen auf die Vorgabe, nichts wird umbenannt), Frame-Slices, startSceneId, Graph-, Track- und Layer-Leser. Dort gibt es nur „ein fehlendes Feld gilt als Vorgabe“, das ist das normale Format und keine Migration.
Die PHP-API liest und schreibt Projekte roh, sie formt nichts um.
Die autotile-Namen in model/autotile.ts sind das Viertel-Raster der Tiles, keine Umbenennung.
Bewusst stehen gelassen: Die Anzeige einer Animations-Id im Texture-Feld als <id>? (#143) ist die allgemeine Regel für fehlende Verweise. Nebenbefund, nicht angefasst: api/lib/Store.php legt neue Projekte mit formatVersion: 1 an, der Client setzt beim Laden ohnehin 2.
Tests (lokal)
npm run check → 102 Files, 1380 Tests, CHECK EXIT 0
npm run build → BUILD EXIT 0
GM_STEPS=1-16,24,25,33,36,38,39,40 (frisch geseedet) → ALL PASSED – 612 checks
Die zwei Migrationstests sind umgestellt und nicht nur gelöscht: Sie prüfen jetzt, dass die alten Formen nicht mehr gelesen werden.
Gegenprobe mit dem alten Loader-Code: Zuerst war nur einer der beiden Tests rot, weil toMatchObject mit cells: {} auf jedes Objekt passt. Die Prüfung ist jetzt toEqual({}), danach waren beide rot.
Check-Summe bleibt 1042. CI zu c91c18f habe ich beim Schreiben noch nicht gelesen.
## Erledigt – `c91c18f` (Wiki `8d85fa7`)
Im ganzen Repo (`src`, `api`, `tools`, `tests`) gab es genau **zwei** Lade-Migrationen, beide im Loader `src/core/store/serialize.ts`. Beide sind entfernt:
1. **`migrateAsset`** (autotile → tile, #131): Ein Asset vom Typ `autotile` ist jetzt ein unbekannter Typ und fällt beim Laden weg.
2. **Alte Zellform** (Layer mit `cells`-Map statt `rows`, vor #134): ein solcher Layer lädt leer, `isStoredCells` in `tilemapCells.ts` ist mit weg.
**Vorher geprüft:** Alle 7 Projekte in `data/projects/` haben `formatVersion 2`, kein `autotile` und keinen Layer ohne `rows`. Die Seeder schreiben keine alte Form.
**Zweiter, gründlicher Durchgang** (auf Nachfrage), ohne weiteren Fund:
- Git-Historie: Frühere Migrationen hat schon `8a71859` entfernt, danach kamen nur #131 und #134 dazu.
- Nach stillen Umdeutungen gesucht: `coerceValue`/`coerceAs` (Enums fallen auf die Vorgabe, nichts wird umbenannt), Frame-Slices, `startSceneId`, Graph-, Track- und Layer-Leser. Dort gibt es nur „ein fehlendes Feld gilt als Vorgabe“, das ist das normale Format und keine Migration.
- Die PHP-API liest und schreibt Projekte roh, sie formt nichts um.
- Die `autotile`-Namen in `model/autotile.ts` sind das Viertel-Raster der Tiles, keine Umbenennung.
**Bewusst stehen gelassen:** Die Anzeige einer Animations-Id im Texture-Feld als `<id>?` (#143) ist die allgemeine Regel für fehlende Verweise. Nebenbefund, nicht angefasst: `api/lib/Store.php` legt neue Projekte mit `formatVersion: 1` an, der Client setzt beim Laden ohnehin 2.
### Tests (lokal)
```
npm run check → 102 Files, 1380 Tests, CHECK EXIT 0
npm run build → BUILD EXIT 0
GM_STEPS=1-16,24,25,33,36,38,39,40 (frisch geseedet) → ALL PASSED – 612 checks
```
- Die zwei Migrationstests sind umgestellt und nicht nur gelöscht: Sie prüfen jetzt, dass die alten Formen nicht mehr gelesen werden.
- **Gegenprobe** mit dem alten Loader-Code: Zuerst war nur einer der beiden Tests rot, weil `toMatchObject` mit `cells: {}` auf jedes Objekt passt. Die Prüfung ist jetzt `toEqual({})`, danach waren beide rot.
- Check-Summe bleibt 1042. CI zu `c91c18f` habe ich beim Schreiben noch nicht gelesen.
Wiki: `Tiles.md` (Abschnitt *Older projects* gestrichen), `Tilemaps.md` („older projects still load“ ersetzt).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Wie der Titel schon sagt, würde ich gerne alles was mit Migration zu tun hat entfernen. Ich habe zu dem Zeitpunkt schon alle vorhandenen Projekte einmal geöffnet und neu gespeichert, sprich diese sind am aktuellen Speicherstand.
Erledigt –
c91c18f(Wiki8d85fa7)Im ganzen Repo (
src,api,tools,tests) gab es genau zwei Lade-Migrationen, beide im Loadersrc/core/store/serialize.ts. Beide sind entfernt:migrateAsset(autotile → tile, #131): Ein Asset vom Typautotileist jetzt ein unbekannter Typ und fällt beim Laden weg.cells-Map stattrows, vor #134): ein solcher Layer lädt leer,isStoredCellsintilemapCells.tsist mit weg.Vorher geprüft: Alle 7 Projekte in
data/projects/habenformatVersion 2, keinautotileund keinen Layer ohnerows. Die Seeder schreiben keine alte Form.Zweiter, gründlicher Durchgang (auf Nachfrage), ohne weiteren Fund:
8a71859entfernt, danach kamen nur #131 und #134 dazu.coerceValue/coerceAs(Enums fallen auf die Vorgabe, nichts wird umbenannt), Frame-Slices,startSceneId, Graph-, Track- und Layer-Leser. Dort gibt es nur „ein fehlendes Feld gilt als Vorgabe“, das ist das normale Format und keine Migration.autotile-Namen inmodel/autotile.tssind das Viertel-Raster der Tiles, keine Umbenennung.Bewusst stehen gelassen: Die Anzeige einer Animations-Id im Texture-Feld als
<id>?(#143) ist die allgemeine Regel für fehlende Verweise. Nebenbefund, nicht angefasst:api/lib/Store.phplegt neue Projekte mitformatVersion: 1an, der Client setzt beim Laden ohnehin 2.Tests (lokal)
toMatchObjectmitcells: {}auf jedes Objekt passt. Die Prüfung ist jetzttoEqual({}), danach waren beide rot.c91c18fhabe ich beim Schreiben noch nicht gelesen.Wiki:
Tiles.md(Abschnitt Older projects gestrichen),Tilemaps.md(„older projects still load“ ersetzt).