Files
devarea/REPO_REFACT.md
T
mr.zeroandClaude Opus 5 b97752ebea 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) <noreply@anthropic.com>
2026-08-18 16:53:37 +02:00

12 KiB

Gitea org-struktúra

Végrehajtva 2026-08-15-én. 6 új org, 30 repo áthelyezve, 44 repo a helyén.

Előtte a tools org 19 repót tartott hét különböző célra, az internal-t pedig csak az fogta össze, hogy privát. A bontásban az org a rendeltetést jelöli, a titkosságot a repo private kapcsolója. Nyolc org, 44 repo.

A régi útvonalak átirányítanak (Gitea repo_redirect), tehát a meglévő klónok, CI-hivatkozások és wiki-linkek nem törtek el.

git.teletypegames.org/
│
├── games/           Katalógus-termék: valaki játszik vele.
│   │                Szabály: a katalógus status mezője nem "demo".
│   ├── blessingofra
│   ├── impostor
│   ├── realworld            (még nincs a katalógusban)
│   ├── rabbitroller
│   ├── rabbitc64
│   ├── bombexpert
│   ├── trickster-tiles
│   ├── nyuller              (még nincs a katalógusban)
│   ├── mranderson           (archivált)
│   ├── c64-demo             ← ma a workspace demos/ mappájában
│   └── c64-demo-cpp
│
├── demos/           Egy platformot mutat be, nem önálló termék.
│   │                Szabály: a katalógus status mezője "demo". A wikiben
│   │                nincs saját projektoldaluk, a motor oldalán szerepelnek.
│   ├── bevy-demo
│   ├── ebitengine-demo
│   ├── love-demo
│   ├── phaser-demo
│   ├── inkwell-demo
│   └── pong                 ← ma games/, de a katalógusban "demo"
│
├── engines/         Saját motor és könyvtár, amitől más repók függnek.
│   │                A wiki sidebar "Engines" fejléce már ma ezeket sorolja.
│   ├── warp_engine          Rails engine: katalógus + API   ← ma tools/
│   ├── rubbs                Ruby gem: Telnet BBS keretrendszer   ← ma tools/
│   ├── inkwell              Go: Point'n'Click DSL   ← ma games/
│   ├── gorpg                Go: Ebitengine RPG motor   ← ma games/
│   └── warpstore            Python: a store-motorok közös magja   ← új, 2026-08-17
│
├── bbs/             BBS szerverek és showcase-ek. A keretrendszerük
│   │                (rubbs) az engines/ alatt van.
│   ├── bbs-server
│   ├── sermo-bbs            ← ma internal/
│   └── impostor-bbs         ← ma games/
│
├── build/           CI toolchain és builder image.
│   │                Ide tartoznak a ma internal/ névtérben publikált
│   │                *-builder image-ek és a tic80pro is.
│   ├── bevy-tools
│   ├── c64-tools
│   ├── ebitengine-tools
│   ├── godot-tools
│   ├── love-tools
│   ├── phaser-tools
│   └── tic80-tools
│
├── services/        A mi szerverünkön fut.
│   ├── teletypegames        a publikus oldal monorepója
│   ├── statusbot            Discord bot
│   ├── updater              Discord bot
│   ├── social-updater       YouTube → Facebook/LinkedIn
│   ├── blog-writer          wiki → Gemini → blog pipeline
│   └── redmine-tree         Redmine fa nézet
│
├── tools/           Egy ember telepíti és futtatja magának.
│   │                A név marad, de kap definíciót és 19 helyett 3 repót
│   │                (a store-ok 2026-08-18-án a stores orgba kerültek).
│   ├── ttg-marketplace      ← ma internal/
│   ├── devarea
│   └── 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
│   ├── warp-engine-desktop-store     motor: az OS alkalmazás-menüje
│   ├── ttg-desktop-store             a mi store-unk rajta
│   └── warp-engine-client       Electron kliens a desktop store-hoz
│
└── infra/           Maga a kiszolgáló-környezet.
    ├── nginx-conf           ← ma internal/
    ├── backup-scripts       ← ma internal/
    └── wiki-pages           ← ma internal/

Elvégezve

  • 6 org létrehozva (demos, engines, bbs, build, services, infra), 30 repo áthelyezve.
  • Mind a 6 új org megkapta a games mintájára a megjelenítendő nevet és a Teletypers csapatot — azonos jogosultságokkal (includes_all_repositories, can_create_org_repo, private láthatóság, ugyanaz a units_map) és ugyanazzal a négy taggal.
  • devarea/scripts/repos.list — 30 klón-URL átírva; a check-repos.sh zölden fut (45 repo, 1 kizárva).
  • 33 lokális checkout origin-ja átállítva, köztük a warp_engine régi git.teletype.hu hosztja.
  • WIKI_CONNECTION.md — új Org oszlop.
  • Go modulnevek rendezve (2026-08-16): engines/inkwell, engines/gorpg és demos/inkwell-demo go.mod-ja a mai orgot viszi; a gorpg-é korábban module game volt. Mindhárom kiadva, lásd ECOSYSTEM_PLAN.md.
  • 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.
  • 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"), 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 <id> home-mal osztoztak volna a config.json-on és a state.json-on — a home mostantól <id>-<motor>, a RetroArch-telepítő az elsőnél átmozgatja a régit.
  • 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-guistores/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-<hoszt>-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.orgteletypegames), é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

  • Woodpecker — a /api/ci/pipelines tábla hiányos: 10 repót mutat, miközben a Woodpecker 19-et ismer és mind aktív, és a tulajdonos több sorban a költözés előtti orgot mutatja. A szinkron lefuttatása rendbe teszi; addig a woodpecker-cli repo ls a mérvadó.

Ami magától rendben van

  • A /code oldal owner/name alakban írja ki a repókat, tehát az új org-nevek külön munka nélkül megjelennek rajta.
  • A check-repos.sh org-agnosztikus (tea repo list-ből olvas), nem kellett hozzányúlni.