From 06fb750319e4f0bb549e25cfea0d91a356d0d1d7 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sat, 16 May 2026 22:19:50 +0000 Subject: [PATCH] =?UTF-8?q?chore:=20remove=20docs/=20=E2=80=94=20documenta?= =?UTF-8?q?tion=20lives=20in=20wiki=20[skip=20ci]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/update-server.md | 143 ------------------------------------------ 1 file changed, 143 deletions(-) delete mode 100644 docs/update-server.md diff --git a/docs/update-server.md b/docs/update-server.md deleted file mode 100644 index 5bfe0327..00000000 --- a/docs/update-server.md +++ /dev/null @@ -1,143 +0,0 @@ - - -# Joomla Update Server - -[![MokoStandards](https://img.shields.io/badge/MokoStandards-02.01.08-blue)](https://github.com/mokoconsulting-tech/MokoStandards) - -This document explains how `update.xml` is automatically managed for this Joomla extension following the [Joomla Update Server specification](https://docs.joomla.org/Deploying_an_Update_Server). - -## How It Works - -Joomla checks for extension updates by fetching an XML file from the URL defined in the `` tag in the extension's XML manifest. MokoStandards generates this file automatically. - -### Automatic Generation - -| Event | Workflow | `` | `` | -|-------|----------|---------|-------------| -| Merge to `main` | `auto-release.yml` | `stable` | `XX.YY.ZZ` | -| Push to `dev` or `dev/**` | `update-server.yml` | `development` | `XX.YY.ZZ-dev` | -| Push to `alpha/**` | `update-server.yml` | `alpha` | `XX.YY.ZZ-alpha` | -| Push to `beta/**` | `update-server.yml` | `beta` | `XX.YY.ZZ-beta` | -| Push to `rc/**` | `update-server.yml` | `rc` | `XX.YY.ZZ-rc` | - -**Trigger behavior**: `update-server.yml` triggers on both direct pushes and PR merges to `dev`, `dev/**`, `alpha/**`, `beta/**`, and `rc/**` branches. It supports bare `dev` branches (not just `dev/**` patterns). - -### Cascade Release Channels - -Each stability level writes itself **and all lower channels** to `updates.xml`: - -| Release Stream | Channels written | -|---------------|-----------------| -| development | `development` | -| alpha | `development`, `alpha` | -| beta | `development`, `alpha`, `beta` | -| rc | `development`, `alpha`, `beta`, `rc` | -| stable | `development`, `alpha`, `beta`, `rc`, `stable` | - -This ensures Joomla sites on any "Minimum Stability" setting always see the latest available release. - -### Sync to Main - -Since Joomla sites read `updates.xml` from the `main` branch, the `update-server.yml` workflow **syncs `updates.xml` to `main` via the Gitea API** after building on non-main branches. This ensures pre-release channel entries are visible to sites checking for updates without requiring a PR merge to main. - -### Generated XML Structure - -```xml - - - - Extension Name - Extension Name update - com_extensionname - component - 01.02.03 - site - system - - stable - - https://github.com/.../releases/tag/v01.02.03 - - https://github.com/.../releases/download/v01.02.03/com_ext-01.02.03.zip - - - 8.2 - Moko Consulting - https://mokoconsulting.tech - - -``` - -### Metadata Source - -All metadata is extracted from the extension's XML manifest (`src/*.xml`) at build time: - -| XML Element | Source | Notes | -|-------------|--------|-------| -| `` | `` in manifest | Extension display name | -| `` | `` in manifest | Must match installed extension identifier | -| `` | `type` attribute on `` | `component`, `module`, `plugin`, `library`, `package`, `template` | -| `` | `client` attribute on `` | `site` or `administrator` — **required for plugins and modules** | -| `` | `group` attribute on `` | Plugin group (e.g., `system`, `content`) — **required for plugins** | -| `` | `` in manifest | Falls back to Joomla 5.x / 6.x if not specified | -| `` | `` in manifest | Included only if present | - -### Extension Manifest Setup - -Your XML manifest must include an `` tag pointing to the `update.xml` on the `main` branch: - -```xml - - My Extension - com_myextension - - - - https://raw.githubusercontent.com/mokoconsulting-tech/MokoWaaS/main/update.xml - - - -``` - -### Branch Lifecycle - -``` -dev → [alpha] → [beta] → rc → version/XX → main → dev - optional optional (integration) (production) (feedback) -``` - -1. **Development** (`dev` or `dev/**`): `updates.xml` with `development`, download points to Gitea release ZIP -2. **Alpha** (`alpha/**`): `updates.xml` with `alpha`, cascades to development channel -3. **Beta** (`beta/**`): `updates.xml` with `beta`, cascades to alpha + development channels -4. **Release Candidate** (`rc/**`): `updates.xml` with `rc`, cascades to beta + alpha + development channels -5. **Stable Release** (merge to `main`): `updates.xml` with `stable`, cascades to all channels, download points to GitHub Release asset -6. **Frozen Snapshot** (`version/XX`): immutable, never force-pushed - -### Health Checks - -The `repo_health.yml` workflow verifies on every commit: - -- `update.xml` exists in the repository root -- XML manifest exists with `` tag -- ``, ``, ``, `` tags present -- Extension `type` attribute is valid -- Language `.ini` files exist -- `index.html` directory listing protection in `src/`, `src/admin/`, `src/site/` - ---- - -*Managed by [MokoStandards](https://github.com/mokoconsulting-tech/MokoStandards). See [docs/workflows/update-server.md](https://github.com/mokoconsulting-tech/MokoStandards/blob/main/docs/workflows/update-server.md) for the full specification.*