# t5de-catalog T5DE's catalog server (see README.md). Part of T5DE; the contract with the hub is t5de-hub's `docs/products.md` (git.t5de.dev/t5de/t5de-hub, usually checked out beside this one), product file rules are t5de-api's `pack` package (`docs/pack.md`). ## Rules - Never commit IMVU's files: tests make their product files in code (a minimal `index.xml`, fake textures). - Never commit secrets (catalog keys, tokens). - Commits: author "dhkatz "; never the user's real name or email. - Changes reach main only through pull requests, squash-merged: the PR's title becomes the commit on main, so it must be a conventional commit (`feat(api): …`, `fix(web): …`, `docs: …`; `!` before the colon for a breaking change), checked by `.gitea/workflows/pull-request.yml`. Commits on the branch can be anything. Push a branch and open the pull request on git.t5de.dev (web UI or API); the user merges. - Releases: release-bot keeps a `chore(release): vX.Y.Z` pull request open (`release.yml`, git-cliff from those titles); merging it tags vX.Y.Z, which builds the image and deploys prod. Never tag by hand (v* tags are release-bot's). - Follow `docs/products.md` exactly; change it there (in t5de-hub) first if the contract needs to change.