9
MANIFEST-STANDARD
Jonathan Miller edited this page 2026-07-14 16:16:29 -05:00

← Back to Home

Repository Metadata Standard

Repository metadata — identity, governance, and build settings — for every MokoConsulting repository is stored in MokoGIT's Metadata field, a per-repository record in the MokoGIT database. It is managed through the repository Settings → Metadata page or the MokoGIT 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.

GET  /api/v1/repos/{owner}/{repo}/manifest    # read metadata
PUT  /api/v1/repos/{owner}/{repo}/manifest    # update metadata

Migration note: The legacy .mokogit/manifest.xml file (and older .mokostandards variants) is deprecated and no longer used. On first access MokoGIT 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
name Yes Repository/extension display name
org Yes Organization name (always MokoConsulting)
description Yes One-line project description
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, npm, generic
standards-version Yes MokoCLI version this repo conforms to
standards-source Yes URL to the MokoCLI repo

build

Field Required Description
language Yes Primary programming language
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

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
  • Set extension metadata (name, type, element)

Version Field

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.