From b97752ebea90d9cfe4d241722d8d5dad9dd2af2e Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Tue, 18 Aug 2026 16:53:37 +0200 Subject: [PATCH] Log the client rename, the registry-only stores and its CI Three entries in REPO_REFACT.md: the repository is stores/warp-engine-client (Gitea keeps the redirect, releases and tags moved with it); a store config repository is optional because the engine's defaults cover everything but identity; and the client has its own Woodpecker pipeline rather than the /build/config extension, which serves game platforms publishing into the catalog. repos.list, WIKI_CONNECTION.md, ECOSYSTEM_PLAN.md and MORE_STORES.md follow the new name; check-repos.sh is green with 52 repos. Co-Authored-By: Claude Opus 5 (1M context) --- ECOSYSTEM_PLAN.md | 2 +- MORE_STORES.md | 2 +- REPO_REFACT.md | 7 +++++-- WIKI_CONNECTION.md | 2 +- scripts/repos.list | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ECOSYSTEM_PLAN.md b/ECOSYSTEM_PLAN.md index 8d26a32..c1c7d63 100644 --- a/ECOSYSTEM_PLAN.md +++ b/ECOSYSTEM_PLAN.md @@ -94,7 +94,7 @@ A mérce a saját folyamatunk, a wiki [PDLC](https://wiki.teletypegames.org/team **Erősség:** a Batocera store a mintapélda arra, hogyan válik egy belső eszközből általánosan használható termék — bárki felhúzhat saját store-t a saját katalógusára. A második motor ezt igazolta: a közös rész kiemelése után egy új gazdaplatform egy adapter plusz egy konfiguráció, nem új program. -**Grafikus kliens és store-registry (2026-08-18):** `stores/warp-engine-desktop-gui` Electron-ablak a desktop store CLI fölé, és hozzá a `services/teletypegames`-ben egy `Store` modell + publikus `GET /api/stores` végpont ActiveAdminnel. A kliens innen kérdezi, milyen store-ok vannak — tehát egy új store egy adatbázissor, nem egy app-kiadás. Szándékosan a host appban van, nem a WarpEngine-ben: a motor egy katalógust szolgál ki, és nem tudja, ki ad rá store-t. +**Grafikus kliens és store-registry (2026-08-18):** `stores/warp-engine-client` Electron-ablak a desktop store CLI fölé, és hozzá a `services/teletypegames`-ben egy `Store` modell + publikus `GET /api/stores` végpont ActiveAdminnel. A kliens innen kérdezi, milyen store-ok vannak — tehát egy új store egy adatbázissor, nem egy app-kiadás. Szándékosan a host appban van, nem a WarpEngine-ben: a motor egy katalógust szolgál ki, és nem tudja, ki ad rá store-t. **Hiányzik:** - **A `html` csak online megy.** Az asztali store menü-bejegyzést ad hozzá, de az a kiszolgált oldalt nyitja meg, mert a `html` asset nem letölthető archívum. Offline webes játékhoz a `warp_engine`-nek zip-ben is publikálnia kellene. diff --git a/MORE_STORES.md b/MORE_STORES.md index b44ddce..c495e35 100644 --- a/MORE_STORES.md +++ b/MORE_STORES.md @@ -103,7 +103,7 @@ visszaesési sorrendben van, ezért egy natív build nélküli cím is bekerül gépenként **10 cím** (a demókkal). macOS-en végigmérve és a játékok valóban elindítva; Linux és Windows valódi gépen még nincs kipróbálva. -**Grafikus kliens hozzá (2026-08-18):** `stores/warp-engine-desktop-gui`, Electron-ablak a CLI fölé. Ezért kapott a motor `--json`-t. Egyben a Windows-telepítő is, mert ott a `curl … | sh` nem opció — store nélkül az app maga tölti le a motort. +**Grafikus kliens hozzá (2026-08-18):** `stores/warp-engine-client`, Electron-ablak a CLI fölé. Ezért kapott a motor `--json`-t. Egyben a Windows-telepítő is, mert ott a `curl … | sh` nem opció — store nélkül az app maga tölti le a motort. ### 3. Steam-könyvtár A `shortcuts.vdf`-be írva a játékaink megjelennek a Steam könyvtárban borítóval — és ezzel a Steam Decken is. A letöltést a 2. pontról örökli, tehát ráépül, nem mellé megy. Bevált technika, a Heroic és a Lutris is ezt teszi. diff --git a/REPO_REFACT.md b/REPO_REFACT.md index 27d6e5b..c7e9aac 100644 --- a/REPO_REFACT.md +++ b/REPO_REFACT.md @@ -82,7 +82,7 @@ git.teletypegames.org/ │ ├── ttg-retroarch-store a mi store-unk rajta │ ├── warp-engine-desktop-store motor: az OS alkalmazás-menüje │ ├── ttg-desktop-store a mi store-unk rajta -│ └── warp-engine-desktop-gui Electron kliens a desktop store-hoz +│ └── warp-engine-client Electron kliens a desktop store-hoz │ └── infra/ Maga a kiszolgáló-környezet. ├── nginx-conf ← ma internal/ @@ -104,7 +104,10 @@ git.teletypegames.org/ - **Három új repó a store-vonalon** (2026-08-17): `engines/warpstore` (a store-motorok kiemelt közös magja — az `engines/` definíciója szerint „könyvtár, amitől más repók függnek"), `warp-engine-retroarch-store` és `ttg-retroarch-store`. A `repos.list` és a `WIKI_CONNECTION.md` táblája követi; a `check-repos.sh` 49 repóval zölden fut. - **`stores` org** (2026-08-18): a négy store-repó a `tools`-ból egy saját orgba került, mert a `tools` definíciója („egy ember telepíti és futtatja magának”) a motorokra már nem állt — azok termékek, amikre más is építhet. Az org a `games` mintájára kapta a megjelenítendő nevet és a `Teletypers` csapatot: ugyanaz a négy tag, azonos `units_map`, `includes_all_repositories`, `can_create_org_repo`, privát csapat-láthatóság. A műveleteket a `tea api` végzi, amit a `tea` alparancsai nem tudnak: `POST /orgs`, `POST /orgs/{org}/teams`, `PUT /teams/{id}/members/{user}`, `POST /repos/{owner}/{repo}/transfer`. **A transzfer megőrzi a Gitea átirányítását** — a régi `tools/...` raw URL-ek 301-gyel a helyükre mutatnak, tehát a már telepített store-ok `curl`-jei nem törtek el; a hivatkozásokat ettől függetlenül mindenhol átírtuk. A `warpstore` az `engines`-ben maradt: könyvtár, nem store. - **Asztali store** (2026-08-18): `stores/warp-engine-desktop-store` és `stores/ttg-desktop-store` — a harmadik motor a közös magon. A `warpstore` ezért kapott két bővítést: a `kind` lehet **lista** (Apple Siliconon `mac_universal` > `mac_arm64` > `mac_x64`, mert az utolsó Rosettát kér), és a rekord viszi az asset katalógus-oldali útját is, mert a `html` build nem letölthető, hanem kiszolgált. Egy ütközés is kiderült és javítva lett: a RetroArch- és az asztali motor ugyanabban a store root-ban él, és a bare `` home-mal osztoztak volna a `config.json`-on és a `state.json`-on — a home mostantól `-`, a RetroArch-telepítő az elsőnél átmozgatja a régit. -- **Grafikus kliens** (2026-08-18): `stores/warp-engine-desktop-gui` — Electron-ablak a desktop store CLI-hez. A motor ezért kapott `--json`-t (`list`, `paths`, `sync`, `remove`, `purge`), a mag pedig `set_log_stream()`-et: adat a stdouton, emberi log a stderren. Az app egyben a **Windows-telepítő is**, mert ott a `curl … | sh` nem létezik: store nélkül letölti a motort, a magot és a configot ugyanabba a home-ba. Terjesztés Gitea release-ben; a macOS-csomag megépítve és a kicsomagolt `.app` visszamérve, Windows/Linux artifact CI-t vagy másik gépet kér. **Node 22+ kell a telepítéséhez** (nem a futtatásához): az Electron saját installere ESM-only, a Node 20 `require()`-je elhal rajta. +- **Grafikus kliens** (2026-08-18): `stores/warp-engine-client` — Electron-ablak a desktop store CLI-hez. A motor ezért kapott `--json`-t (`list`, `paths`, `sync`, `remove`, `purge`), a mag pedig `set_log_stream()`-et: adat a stdouton, emberi log a stderren. Az app egyben a **Windows-telepítő is**, mert ott a `curl … | sh` nem létezik: store nélkül letölti a motort, a magot és a configot ugyanabba a home-ba. Terjesztés Gitea release-ben; a macOS-csomag megépítve és a kicsomagolt `.app` visszamérve, Windows/Linux artifact CI-t vagy másik gépet kér. **Node 22+ kell a telepítéséhez** (nem a futtatásához): az Electron saját installere ESM-only, a Node 20 `require()`-je elhal rajta. +- **A kliens átnevezve** (2026-08-18): `stores/warp-engine-desktop-gui` → **`stores/warp-engine-client`**. A repónév a termékhez (WarpEngine Store) igazodik, nem a „desktop GUI” szerepéhez, és a hosztspecifikus motorok maradnak `warp-engine--store`. A `tea api -X PATCH /repos/stores/... -f name=...` végzi (a `tea repo` alparancsai nem tudják); **a Gitea itt is megőrzi az átirányítást**, a release-ek és az 5 tag a repóval együtt költöztek. Átírva: a repó belseje (`package.json` név és homepage, lockfile, README, User-Agent), a wiki-oldal mappája + fejléce + sitenav + Grav-átirányítás a régi útvonalról, a `repos.list`, a `WIKI_CONNECTION.md`, a `services/teletypegames` README-je és a `/stores` frontend-oldal. +- **Store-config repó nélkül is működik** (2026-08-18): a registry `store_repository_url`-je opcionális lett. A motor `DEFAULT_CONFIG`-ja mindent visz (host→asset leképezés, módok, platformok, viselkedés); ami hiányzik belőle, az az identitás — slug, név, katalógus —, és pont azt hordozza a registry-rekord. Repó nélkül a kliens a katalógus-hostból képzi a slugot (`teletypegames.org` → `teletypegames`), és háromszekciós configot ír. A store-config repók megmaradnak: a `curl … | sh` telepítőút továbbra is azokból jön. +- **A kliens CI-je** (2026-08-18): `stores/warp-engine-client` **saját** `.woodpecker.yaml`-t kapott, nem a `/build/config` kiterjesztést — az game-platformokat szolgál ki, amik a katalógusba publikálnak, ez viszont alkalmazást épít Gitea release-be. Négy lépés: `check` (npm ci + typecheck + lint + smoke), `linux` (AppImage + deb), `windows` (NSIS + portable, **Wine alatt**, `electronuserland/builder:22-wine`), `release` (csak tagre, a `scripts/ci-upload.sh` a `gitea_token` secrettel). **macOS marad helyi build**, mert az Apple-toolchain és az aláírás csak Macen létezik; egy teljes release tehát egy helyi `make release` + ez a pipeline. A képek parancsait előbb helyben, ugyanabban a két konténerben mértem le. - **Workspace mappák igazítva** (2026-08-16): a mappa mostantól egy az egyben az org (`bbs/`, `build/`, `demos/`, `engines/`, `games/`, `infra/`, `services/`, `stores/`, `tools/`). Kivétel a `devarea`, ami a gyökérben marad, mert a `clone-repos.sh` a szülőjébe klónoz. ## Nyitott pontok diff --git a/WIKI_CONNECTION.md b/WIKI_CONNECTION.md index a3df701..c2536d5 100644 --- a/WIKI_CONNECTION.md +++ b/WIKI_CONNECTION.md @@ -44,7 +44,7 @@ This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` f | `stores/warp-engine-batocera-store` | `stores` | WarpEngine Batocera Store | `infra/wiki-pages/pages/stores/warp-engine-batocera-store/default.md` | https://wiki.teletypegames.org/stores/warp-engine-batocera-store | | `stores/warp-engine-retroarch-store` | `stores` | WarpEngine RetroArch Store | `infra/wiki-pages/pages/stores/warp-engine-retroarch-store/default.md` | https://wiki.teletypegames.org/stores/warp-engine-retroarch-store | | `stores/warp-engine-desktop-store` | `stores` | WarpEngine Desktop Store | `infra/wiki-pages/pages/stores/warp-engine-desktop-store/default.md` | https://wiki.teletypegames.org/stores/warp-engine-desktop-store | -| `stores/warp-engine-desktop-gui` | `stores` | WarpEngine Desktop GUI | `infra/wiki-pages/pages/stores/warp-engine-desktop-gui/default.md` | https://wiki.teletypegames.org/stores/warp-engine-desktop-gui | +| `stores/warp-engine-client` | `stores` | WarpEngine Client | `infra/wiki-pages/pages/stores/warp-engine-client/default.md` | https://wiki.teletypegames.org/stores/warp-engine-client | ## Notes diff --git a/scripts/repos.list b/scripts/repos.list index 10baa4c..6e586b0 100644 --- a/scripts/repos.list +++ b/scripts/repos.list @@ -61,7 +61,7 @@ stores/ttg-desktop-store|ssh://git@git.teletypegames.org:2222/stores/ttg-desktop stores/ttg-retroarch-store|ssh://git@git.teletypegames.org:2222/stores/ttg-retroarch-store stores/warp-engine-batocera-store|ssh://git@git.teletypegames.org:2222/stores/warp-engine-batocera-store stores/warp-engine-desktop-store|ssh://git@git.teletypegames.org:2222/stores/warp-engine-desktop-store -stores/warp-engine-desktop-gui|ssh://git@git.teletypegames.org:2222/stores/warp-engine-desktop-gui +stores/warp-engine-client|ssh://git@git.teletypegames.org:2222/stores/warp-engine-client stores/warp-engine-retroarch-store|ssh://git@git.teletypegames.org:2222/stores/warp-engine-retroarch-store tools/tic80-draw-image|https://github.com/cxong/tic80-draw-image.git tools/ttg-marketplace|ssh://git@git.teletypegames.org:2222/tools/ttg-marketplace