diff --git a/.github/CLAUDE.md b/.github/CLAUDE.md index 9803910..be50cc5 100644 --- a/.github/CLAUDE.md +++ b/.github/CLAUDE.md @@ -115,38 +115,34 @@ BRIEF: One-line description **`README.md` is the single source of truth for the repository version.** -- **Bump the patch version on every PR** — increment `XX.YY.ZZ` (e.g. `01.02.03` → `01.02.04`) in `README.md` before opening the PR; the `sync-version-on-merge` workflow propagates it automatically to all badges and `FILE INFORMATION` headers on merge to `main`. +- **Patch version is auto-bumped by the release workflow** — `release.yml` reads the current version from `README.md`, increments the patch (`XX.YY.ZZ` → `XX.YY.(ZZ+1)`), updates `README.md`, `templateDetails.xml`, and the matching channel in `updates.xml`, commits, pushes, then builds the ZIP. Manual bumping is no longer required. - The `VERSION: XX.YY.ZZ` field in `README.md` governs all other version references. - Version format is zero-padded semver: `XX.YY.ZZ` (e.g. `01.02.03`). - Never hardcode a specific version in document body text — use the badge or FILE INFORMATION header only. ### Joomla Version Alignment -The version in `README.md` **must always match** the `` tag in `manifest.xml` and the latest entry in `updates.xml`. The `make release` command / release workflow updates all three automatically. +The version in `README.md` **must always match** the `` tag in `templateDetails.xml` and the matching channel entry in `updates.xml`. The release workflow updates all three automatically. + +### Multi-Channel updates.xml + +`updates.xml` contains separate `` blocks per stability channel (development, alpha, beta, rc, stable). Each release workflow only modifies its own channel using targeted Python regex replacement — other channels are preserved untouched. Joomla filters by the user's "Minimum Stability" setting. ```xml - -01.02.04 - - - - {{EXTENSION_NAME}} - 01.02.04 - - - https://git.mokoconsulting.tech/MokoConsulting/MokoCassiopeia/releases/download/01.02.04/{{EXTENSION_ELEMENT}}-01.02.04.zip - - - - - + ...development... + ...alpha... + ...beta... + ...rc... + ...stable... ``` +**Key rules:** +- SHA-256 must be raw hex (no `sha256:` prefix) +- Version format must be `XX.YY.ZZ`, not tag names like `v01` +- Download URLs must point to Gitea (not GitHub) for all pre-release channels + --- ## Joomla Extension Structure @@ -286,11 +282,11 @@ Approved prefixes: `dev/` · `rc/` · `version/` · `patch/` · `copilot/` · `d | Change type | Documentation to update | |-------------|------------------------| | New or renamed PHP class/method | PHPDoc block; `docs/api/` entry | -| New or changed manifest.xml | Update `updates.xml` version; bump README.md version | -| New release | Prepend `` block to `updates.xml`; update CHANGELOG.md; bump README.md version | +| New or changed manifest.xml | Release workflow auto-bumps version across README.md, templateDetails.xml, and updates.xml | +| New release | Trigger `release.yml` — auto-bumps patch, builds ZIP, updates matching channel in `updates.xml` | | New or changed workflow | `docs/workflows/.md` | | Any modified file | Update the `VERSION` field in that file's `FILE INFORMATION` block | -| **Every PR** | **Bump the patch version** — increment `XX.YY.ZZ` in `README.md`; `sync-version-on-merge` propagates it | +| **Every release** | **Patch auto-bumped** by `release.yml` — no manual version bump needed | ---