refactor: rename package_type to extension_type across model, API, and manifest sync #646

Closed
opened 2026-06-19 06:33:43 +00:00 by jmiller · 1 comment
Owner

Problem

The package_type field name is confusing because "package" is also a Joomla extension type (pkg_). The field actually represents the extension type (component, module, plugin, package, template, library, file) — not just packages.

Scope

Rename package_typeextension_type in:

  1. Model: RepoMetadata.PackageTypeExtensionType in models/repo/repo_manifest.go
  2. DB column: package_typeextension_type (SQL migration)
  3. API struct: package_typeextension_type in routers/api/v1/repo/manifest.go
  4. Manifest sync: XML tag mapping in services/repository/manifest_sync.go
  5. Update server: joomla.go references to PackageType/ExtType
  6. Web settings UI: routers/web/repo/setting/metadata.go
  7. joomlaTypePrefix map: references PackageType
  8. MCP server: mcp-mokogitea-api tool parameter name
  9. mokoplatform CLI: joomla_metadata_validate.php and manifest_integrity.php

NOT renamed

  • .mokogitea/manifest.xml tag <package-type> — this is the source file format, changing it would break all existing repos. The sync code maps XML tag → DB column.
  • Migration files — they reference the old column name for backwards compatibility.

Migration

ALTER TABLE repo_manifest CHANGE COLUMN package_type extension_type VARCHAR(50) NOT NULL DEFAULT '';

API Change

// Before
{\"package_type\": \"package\"}

// After  
{\"extension_type\": \"package\"}

Backward compat: accept both package_type and extension_type in the API handler for one release cycle.

## Problem The `package_type` field name is confusing because \"package\" is also a Joomla extension type (`pkg_`). The field actually represents the **extension type** (component, module, plugin, package, template, library, file) — not just packages. ## Scope Rename `package_type` → `extension_type` in: 1. **Model**: `RepoMetadata.PackageType` → `ExtensionType` in `models/repo/repo_manifest.go` 2. **DB column**: `package_type` → `extension_type` (SQL migration) 3. **API struct**: `package_type` → `extension_type` in `routers/api/v1/repo/manifest.go` 4. **Manifest sync**: XML tag mapping in `services/repository/manifest_sync.go` 5. **Update server**: `joomla.go` references to `PackageType`/`ExtType` 6. **Web settings UI**: `routers/web/repo/setting/metadata.go` 7. **joomlaTypePrefix map**: references `PackageType` 8. **MCP server**: `mcp-mokogitea-api` tool parameter name 9. **mokoplatform CLI**: `joomla_metadata_validate.php` and `manifest_integrity.php` ### NOT renamed - `.mokogitea/manifest.xml` tag `<package-type>` — this is the source file format, changing it would break all existing repos. The sync code maps XML tag → DB column. - Migration files — they reference the old column name for backwards compatibility. ## Migration ```sql ALTER TABLE repo_manifest CHANGE COLUMN package_type extension_type VARCHAR(50) NOT NULL DEFAULT ''; ``` ## API Change ```json // Before {\"package_type\": \"package\"} // After {\"extension_type\": \"package\"} ``` Backward compat: accept both `package_type` and `extension_type` in the API handler for one release cycle.
Author
Owner

Branch created: feature/646-refactor-rename-package-type-to-extensio

git fetch origin
git checkout feature/646-refactor-rename-package-type-to-extensio
Branch created: [`feature/646-refactor-rename-package-type-to-extensio`](https://code.mokoconsulting.tech/MokoConsulting/MokoGitea-Fork/src/branch/feature/646-refactor-rename-package-type-to-extensio) ```bash git fetch origin git checkout feature/646-refactor-rename-package-type-to-extensio ```
Sign in to join this conversation.