Files
devarea/README.md
T
mr.zeroandClaude Opus 5 c76d4816d8 Take REPO_REFACT.md and ECOSYSTEM_PLAN.md under version control
Both were written into the workspace root, which is not a git repo, so
they were versioned nowhere: one `rm` and they were gone, and nobody
else on the team could see them. They belong next to WIKI_CONNECTION.md
— all three describe the estate rather than any single repo.

The references in the ttg-ops skills follow in the marketplace repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 11:19:33 +02:00

86 lines
3.2 KiB
Markdown

# 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:
```sh
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.
## 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
```
TTG/
├── devarea/ # this repo
├── teletypegames/ # public site monorepo (GitHub)
├── wiki-pages/ # wiki mirror (Grav)
├── archive/ # retired projects
├── demos/ # engine demos, experiments
├── games/ # games
├── media/ # assets, images (not git)
├── tools/ # standalone tools, infra
├── tools_bbs/ # BBS-related repos
├── tools_build/ # engine/build toolchains (*-tools)
└── tools_libs/ # own libraries (inkwell, rubbs, gorpg)
```
## Estate documentation
These describe the estate as a whole, which is why they live here rather than in
any single repo:
- **[WIKI_CONNECTION.md](WIKI_CONNECTION.md)** — which repo is documented by
which wiki page, and which Gitea org each repo belongs to.
- **[REPO_REFACT.md](REPO_REFACT.md)** — the Gitea org structure: what each org
is for and what it contains.
- **[ECOSYSTEM_PLAN.md](ECOSYSTEM_PLAN.md)** — what we have per org towards a
complete game development lifecycle, and what is still missing.
The `ttg-ops` plugin in `ttg-marketplace` reads these rather than carrying its
own copy of the rules.