Move the stores into a stores org, and record what it took

The `tools` definition — "one person installs and runs it for themselves" — stopped
describing the store engines: they are products other people can build on. So the
four store repositories left `tools` for a `stores` org of their own, and the org
map, the clone list, the wiki table and the ecosystem plan follow. `check-repos.sh`
is green at 49.

Worth writing down for the next org change: `tea` has no transfer subcommand, but
`tea api` makes authenticated calls with tea's own credentials, which is enough for
all of it — POST /orgs, POST /orgs/{org}/teams, PUT /teams/{id}/members/{user},
POST /repos/{owner}/{repo}/transfer. And the transfer keeps Gitea's redirect: the
old `tools/...` raw URLs answer 301, so the installers on already-configured boxes
did not break. That is why this was a transfer and not a migrate-and-delete.

`warpstore` stayed in `engines`: it is a library other repos depend on, which is
what that org is for. The launcher gap moved out of the tools chapter of
ECOSYSTEM_PLAN into the new stores one, where it belongs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-18 08:33:36 +02:00
co-authored by Claude Opus 5
parent 0f2fe6de62
commit 24ece3cb35
6 changed files with 42 additions and 26 deletions
+13 -4
View File
@@ -88,14 +88,23 @@ A mérce a saját folyamatunk, a wiki [PDLC](https://wiki.teletypegames.org/team
--- ---
## `tools` — amit az ember magának telepít ## `stores` — a katalógus a gazdaplatform könyvtárformátumában
**Van:** `warp-engine-batocera-store` (általános engine bármely WarpEngine-es oldalhoz) + `ttg-batocera-store` (a mi store-unk), `ttg-marketplace` (Claude plugin marketplace), `devarea` (workspace-kezelés). **Van:** `warpstore` (a közös mag, az `engines` alatt) + két motor és a rájuk épülő két store-unk: `warp-engine-batocera-store` / `ttg-batocera-store` (EmulationStation, ROM-mappák, gamelist.xml) és `warp-engine-retroarch-store` / `ttg-retroarch-store` (RetroArch `.lpl` playlistek, borítóképek). 2026-08-18-ig a `tools` orgban voltak.
**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. **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.
**Hiányzik:**
- **Nincs asztali launcher.** A két store emulátorra telepít, tehát a katalógus cartridge-felét viszi. A natív buildeket Batocerán Ports-ként fel tudjuk tenni, hétköznapi PC-re viszont semmilyen utunk nincs — ez a `MORE_STORES.md` 2. pontja.
- **A webes buildeket egyik store sem fogyasztja**, pedig az a legelterjedtebb assetünk.
---
## `tools` — amit az ember magának telepít
**Van:** `ttg-marketplace` (Claude plugin marketplace), `devarea` (workspace-kezelés), `tic80-draw-image` (vendorolt).
**Hiányzik:** **Hiányzik:**
- **Nincs asztali/webes launcher.** A Batocera-doboz le van fedve, a hétköznapi PC nincs.
- **Nincs projekt-scaffolder.** A `devarea` a workspace-t kezeli, de nincs `ttg new game --platform godot` jellegű parancs, ami a demót, a Makefile-t, a `.woodpecker.yaml`-t és a Redmine-projektet együtt felhúzza. Ez az egyetlen eszköz, ami a `build` és a `games` közti szakadékot áthidalná. - **Nincs projekt-scaffolder.** A `devarea` a workspace-t kezeli, de nincs `ttg new game --platform godot` jellegű parancs, ami a demót, a Makefile-t, a `.woodpecker.yaml`-t és a Redmine-projektet együtt felhúzza. Ez az egyetlen eszköz, ami a `build` és a `games` közti szakadékot áthidalná.
- **Nincs helyi fejlesztői környezet dobozolva.** A builder image-ek CI-re valók; lokálisan mindenki maga rakja össze a toolchaint. - **Nincs helyi fejlesztői környezet dobozolva.** A builder image-ek CI-re valók; lokálisan mindenki maga rakja össze a toolchaint.
+2 -2
View File
@@ -93,8 +93,8 @@ A `shortcuts.vdf`-be írva a játékaink megjelennek a Steam könyvtárban borí
`.lpl` JSON playlist platformonként. A cartridge-eket sokkal nagyobb közönségnek adja, mint a Batocera: Android, asztali gépek, konzolok. Kis formátum, kevés munka. `.lpl` JSON playlist platformonként. A cartridge-eket sokkal nagyobb közönségnek adja, mint a Batocera: Android, asztali gépek, konzolok. Kis formátum, kevés munka.
**Kész (2026-08-17).** Terv és mérések: `RETROARCH_STORE.md`. Három repó: **Kész (2026-08-17).** Terv és mérések: `RETROARCH_STORE.md`. Három repó:
`engines/warpstore` (a kiemelt közös mag), `tools/warp-engine-retroarch-store` `engines/warpstore` (a kiemelt közös mag), `stores/warp-engine-retroarch-store`
(motor), `tools/ttg-retroarch-store` (a mi store-unk). A Batocera-motor ugyanabban (motor), `stores/ttg-retroarch-store` (a mi store-unk). A Batocera-motor ugyanabban
a körben átült a közös magra. **Hátra van:** valódi gépen kipróbálni, hogy a a körben átült a közös magra. **Hátra van:** valódi gépen kipróbálni, hogy a
VICE-mag magától indítja-e a `.prg`-t, és hogy az Android `adb push` útvonalai VICE-mag magától indítja-e a `.prg`-t, és hogy az Android `adb push` útvonalai
állnak-e. Ott mérve: mind a két mag (`vice_x64`, `tic80`) elérhető minden célon, Androidon is; a playlist-könyvtár nem feltétlenül a RetroArch alapkönyvtárában van, tehát a `retroarch.cfg` kötelező olvasmány; a borító csak PNG lehet, amin az `impostor` GIF-je ma elhasal; leírást a `.lpl` nem tud. A motor egyetlen valódi új képessége az út-átírás (`stage_root` / `target_prefix`), ami az Androidot és a 2. pont asztali store-ját egyszerre szolgálja. állnak-e. Ott mérve: mind a két mag (`vice_x64`, `tic80`) elérhető minden célon, Androidon is; a playlist-könyvtár nem feltétlenül a RetroArch alapkönyvtárában van, tehát a `retroarch.cfg` kötelező olvasmány; a borító csak PNG lehet, amin az `impostor` GIF-je ma elhasal; leírást a `.lpl` nem tud. A motor egyetlen valódi új képessége az út-átírás (`stage_root` / `target_prefix`), ami az Androidot és a 2. pont asztali store-ját egyszerre szolgálja.
+13 -7
View File
@@ -67,15 +67,20 @@ git.teletypegames.org/
│ └── redmine-tree Redmine fa nézet │ └── redmine-tree Redmine fa nézet
├── tools/ Egy ember telepíti és futtatja magának. ├── tools/ Egy ember telepíti és futtatja magának.
│ │ A név marad, de kap definíciót és 19 helyett 5 repót. │ │ A név marad, de kap definíciót és 19 helyett 3 repót
├── warp-engine-batocera-store │ (a store-ok 2026-08-18-án a stores orgba kerültek).
│ ├── ttg-batocera-store
│ ├── warp-engine-retroarch-store ← új, 2026-08-17
│ ├── ttg-retroarch-store ← új, 2026-08-17
│ ├── ttg-marketplace ← ma internal/ │ ├── ttg-marketplace ← ma internal/
│ ├── devarea │ ├── devarea
│ └── tic80-draw-image (vendorolt, GitHub) │ └── tic80-draw-image (vendorolt, GitHub)
├── stores/ Store: a katalógust egy gazdaplatform saját
│ │ könyvtárformátumába írja. Motor + a rá épülő store-ok.
│ │ ← új org, 2026-08-18
│ ├── warp-engine-batocera-store motor: EmulationStation + gamelist.xml
│ ├── ttg-batocera-store a mi store-unk rajta
│ ├── warp-engine-retroarch-store motor: RetroArch .lpl playlistek
│ └── ttg-retroarch-store a mi store-unk rajta
└── infra/ Maga a kiszolgáló-környezet. └── infra/ Maga a kiszolgáló-környezet.
├── nginx-conf ← ma internal/ ├── nginx-conf ← ma internal/
├── backup-scripts ← ma internal/ ├── backup-scripts ← ma internal/
@@ -93,8 +98,9 @@ git.teletypegames.org/
- **Gem git-források rendezve** (2026-08-16): `bbs/bbs-server`, `bbs/sermo-bbs` és `bbs/impostor-bbs` — mindhárom a kanonikus hoszton az `engines/rubbs`-ra mutat, a rögzített revíziók változatlanul. - **Gem git-források rendezve** (2026-08-16): `bbs/bbs-server`, `bbs/sermo-bbs` és `bbs/impostor-bbs` — mindhárom a kanonikus hoszton az `engines/rubbs`-ra mutat, a rögzített revíziók változatlanul.
- **Builder image-ek átköltöztetve** (2026-08-16): mind a 8 konténer-csomag a `build` org alá került, a `ci_platforms` és a dokumentáció (7 toolchain README + Dockerfile, 2 wiki-oldal) átírva. Az `internal` org ezzel kiüríthető — ez volt az egyetlen, ami visszatartotta. - **Builder image-ek átköltöztetve** (2026-08-16): mind a 8 konténer-csomag a `build` org alá került, a `ci_platforms` és a dokumentáció (7 toolchain README + Dockerfile, 2 wiki-oldal) átírva. Az `internal` org ezzel kiüríthető — ez volt az egyetlen, ami visszatartotta.
- **Wiki `engines/` névtér** (2026-08-16): a `warp-engine`, `rubbs` és `inkwell` oldal egy közös `/engines` szekcióba került, a régi URL-ek Grav-átirányítással élnek tovább. - **Wiki `engines/` névtér** (2026-08-16): a `warp-engine`, `rubbs` és `inkwell` oldal egy közös `/engines` szekcióba került, a régi URL-ek Grav-átirányítással élnek tovább.
- **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"), `tools/warp-engine-retroarch-store` és `tools/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. A `tools/` ezzel 5 helyett 7 repó. - **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.
- **Workspace mappák igazítva** (2026-08-16): a mappa mostantól egy az egyben az org (`bbs/`, `build/`, `demos/`, `engines/`, `games/`, `infra/`, `services/`, `tools/`). Kivétel a `devarea`, ami a gyökérben marad, mert a `clone-repos.sh` a szülőjébe klónoz. - **`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.
- **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 ## Nyitott pontok
+4 -4
View File
@@ -7,8 +7,8 @@ pedig a libretro buildbot indexéből.
> **Megvalósítva ugyanaznap.** Három repó: > **Megvalósítva ugyanaznap.** Három repó:
> [`engines/warpstore`](https://git.teletypegames.org/engines/warpstore) (közös mag), > [`engines/warpstore`](https://git.teletypegames.org/engines/warpstore) (közös mag),
> [`tools/warp-engine-retroarch-store`](https://git.teletypegames.org/tools/warp-engine-retroarch-store) (motor), > [`stores/warp-engine-retroarch-store`](https://git.teletypegames.org/stores/warp-engine-retroarch-store) (motor),
> [`tools/ttg-retroarch-store`](https://git.teletypegames.org/tools/ttg-retroarch-store) (a mi store-unk). > [`stores/ttg-retroarch-store`](https://git.teletypegames.org/stores/ttg-retroarch-store) (a mi store-unk).
> A 11. pont javaslatával szemben a közös rész **azonnal** kiemelve — lásd az > A 11. pont javaslatával szemben a közös rész **azonnal** kiemelve — lásd az
> „Amit a megvalósítás megváltoztatott" szakaszt a végén. Wiki: > „Amit a megvalósítás megváltoztatott" szakaszt a végén. Wiki:
> [warpstore](https://wiki.teletypegames.org/engines/warpstore), > [warpstore](https://wiki.teletypegames.org/engines/warpstore),
@@ -143,10 +143,10 @@ libretrodb-formátum, külső eszközlánccal — ez a terven kívül, külön f
A Batocera-store bevált kettéosztását követi, ugyanazokkal a nevekkel: A Batocera-store bevált kettéosztását követi, ugyanazokkal a nevekkel:
``` ```
tools/warp-engine-retroarch-store a motor: retroarch_store.py, install.sh stores/warp-engine-retroarch-store a motor: retroarch_store.py, install.sh
│ config.json │ config.json
tools/ttg-retroarch-store a mi store-unk: config + wrapper installer stores/ttg-retroarch-store a mi store-unk: config + wrapper installer
``` ```
Amit telepít: Amit telepít:
+5 -5
View File
@@ -38,10 +38,10 @@ This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` f
| `services/statusbot` | `services` | Discord Thread Scheduler | `infra/wiki-pages/pages/others/statusbot/default.md` | https://wiki.teletypegames.org/others/statusbot | | `services/statusbot` | `services` | Discord Thread Scheduler | `infra/wiki-pages/pages/others/statusbot/default.md` | https://wiki.teletypegames.org/others/statusbot |
| `services/teletypegames` | `services` | Public site | `infra/wiki-pages/pages/infrastructure/public-site/default.md` | https://wiki.teletypegames.org/infrastructure/public-site | | `services/teletypegames` | `services` | Public site | `infra/wiki-pages/pages/infrastructure/public-site/default.md` | https://wiki.teletypegames.org/infrastructure/public-site |
| `services/updater` | `services` | Discord Updater Bot | `infra/wiki-pages/pages/others/updater/default.md` | https://wiki.teletypegames.org/others/updater | | `services/updater` | `services` | Discord Updater Bot | `infra/wiki-pages/pages/others/updater/default.md` | https://wiki.teletypegames.org/others/updater |
| `tools/ttg-batocera-store` | `tools` | TTG Batocera Store | `infra/wiki-pages/pages/others/ttg-batocera-store/default.md` | https://wiki.teletypegames.org/others/ttg-batocera-store | | `stores/ttg-batocera-store` | `stores` | TTG Batocera Store | `infra/wiki-pages/pages/stores/ttg-batocera-store/default.md` | https://wiki.teletypegames.org/stores/ttg-batocera-store |
| `tools/ttg-retroarch-store` | `tools` | TTG RetroArch Store | `infra/wiki-pages/pages/others/ttg-retroarch-store/default.md` | https://wiki.teletypegames.org/others/ttg-retroarch-store | | `stores/ttg-retroarch-store` | `stores` | TTG RetroArch Store | `infra/wiki-pages/pages/stores/ttg-retroarch-store/default.md` | https://wiki.teletypegames.org/stores/ttg-retroarch-store |
| `tools/warp-engine-batocera-store` | `tools` | WarpEngine Batocera Store | `infra/wiki-pages/pages/others/warp-engine-batocera-store/default.md` | https://wiki.teletypegames.org/others/warp-engine-batocera-store | | `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 |
| `tools/warp-engine-retroarch-store` | `tools` | WarpEngine RetroArch Store | `infra/wiki-pages/pages/others/warp-engine-retroarch-store/default.md` | https://wiki.teletypegames.org/others/warp-engine-retroarch-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 |
## Notes ## Notes
@@ -61,7 +61,7 @@ This file lives in the `devarea` repo (`tools/devarea`). The repo's `scripts/` f
- `rabbitc64` is the C64 port of `rabbitroller`; both have their own project pages with cross-references. - `rabbitc64` is the C64 port of `rabbitroller`; both have their own project pages with cross-references.
- The `wiki-pages` repo (the wiki itself: Grav + fetcher + BBS front-end) documents itself on the `infrastructure/wiki-site` page. - The `wiki-pages` repo (the wiki itself: Grav + fetcher + BBS front-end) documents itself on the `infrastructure/wiki-site` page.
- The `tools/warp_engine` repo (in `repos.list`, 2026-08-04) is a **read-only split mirror**: development happens in the `teletypegames` monorepo (`libs/ruby/warp_engine`), CI republishes the mirror on every change. The `infrastructure/warp-engine` page documents the engine as a standalone product (mountable Rails engine: catalog, CI-callable updater, JSON API, optional ActiveAdmin); the monorepo itself remains documented by `infrastructure/public-site`. - The `tools/warp_engine` repo (in `repos.list`, 2026-08-04) is a **read-only split mirror**: development happens in the `teletypegames` monorepo (`libs/ruby/warp_engine`), CI republishes the mirror on every change. The `infrastructure/warp-engine` page documents the engine as a standalone product (mountable Rails engine: catalog, CI-callable updater, JSON API, optional ActiveAdmin); the monorepo itself remains documented by `infrastructure/public-site`.
- The Batocera store (2026-08-10) was split in two on 2026-08-15: `tools/warp-engine-batocera-store` is the reusable engine (the former `tools/batocera-store` repo, renamed), and `tools/ttg-batocera-store` is our store on top of it — a `config.json` plus a wrapper installer. Each has its own page, and the old `others/batocera-store` page became `others/ttg-batocera-store` (id 233 kept); the engine page is new (id 235). Both appear in the sidebar's Others section (`config/sitenav.yaml`). The engine speaks the WarpEngine API, so `infrastructure/warp-engine` is the catalog-side counterpart of both. - The Batocera store (2026-08-10) was split in two on 2026-08-15: `warp-engine-batocera-store` is the reusable engine (the former `tools/batocera-store` repo, renamed), and `ttg-batocera-store` is our store on top of it — a `config.json` plus a wrapper installer. Each has its own page, and the old `others/batocera-store` page became `others/ttg-batocera-store` (id 233 kept); the engine page is new (id 235). Both appear in the sidebar (`config/sitenav.yaml`). The engine speaks the WarpEngine API, so `infrastructure/warp-engine` is the catalog-side counterpart of both. The RetroArch store joined them on 2026-08-17 with the same two-repo shape and a shared core (`engines/warpstore`), and on 2026-08-18 all four repos moved from `tools` to their own `stores` org, the four wiki pages with them: `pages/others/<slug>``pages/stores/<slug>`, with a `Stores` sidebar section of its own and a Grav redirect per page in `config/site.yaml`, so the old `/others/...` URLs still resolve.
- The `bevy-tools` / `bevy-demo` and `phaser-tools` / `phaser-demo` repos (2026-07-31) are documented by the engine-wide `development/bevy` and `development/phaser` pages — the demos have no separate project pages, following the inkwell/inkwell-demo pattern. Both pages appear in the sidebar's Development section (`config/sitenav.yaml`). - The `bevy-tools` / `bevy-demo` and `phaser-tools` / `phaser-demo` repos (2026-07-31) are documented by the engine-wide `development/bevy` and `development/phaser` pages — the demos have no separate project pages, following the inkwell/inkwell-demo pattern. Both pages appear in the sidebar's Development section (`config/sitenav.yaml`).
- `demos/ebitengine-demo` is a borderline case: the `development/bevy` and `development/phaser` pages reference it ("the same demo"), and it is also the example project of the `development/ebitengine` page (`ebitenginedemo`), but that page has no reference-project section presenting the demo like the bevy/phaser pages do. - `demos/ebitengine-demo` is a borderline case: the `development/bevy` and `development/phaser` pages reference it ("the same demo"), and it is also the example project of the `development/ebitengine` page (`ebitenginedemo`), but that page has no reference-project section presenting the demo like the bevy/phaser pages do.
- The `games/nyuller` repo was cloned from Gitea (`games/nyuller`) on 2026-08-01; it has no wiki page. - The `games/nyuller` repo was cloned from Gitea (`games/nyuller`) on 2026-08-01; it has no wiki page.
+5 -4
View File
@@ -55,9 +55,10 @@ services/statusbot|ssh://git@git.teletypegames.org:2222/services/statusbot
services/teletypegames|ssh://git@git.teletypegames.org:2222/services/teletypegames services/teletypegames|ssh://git@git.teletypegames.org:2222/services/teletypegames
services/teletype-orbit|ssh://git@git.teletypegames.org:2222/services/teletype-orbit services/teletype-orbit|ssh://git@git.teletypegames.org:2222/services/teletype-orbit
services/updater|ssh://git@git.teletypegames.org:2222/services/updater services/updater|ssh://git@git.teletypegames.org:2222/services/updater
stores/ttg-batocera-store|ssh://git@git.teletypegames.org:2222/stores/ttg-batocera-store
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-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/tic80-draw-image|https://github.com/cxong/tic80-draw-image.git
tools/ttg-batocera-store|ssh://git@git.teletypegames.org:2222/tools/ttg-batocera-store
tools/ttg-marketplace|ssh://git@git.teletypegames.org:2222/tools/ttg-marketplace tools/ttg-marketplace|ssh://git@git.teletypegames.org:2222/tools/ttg-marketplace
tools/ttg-retroarch-store|ssh://git@git.teletypegames.org:2222/tools/ttg-retroarch-store
tools/warp-engine-batocera-store|ssh://git@git.teletypegames.org:2222/tools/warp-engine-batocera-store
tools/warp-engine-retroarch-store|ssh://git@git.teletypegames.org:2222/tools/warp-engine-retroarch-store