mr.zeroandClaude Opus 5 c5895c923c Log the client rename, the full catalog and the version header
Two entries in REPO_REFACT.md: WarpEngine Client with the unavailable-titles work and the
build-time registry address, and the WarpEngine version header with the movable
pipeline-software link.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 19:46:32 +02:00
2026-08-01 17:25:00 +02:00

devarea

Workspace management repo for TTG: use it to clone the whole workspace in its category-folder structure, and to verify that the clone list is in sync with the Gitea server (git.teletypegames.org).

Quick start

On a fresh machine:

mkdir TTG && cd TTG
git clone ssh://git@git.teletypegames.org:2222/tools/devarea
cd devarea
make setup    # install tea + clone all repos + check

Repos are cloned into the parent directory of the devarea checkout (the workspace root). To use a different target: make clone ROOT=/path/to/workspace.

Make targets

Target What it does
make help List available targets (default)
make tea Install tea (Gitea CLI) via Homebrew if missing, and verify the login
make clone Clone all repos based on scripts/repos.list; existing ones are skipped
make check Compare the clone list against the server (tea repo list --output json)
make setup All three in one: tea + clone + check

Scripts

All scripts live under scripts/ and can also be run standalone:

  • install-tea.sh — installs tea and verifies the login. Without a login it prints the setup command (tea login add --name ttg --url https://git.teletypegames.org).
  • clone-repos.sh [target-dir] — clones every line of repos.list into the given structure. Idempotent: existing clones are skipped.
  • check-repos.sh — checks in both directions: repos that exist on the server but are missing from the list (MISSING), and repos listed as Gitea repos but absent from the server (STALE). Exits with 1 on any hit, so it is CI-friendly. It pages through the server list: Gitea caps a page at 50 items whatever --limit asks for, and before this was fixed (2026-08-18, at 51 repos) the check quietly compared against the first 50 and reported a real repo as STALE.

Data files

  • scripts/repos.list — the repos to clone, one per line in <workspace-relative path>|<clone URL> form. New repo on the server → add it here (make check will complain if it is missing). Non-Gitea repos (GitHub) may also appear; the check skips those.
  • scripts/repos.ignore — repos that exist on the server but are intentionally not cloned (<owner>/<name>); the check does not report these as missing.

Workspace structure

Every folder is a Gitea org, one to one — that is the rule since 2026-08-16, and it is why a repo's path in repos.list is simply <org>/<name>:

TTG/
├── devarea/        # this repo — has to sit here, clone-repos.sh clones into its parent
├── bbs/            # BBS servers and showcases
├── build/          # CI toolchains and builder images (*-tools)
├── demos/          # one per engine: shows a platform, not a product
├── engines/        # own engines and libraries other repos depend on
├── games/          # catalog products
├── infra/          # the server environment itself (nginx, backups, wiki-pages)
├── services/       # what runs on our server (public site, bots)
├── stores/         # store engines and the stores built on them
├── tools/          # what one person installs and runs for themselves
├── media/          # reference images and documents — not git repos
└── memory/         # working agreements the assistants read (not a git repo)

Two exceptions to the one-to-one rule: devarea itself, which stays at the workspace root because clone-repos.sh clones into its parent directory, and media/ + memory/, which are not repos at all. repos.ignore lists the server-side repos that are deliberately not cloned.

The org taxonomy — what each org is for, and why a repo belongs to one rather than another — is in REPO_REFACT.md.

Estate documentation

These describe the estate as a whole, which is why they live here rather than in any single repo:

  • WIKI_CONNECTION.md — which repo is documented by which wiki page, and which Gitea org each repo belongs to.
  • REPO_REFACT.md — the Gitea org structure: what each org is for and what it contains.
  • ECOSYSTEM_PLAN.md — what we have per org towards a complete game development lifecycle, and what is still missing.
  • MORE_STORES.md — which further host platforms could get a store like the Batocera one, measured against what the catalog actually ships.

The ttg-ops plugin in ttg-marketplace reads these rather than carrying its own copy of the rules.

S
Description
No description provided
Readme
324 KiB
Languages
Shell 83.6%
Makefile 16.4%