Releases as pull requests, the same in all five app repos (hub, catalog, live, riftbound, karaoke). The Gitea side (PRs only into main, squash merges, required checks, `v*` tags only by release-bot, its `RELEASE_TOKEN` org secret) is dhkatz/infra `modules/app-repo`. - **`.gitea/workflows/pull-request.yml`**: the PR title must be a conventional commit (`feat(api): …`, `fix: …`, `feat!: …`); it becomes the commit on main. `chore(release)` only from release-bot's `release` branch. Required to merge (`Pull request / title`). - **`.gitea/default_merge_message/SQUASH_TEMPLATE.md`**: the squash commit is `<PR title> (#<n>)` plus the description. - **`.gitea/workflows/release.yml`**, on every push to main, as release-bot (`RELEASE_TOKEN`): - if the commit is a merged `chore(release): vX.Y.Z`: tag it vX.Y.Z (lightweight), push the tag (CI builds the image, Komodo deploys prod), publish the release with git-cliff's notes; - otherwise, if anything releasable landed since the last tag: rewrite the `release` branch (CHANGELOG.md) and open or update `chore(release): vX.Y.Z`. - **`cliff.toml`** (git-cliff 2.14.2, pinned by sha512): feat → minor, fix/perf/revert → patch, breaking → minor while 0.x; chore/ci/docs/test/style/build/refactor alone don't release. Only conventional commits count, so the history before this is left out. - **`CHANGELOG.md`**: header only; release PRs fill it. - Agent notes (CLAUDE.md / AGENTS.md): the PR flow and title format; never tag by hand. After merging, `Release` runs on main and should report nothing to release (this PR is `ci:`); the first `feat:`/`fix:` PR merged after it opens the first release PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #1 Co-authored-by: dhkatz <[email protected]>
1.2 KiB
1.2 KiB
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 [email protected]"; 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.Zpull 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.mdexactly; change it there (in t5de-hub) first if the contract needs to change.