diff --git a/MANIFEST-STANDARD.-.md b/MANIFEST-STANDARD.-.md index a529f3c..291f1d1 100644 --- a/MANIFEST-STANDARD.-.md +++ b/MANIFEST-STANDARD.-.md @@ -1,34 +1,20 @@ -# .mokogitea/manifest.xml Standard +[← Back to Home](Home) -The `.mokogitea/manifest.xml` file is the canonical identity and build metadata file for all MokoConsulting repositories. It is **required** in every repo. +# Repository Metadata Standard -## Schema (v1.0) +Repository metadata — identity, governance, and build settings — for every MokoConsulting repository is stored in **MokoGitea's Metadata field**, a per-repository record in the MokoGitea database. It is managed through the repository **Settings → Metadata** page or the MokoGitea REST API — **not** through any committed file. There is no metadata file in the repository; even the platform type is a field in the Metadata record. -```xml - - - - {RepoName} - MokoConsulting - {Description} - {XX.YY.ZZ} - GNU General Public License v3 - - - {joomla|dolibarr|go|node|rust|generic} - 05.00.00 - https://git.mokoconsulting.tech/MokoConsulting/mokocli - - - {PHP|Go|JavaScript|Rust|Python} - {joomla-extension|dolibarr|application|library|mcp-server} - {src/|htdocs/custom/|./} - - +``` +GET /api/v1/repos/{owner}/{repo}/manifest # read metadata +PUT /api/v1/repos/{owner}/{repo}/manifest # update metadata ``` +> **Migration note:** The legacy `.mokogitea/manifest.xml` file (and older `.mokostandards` variants) is deprecated and no longer used. On first access MokoGitea auto-reads any existing file and imports it into the Metadata field, after which the file is removed. New repositories set metadata via the API or Settings UI and commit **no** metadata file. + ## Fields +All fields are set through the Metadata field / API. + ### identity | Field | Required | Description | @@ -36,28 +22,28 @@ The `.mokogitea/manifest.xml` file is the canonical identity and build metadata | `name` | Yes | Repository/extension display name | | `org` | Yes | Organization name (always `MokoConsulting`) | | `description` | Yes | One-line project description | -| `version` | Yes | Canonical version number in `XX.YY.ZZ` format. This is the **controlling version** used by CI workflows for releases, update-server.xml entries, and version bumps | -| `license` | Yes | License with SPDX identifier attribute | +| `version` | Yes | Canonical version in `XX.YY.ZZ` — the **controlling version** for CI releases, update-server entries, and version bumps | +| `license` | Yes | License with SPDX identifier | ### governance | Field | Required | Description | |-------|----------|-------------| -| `platform` | Yes | Target platform: `joomla`, `dolibarr`, `go`, `node`, `rust`, `generic` | +| `platform` | Yes | Target platform: `joomla`, `dolibarr`, `go`, `node`, `mcp`, `generic` | | `standards-version` | Yes | MokoStandards version this repo conforms to | -| `standards-source` | Yes | URL to mokocli repo | +| `standards-source` | Yes | URL to the mokocli repo | ### build | Field | Required | Description | |-------|----------|-------------| | `language` | Yes | Primary programming language | -| `package-type` | Yes | Package type: `joomla-extension`, `dolibarr`, `application`, `library`, `mcp-server` | -| `entry-point` | Yes | Source directory for packaging (e.g., `src/`, `htdocs/custom/`, `./`) | +| `package-type` | Yes | `joomla-extension`, `dolibarr`, `application`, `library`, `mcp-server` | +| `entry-point` | Yes | Source directory for packaging (e.g. `src/`, `htdocs/custom/`, `./`) | ## Usage by CI Workflows -The `update-server.yml` workflow reads this manifest to: +CI reads the Metadata field (via the API) to: - Determine platform and packaging strategy - Read the canonical version number - Find the source entry point for ZIP packaging @@ -65,14 +51,4 @@ The `update-server.yml` workflow reads this manifest to: ## Version Field -The `` field is the **single source of truth** for the project version. The `version_read.php` and `version_bump.php` CLI tools read and write this field. All other version references (Joomla XML manifests, README badges, etc.) are synced from this value. - -## Platform Values - -| Platform | Package Type | Entry Point | Examples | -|----------|-------------|-------------|----------| -| `joomla` | `joomla-extension` | `src/` | MokoJoomGallery, MokoJoomHero | -| `dolibarr` | `dolibarr` | `htdocs/custom/` | MokoCRM, MokoDoliAuth | -| `go` | `application` | `./` | MokoGitea | -| `node` | `mcp-server` | `./` | mcp-mokosuite-api | -| `generic` | `library` | `./` | mokocli | +The `version` value in the Metadata record is the **single source of truth** for the project version. The `version_read.php` / `version_bump.php` CLI tools read and write it through the API. All other version references (Joomla XML manifests, README badges, etc.) are synced from this value.